@vvfx/artis 0.0.1-alpha.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.
- package/LICENSE +22 -0
- package/dist/artis/artis.d.ts +44 -0
- package/dist/artis/base-artis.d.ts +520 -0
- package/dist/artis/canvas-layer-order.d.ts +19 -0
- package/dist/artis/create-info-to-schema.d.ts +21 -0
- package/dist/artis/index.d.ts +15 -0
- package/dist/artis/operations/index.d.ts +3 -0
- package/dist/artis/operations/operations.d.ts +362 -0
- package/dist/artis/operations/scene-operations.d.ts +26 -0
- package/dist/artis/operations/types.d.ts +39 -0
- package/dist/artis/scene-artis.d.ts +386 -0
- package/dist/artis/screenshot-service.d.ts +83 -0
- package/dist/artis/types.d.ts +130 -0
- package/dist/artis/wiring/index.d.ts +17 -0
- package/dist/artis/wiring/register-commands.d.ts +44 -0
- package/dist/artis/wiring/setup-commands.d.ts +5 -0
- package/dist/artis/wiring/setup-event-bindings.d.ts +16 -0
- package/dist/artis/wiring/setup-keybindings.d.ts +38 -0
- package/dist/artis/wiring/setup-plugins.d.ts +5 -0
- package/dist/artis/wiring/wiring-context.d.ts +34 -0
- package/dist/artis-sdk/artis-sdk.d.ts +1117 -0
- package/dist/artis-sdk/index.d.ts +1 -0
- package/dist/core/asset/asset-manager.d.ts +288 -0
- package/dist/core/asset/index.d.ts +3 -0
- package/dist/core/command/command-service.d.ts +315 -0
- package/dist/core/command/commands/composite-command.d.ts +45 -0
- package/dist/core/command/commands/frame-layout-command.d.ts +81 -0
- package/dist/core/command/commands/frame-layout-mode-command.d.ts +55 -0
- package/dist/core/command/commands/frame-move-in-command.d.ts +54 -0
- package/dist/core/command/commands/frame-move-out-command.d.ts +54 -0
- package/dist/core/command/commands/group-children-detach-command.d.ts +28 -0
- package/dist/core/command/commands/index.d.ts +98 -0
- package/dist/core/command/commands/item-align-command.d.ts +52 -0
- package/dist/core/command/commands/item-create-command.d.ts +66 -0
- package/dist/core/command/commands/item-delete-command.d.ts +40 -0
- package/dist/core/command/commands/item-distribute-command.d.ts +53 -0
- package/dist/core/command/commands/item-group-command.d.ts +41 -0
- package/dist/core/command/commands/item-reorder-command.d.ts +41 -0
- package/dist/core/command/commands/item-replace-source-command.d.ts +48 -0
- package/dist/core/command/commands/item-set-font-family-command.d.ts +46 -0
- package/dist/core/command/commands/item-set-generator-resource-command.d.ts +40 -0
- package/dist/core/command/commands/item-transform-command.d.ts +51 -0
- package/dist/core/command/commands/item-ungroup-command.d.ts +34 -0
- package/dist/core/command/commands/item-update-property-by-create-info-command.d.ts +41 -0
- package/dist/core/command/commands/item-update-property-command.d.ts +82 -0
- package/dist/core/command/commands/mask-commit-command.d.ts +53 -0
- package/dist/core/command/commands/page-auto-layout-command.d.ts +53 -0
- package/dist/core/command/commands/picture-cut-commit-command.d.ts +43 -0
- package/dist/core/command/commands/picture-expand-commit-command.d.ts +35 -0
- package/dist/core/command/commands/scene-switch-command.d.ts +35 -0
- package/dist/core/command/commands/selection-set-command.d.ts +38 -0
- package/dist/core/command/commands/sprite-image-command.d.ts +36 -0
- package/dist/core/command/commands/sprite-text-edit-commit-command.d.ts +43 -0
- package/dist/core/command/commands/state-hand-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-cut-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-expand-command.d.ts +14 -0
- package/dist/core/command/commands/state-image-mask-command.d.ts +15 -0
- package/dist/core/command/commands/state-image-text-edit-command.d.ts +14 -0
- package/dist/core/command/commands/state-item-create-command.d.ts +34 -0
- package/dist/core/command/commands/state-move-command.d.ts +14 -0
- package/dist/core/command/commands/state-switch-command-base.d.ts +41 -0
- package/dist/core/command/commands/text-move-command.d.ts +47 -0
- package/dist/core/command/commands/text-rotate-command.d.ts +52 -0
- package/dist/core/command/commands/text-scale-command.d.ts +56 -0
- package/dist/core/command/commands/text-update-content-command.d.ts +51 -0
- package/dist/core/command/commands/transform-move-command.d.ts +56 -0
- package/dist/core/command/commands/transform-move-with-frame-change-command.d.ts +80 -0
- package/dist/core/command/commands/transform-move-with-layout-command.d.ts +56 -0
- package/dist/core/command/commands/transform-rotate-command.d.ts +51 -0
- package/dist/core/command/commands/transform-scale-command.d.ts +54 -0
- package/dist/core/command/commands/video-play-command.d.ts +28 -0
- package/dist/core/command/commands/video-source-command.d.ts +39 -0
- package/dist/core/command/commands/viewport-fit-to-box-command.d.ts +37 -0
- package/dist/core/command/commands/viewport-fit-to-items-command.d.ts +43 -0
- package/dist/core/command/commands/viewport-move-command.d.ts +34 -0
- package/dist/core/command/commands/viewport-zoom-command.d.ts +35 -0
- package/dist/core/command/index.d.ts +5 -0
- package/dist/core/command/registry.d.ts +246 -0
- package/dist/core/command/types.d.ts +124 -0
- package/dist/core/element-registry/element-facade.d.ts +35 -0
- package/dist/core/element-registry/element-identity-strategy.d.ts +75 -0
- package/dist/core/element-registry/element-registry.d.ts +72 -0
- package/dist/core/element-registry/index.d.ts +5 -0
- package/dist/core/element-registry/types.d.ts +15 -0
- package/dist/core/gizmo/gizmo-bootstrap.d.ts +70 -0
- package/dist/core/gizmo/gizmo-command-binder.d.ts +55 -0
- package/dist/core/gizmo/gizmo-config-override.d.ts +24 -0
- package/dist/core/gizmo/gizmo-registry.d.ts +39 -0
- package/dist/core/gizmo/index.d.ts +19 -0
- package/dist/core/gizmo/register-gizmo-command-bindings.d.ts +20 -0
- package/dist/core/gizmo/state-gizmo-controller.d.ts +20 -0
- package/dist/core/history/history-manager.d.ts +174 -0
- package/dist/core/history/index.d.ts +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/item/base-item.d.ts +154 -0
- package/dist/core/item/card-item.d.ts +91 -0
- package/dist/core/item/default-item-schema.d.ts +20 -0
- package/dist/core/item/effects-item.d.ts +99 -0
- package/dist/core/item/frame-item.d.ts +153 -0
- package/dist/core/item/generator-item.d.ts +114 -0
- package/dist/core/item/group-item.d.ts +51 -0
- package/dist/core/item/index.d.ts +25 -0
- package/dist/core/item/sprite-item.d.ts +80 -0
- package/dist/core/item/text-item.d.ts +171 -0
- package/dist/core/item/types.d.ts +158 -0
- package/dist/core/item/video-item.d.ts +120 -0
- package/dist/core/keybinding/index.d.ts +11 -0
- package/dist/core/keybinding/key-binding-controller.d.ts +44 -0
- package/dist/core/keybinding/key-binding-registry.d.ts +92 -0
- package/dist/core/keybinding/key-binding-store.d.ts +29 -0
- package/dist/core/keybinding/key-matcher.d.ts +24 -0
- package/dist/core/keybinding/types.d.ts +84 -0
- package/dist/core/plugin/index.d.ts +3 -0
- package/dist/core/plugin/io-plugin.d.ts +167 -0
- package/dist/core/plugin/plugin-system.d.ts +77 -0
- package/dist/core/predict/align-predict.d.ts +20 -0
- package/dist/core/predict/base/box-ops.d.ts +40 -0
- package/dist/core/predict/base/index.d.ts +14 -0
- package/dist/core/predict/base/parent-coord.d.ts +29 -0
- package/dist/core/predict/base/schema-box.d.ts +21 -0
- package/dist/core/predict/distribute-predict.d.ts +19 -0
- package/dist/core/predict/frame-layout-predict.d.ts +24 -0
- package/dist/core/predict/index.d.ts +12 -0
- package/dist/core/preferences/index.d.ts +2 -0
- package/dist/core/preferences/user-preferences-manager.d.ts +130 -0
- package/dist/core/quality/error-monitor/error-monitor-facade.d.ts +73 -0
- package/dist/core/quality/error-monitor/error-monitor.d.ts +106 -0
- package/dist/core/quality/error-monitor/index.d.ts +4 -0
- package/dist/core/quality/error-monitor/types.d.ts +198 -0
- package/dist/core/quality/index.d.ts +3 -0
- package/dist/core/quality/perf-monitor/index.d.ts +5 -0
- package/dist/core/quality/perf-monitor/perf-monitor-facade.d.ts +45 -0
- package/dist/core/quality/perf-monitor/perf-monitor.d.ts +60 -0
- package/dist/core/quality/perf-monitor/types.d.ts +66 -0
- package/dist/core/quality/stability-monitor/index.d.ts +5 -0
- package/dist/core/quality/stability-monitor/stability-monitor-facade.d.ts +50 -0
- package/dist/core/quality/stability-monitor/stability-monitor.d.ts +61 -0
- package/dist/core/quality/stability-monitor/types.d.ts +69 -0
- package/dist/core/renderer/background-controller.d.ts +56 -0
- package/dist/core/renderer/index.d.ts +5 -0
- package/dist/core/renderer/player-adapter.d.ts +129 -0
- package/dist/core/renderer/renderer.d.ts +134 -0
- package/dist/core/service/frame-service.d.ts +116 -0
- package/dist/core/service/index.d.ts +9 -0
- package/dist/core/service/interaction-providers.d.ts +20 -0
- package/dist/core/service/interaction-service.d.ts +211 -0
- package/dist/core/service/item-asset-service.d.ts +120 -0
- package/dist/core/service/item-creator-service.d.ts +211 -0
- package/dist/core/service/item-service.d.ts +641 -0
- package/dist/core/service/item-sync-service.d.ts +66 -0
- package/dist/core/service/json-scene-sync-service.d.ts +140 -0
- package/dist/core/service/refresh-animation-base-service.d.ts +1 -0
- package/dist/core/service/scene-data-assembler.d.ts +166 -0
- package/dist/core/service/view-service.d.ts +202 -0
- package/dist/core/state/base-state.d.ts +28 -0
- package/dist/core/state/index.d.ts +6 -0
- package/dist/core/state/presets.d.ts +25 -0
- package/dist/core/state/state-manager.d.ts +50 -0
- package/dist/core/state/types.d.ts +52 -0
- package/dist/core/store/index.d.ts +3 -0
- package/dist/core/store/scene-store.d.ts +194 -0
- package/dist/core/store/store.d.ts +36 -0
- package/dist/core/types/artis-config.d.ts +186 -0
- package/dist/core/types/artis-events.d.ts +101 -0
- package/dist/core/types/frame.d.ts +3 -0
- package/dist/core/types/generator.d.ts +28 -0
- package/dist/core/types/index.d.ts +15 -0
- package/dist/core/types/item-create-info.d.ts +205 -0
- package/dist/core/types/item-property.d.ts +149 -0
- package/dist/core/types/item-reorder.d.ts +12 -0
- package/dist/core/types/item-schema.d.ts +263 -0
- package/dist/core/types/item-set-property.d.ts +48 -0
- package/dist/core/types/page.d.ts +40 -0
- package/dist/core/types/sdk.d.ts +28 -0
- package/dist/core/types/view.d.ts +39 -0
- package/dist/helper/exporter/config.d.ts +18 -0
- package/dist/helper/exporter/const.d.ts +71 -0
- package/dist/helper/exporter/export-media.d.ts +189 -0
- package/dist/helper/exporter/exporter.d.ts +58 -0
- package/dist/helper/exporter/index.d.ts +2 -0
- package/dist/helper/exporter/types.d.ts +194 -0
- package/dist/helper/exporter/utils.d.ts +71 -0
- package/dist/helper/exporter/wav-audio.d.ts +35 -0
- package/dist/helper/html-overlay/anchor-navigation-runtime.d.ts +1 -0
- package/dist/helper/html-overlay/auto-height-layout.d.ts +16 -0
- package/dist/helper/html-overlay/auto-height-runtime.d.ts +40 -0
- package/dist/helper/html-overlay/document-runtime.d.ts +18 -0
- package/dist/helper/html-overlay/document-transform.d.ts +46 -0
- package/dist/helper/html-overlay/dom-order.d.ts +5 -0
- package/dist/helper/html-overlay/host-message-runtime.d.ts +15 -0
- package/dist/helper/html-overlay/html-capture-runtime.d.ts +12 -0
- package/dist/helper/html-overlay/html-card-service.d.ts +287 -0
- package/dist/helper/html-overlay/html-viewport-style.d.ts +6 -0
- package/dist/helper/html-overlay/index.d.ts +1 -0
- package/dist/helper/html-overlay/inline-script-json.d.ts +1 -0
- package/dist/helper/html-overlay/mime-utils.d.ts +13 -0
- package/dist/helper/html-overlay/overlay-transform.d.ts +30 -0
- package/dist/helper/html-overlay/path-utils.d.ts +34 -0
- package/dist/helper/html-overlay/runtime-context.d.ts +2 -0
- package/dist/helper/html-overlay/shell-runtime.d.ts +13 -0
- package/dist/helper/index.d.ts +5 -0
- package/dist/helper/scene-builder.d.ts +111 -0
- package/dist/helper/screen-shot.d.ts +51 -0
- package/dist/helper/size-adapt.d.ts +88 -0
- package/dist/index.cjs +69350 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.mjs +68963 -0
- package/dist/index.mjs.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/player.d.ts +9 -0
- package/dist/utils/background-manager.d.ts +76 -0
- package/dist/utils/common-utils.d.ts +39 -0
- package/dist/utils/container-size.d.ts +7 -0
- package/dist/utils/find-player-item.d.ts +9 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/json-data-utils.d.ts +198 -0
- package/dist/utils/layout-utils.d.ts +144 -0
- package/dist/utils/pixel-box-utils.d.ts +26 -0
- package/dist/utils/player-data-utils.d.ts +9 -0
- package/dist/utils/player-utils.d.ts +42 -0
- package/dist/utils/replay-utils.d.ts +22 -0
- package/dist/utils/types.d.ts +130 -0
- package/package.json +66 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT LICENSE
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019-present Ant Group Co., Ltd. https://www.antgroup.com/
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BaseArtis } from './base-artis';
|
|
2
|
+
import { ElementFacade } from '../core';
|
|
3
|
+
import type { ArtisItem } from '../core/item';
|
|
4
|
+
import type { VariantErrorSnapshot } from '../core';
|
|
5
|
+
import type { ArtisEvents, ArtisOptions } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Artis - 编辑数据驱动的编辑器
|
|
8
|
+
*
|
|
9
|
+
* 继承 {@link BaseArtis},数据层以编辑场景数据(InitArtisData / ArtisItem[])为真源,
|
|
10
|
+
* 生命周期与核心服务装配由基类承担,本类仅声明编辑数据契约。
|
|
11
|
+
*
|
|
12
|
+
* 与 SceneArtis 的身份策略差异:Artis 沿用基类默认的 RegistryIdentityStrategy——
|
|
13
|
+
* artisItem.id(schemaId) ≠ vfxItemId(instanceId),靠 registry 翻译(D2)。
|
|
14
|
+
* 故 `artis.element` 门面仅 Artis 暴露(SceneArtis 以 instanceId 为基准,无需该门面)。
|
|
15
|
+
*
|
|
16
|
+
* 顶层操作门面 `artis.operations`(addSprite / deleteItem / 截图 / 导出 / gizmo 开关 …)由基类
|
|
17
|
+
* {@link BaseArtis.operations} getter 提供,Artis 直接继承使用,无需本类再次声明。
|
|
18
|
+
*/
|
|
19
|
+
export declare class Artis extends BaseArtis<unknown, ArtisEvents> {
|
|
20
|
+
/** artis.element 对外门面(D3/D4:按元素ID 的统一入口,懒初始化) */
|
|
21
|
+
private _elementFacade?;
|
|
22
|
+
/**
|
|
23
|
+
* @override Artis 专属错误快照:场景所有元素(ItemSchema) + 当前选中元素(激活数据),
|
|
24
|
+
* 与 variant: 'Artis' tag 绑定返回。上报时由 ErrorMonitor 合并到共有快照。
|
|
25
|
+
* 取值异常不阻断(兜底空数组)。
|
|
26
|
+
*/
|
|
27
|
+
protected _captureErrorSnapshot(): VariantErrorSnapshot;
|
|
28
|
+
/**
|
|
29
|
+
* 当前激活场景的编辑元素集合(编辑数据驱动:即 store.items)
|
|
30
|
+
*/
|
|
31
|
+
protected _getActiveItems(): ArtisItem[];
|
|
32
|
+
/** context-lost 重建工厂:new 同类型 Artis 实例 */
|
|
33
|
+
protected _createInstance(container: HTMLElement, options: ArtisOptions): Artis;
|
|
34
|
+
/**
|
|
35
|
+
* 命名空间:元素(artis.element)
|
|
36
|
+
*
|
|
37
|
+
* 决策 D3/D4:独立于 `artis.item` 的对外门面,所有入参/出参仅见元素ID,不暴露 vfxItemId。
|
|
38
|
+
* 委托 ItemService 既有实现,不重写 CRUD。懒初始化。
|
|
39
|
+
*
|
|
40
|
+
* 仅 Artis 暴露:Artis 的 artisItem.id 与 vfxItemId 分离,需门面按元素ID 收口;
|
|
41
|
+
* SceneArtis 以 instanceId 为基准(id===vfxItemId),不暴露此门面。
|
|
42
|
+
*/
|
|
43
|
+
get element(): ElementFacade;
|
|
44
|
+
}
|
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
import { Operations } from './operations/operations';
|
|
2
|
+
import { EventEmitter, Player } from '../shared';
|
|
3
|
+
import { ViewService, ItemService, GizmoRegistry, StateManager, HistoryManager, CommandService, ArtisBackgroundConfig, UserPreferencesManager, type ArtisItem, type Disposable, type BaseArtisEvents, type PerfMonitorCallback, type ErrorMonitorCallback, type ElementIdentityStrategy, type StabilityMonitorCallback, type StateChangeEvent } from '../core';
|
|
4
|
+
import { HTMLCardService } from '../helper/html-overlay';
|
|
5
|
+
import { ScreenshotService } from './screenshot-service';
|
|
6
|
+
import type { Selection, FrameManager, TextEditActivation } from '@vvfx/gizmo';
|
|
7
|
+
import { Vector2, GizmoManager } from '@vvfx/gizmo';
|
|
8
|
+
import { ArtisOptions, ContextRecoveryOptions } from './types';
|
|
9
|
+
import type { KeyBindingController } from '../core/keybinding/key-binding-controller';
|
|
10
|
+
/**
|
|
11
|
+
* BaseArtis - 编辑器核心基类
|
|
12
|
+
*
|
|
13
|
+
* 承载与数据来源无关的核心服务装配与生命周期模板方法:
|
|
14
|
+
* Renderer / PlayerAdapter / ItemService / CommandService / HistoryManager /
|
|
15
|
+
* AssetManager / PluginSystem / UserPreferences / ViewService /
|
|
16
|
+
* InteractionService / GestureHandler / StateManager / ScreenshotService。
|
|
17
|
+
* 选中态(Selection)由 GestureHandler 持有,经 gestureHandler.getSelection() 暴露。
|
|
18
|
+
*
|
|
19
|
+
* 子类(如编辑数据驱动的 Artis、JSON 驱动的 SceneArtis)继承本类,
|
|
20
|
+
* 仅差异在数据层(_getActiveItems)与初始化流程(_loadSceneData),
|
|
21
|
+
* 以及编辑守卫策略(_assertEditable)。
|
|
22
|
+
*
|
|
23
|
+
* 设计原则:
|
|
24
|
+
* 1. 事件采用 extends EventEmitter 模式(与 Store / StateManager 一致)
|
|
25
|
+
* 2. 所有数据修改通过 CommandService 驱动
|
|
26
|
+
* 3. 插件化架构,功能可插拔
|
|
27
|
+
* 4. 支持模式扩展(继承派生 InfiniteArtis / SceneArtis 等)
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* 命令层「忽略交互」拒绝错误。
|
|
31
|
+
*
|
|
32
|
+
* 当通过 commandService 对命中 ignoredInteractionNames 名称的元素执行修改类命令时,
|
|
33
|
+
* 由 {@link BaseArtis._installIgnoredInteractionGuard} 注入的守卫抛出,表示该元素被配置为
|
|
34
|
+
* 忽略交互(不可更改)。`code` 为对外错误契约。
|
|
35
|
+
*/
|
|
36
|
+
export declare class IgnoredInteractionError extends Error {
|
|
37
|
+
readonly code: "IGNORED_INTERACTION";
|
|
38
|
+
/** 被拒绝的命令 ID */
|
|
39
|
+
readonly commandId: string;
|
|
40
|
+
/** 被拒绝操作的目标元素 ID */
|
|
41
|
+
readonly itemId: string;
|
|
42
|
+
/** 命中忽略名单的元素名称 */
|
|
43
|
+
readonly itemName: string;
|
|
44
|
+
constructor(commandId: string, itemId: string, itemName: string);
|
|
45
|
+
}
|
|
46
|
+
export declare abstract class BaseArtis<TRunInput = unknown, TEvents extends BaseArtisEvents = BaseArtisEvents> extends EventEmitter<TEvents> implements Disposable {
|
|
47
|
+
/** State 注册、查询、切换和临时状态栈的唯一公开入口。 */
|
|
48
|
+
readonly states: StateManager;
|
|
49
|
+
/** 二开 Gizmo 工厂注册表;未直接提供 Tool 的 State 可按注册 ID 声明有序图。 */
|
|
50
|
+
readonly gizmos: GizmoRegistry;
|
|
51
|
+
/** HTML 卡片解析、刷新与跨文档通信命名空间。 */
|
|
52
|
+
readonly htmlCard: HTMLCardService;
|
|
53
|
+
/** 局部场景创建与 PNG 截图命名空间。 */
|
|
54
|
+
readonly screenshot: ScreenshotService;
|
|
55
|
+
/** operations 操作门面(懒初始化;getter 调用时经 _createOperations 工厂创建)。 */
|
|
56
|
+
private _operations?;
|
|
57
|
+
/** 画布容器 */
|
|
58
|
+
readonly container: HTMLElement;
|
|
59
|
+
private _disposed;
|
|
60
|
+
/** 最近一次 run 入参,recreate 时重放 */
|
|
61
|
+
protected _runInputSnapshot?: TRunInput;
|
|
62
|
+
/** 重建进行中标志(冷冻态),重建期间拦截对外 API */
|
|
63
|
+
protected _rebuilding: boolean;
|
|
64
|
+
/** context-restored 轻同步重入保护。 */
|
|
65
|
+
private _restoring;
|
|
66
|
+
/** 当前是否处于 context-lost 冷冻态(engine 自恢复期)。lost 期间拦截 run 等写入,避免落到正在重建的 GL 句柄。*/
|
|
67
|
+
private _contextLost;
|
|
68
|
+
/** Context recovery callbacks are stored instead of subscribing to the public event bus. */
|
|
69
|
+
private _contextRecoveryOptions?;
|
|
70
|
+
/** Gizmo 选择事件转发是否已绑定(setupSelectionBindings 仅应装配一次,重复 run 不应累积 selectionchange 监听器)*/
|
|
71
|
+
private _gizmoPrepared;
|
|
72
|
+
/** Frame metadata source of truth owned by the current GestureHandler. */
|
|
73
|
+
get frameManager(): FrameManager;
|
|
74
|
+
/**
|
|
75
|
+
* 构造 Artis 实例,按序装配核心服务并启动初始化流程
|
|
76
|
+
*
|
|
77
|
+
* @param container 画布挂载的 DOM 容器
|
|
78
|
+
* @param options 实例配置(偏好 / 历史 / 状态 / 渲染背景等)
|
|
79
|
+
*/
|
|
80
|
+
constructor(container: HTMLElement, options?: ArtisOptions);
|
|
81
|
+
/**
|
|
82
|
+
* 创建元素身份策略(统一 id 基准与映射翻译)。
|
|
83
|
+
*
|
|
84
|
+
* 默认返回基于真实 ElementRegistry 的策略:artisItem.id 取 schemaId,与 vfxItemId(instanceId)
|
|
85
|
+
* 分离,靠 registry 翻译,遵守 D2(不 setInstanceId,artis 只读 instanceId)。Artis 沿用此默认。
|
|
86
|
+
* SceneArtis override 为 identity 策略:id 跟随 instanceId,映射空转。
|
|
87
|
+
*
|
|
88
|
+
* 在 ItemService 构造前(BaseArtis ctor step 5)调用,此时 renderer(step 3) 已就绪,
|
|
89
|
+
* resolveVfxItemById 回调惰性求值,注册时不触发。
|
|
90
|
+
*/
|
|
91
|
+
protected _createIdentityStrategy(): ElementIdentityStrategy;
|
|
92
|
+
/** BaseArtis 只能从自己的稳定事件表发事件,子类扩展事件由子类自行发布。 */
|
|
93
|
+
protected _emitBase<K extends keyof BaseArtisEvents>(event: K, ...args: BaseArtisEvents[K]): void;
|
|
94
|
+
/**
|
|
95
|
+
* operations 操作门面工厂(懒初始化)。子类可 override 以返回扩展门面
|
|
96
|
+
* (如 SceneArtis 返回 `new SceneOperations(this)`)。默认 `new Operations(this)`。
|
|
97
|
+
*/
|
|
98
|
+
protected _createOperations(): Operations;
|
|
99
|
+
/**
|
|
100
|
+
* 命名空间:操作门面(artis.operations)
|
|
101
|
+
*
|
|
102
|
+
* 常用基础功能类型化入口:`artis.operations.addSprite(info)` / `deleteItem(id)` / `hitTest(x,y)` /
|
|
103
|
+
* 截图 / 导出 / 对齐 / gizmo 开关 …。内部委托 command/item/view/preferences 等,保留撤销/守卫/batch/
|
|
104
|
+
* 资源回流(N10/C3)。懒初始化。装配后可用(item/view 等需 gestureHandler/sceneStore 就绪)。
|
|
105
|
+
*/
|
|
106
|
+
get operations(): Operations;
|
|
107
|
+
/**
|
|
108
|
+
* 编辑可编辑态守卫:在 execute / beginInteraction / updateInteraction 三入口前置调用,
|
|
109
|
+
* 非编辑态(如 SceneArtis PlayState)拦截编辑类命令。基类 no-op(Artis 线始终可编辑),
|
|
110
|
+
* SceneArtis override 按命令分类(编辑类拦截 / 系统类放行)执行。S7。
|
|
111
|
+
*
|
|
112
|
+
* @param _commandId 命令 ID(用于编辑/系统分类)
|
|
113
|
+
*/
|
|
114
|
+
protected _assertEditable(_commandId: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* 创建 ViewService 的工厂方法,子类可 override 替换实现
|
|
117
|
+
*
|
|
118
|
+
* @param containerSize 容器尺寸(用于初始化视口大小)
|
|
119
|
+
* @param container 画布 DOM 容器
|
|
120
|
+
* @returns ViewService 实例
|
|
121
|
+
*/
|
|
122
|
+
protected _createViewService(containerSize: Vector2, container: HTMLElement): ViewService;
|
|
123
|
+
/**
|
|
124
|
+
* 创建 InteractionService,注入视口、相机、元素 transform 三个 Provider
|
|
125
|
+
*
|
|
126
|
+
* Provider 工厂已抽离到 core/service/interaction-providers,本方法仅做组装。
|
|
127
|
+
*
|
|
128
|
+
* @returns InteractionService 实例
|
|
129
|
+
*/
|
|
130
|
+
private _createInteractionService;
|
|
131
|
+
/**
|
|
132
|
+
* 按配置注册初始 State,并为「独立功能」状态绑定历史栈隔离
|
|
133
|
+
*
|
|
134
|
+
* @param options 实例配置(取 states 字段决定状态集合)
|
|
135
|
+
*/
|
|
136
|
+
private _initStates;
|
|
137
|
+
/**
|
|
138
|
+
* 注册 BaseArtis 之外的额外 State(如 SceneArtis 的 ViewOnly/Play)。
|
|
139
|
+
*
|
|
140
|
+
* base 默认无额外 State;子类 override 追加。初始化时由 _initStates 末尾调用。
|
|
141
|
+
*/
|
|
142
|
+
protected _registerExtraStates(): void;
|
|
143
|
+
/**
|
|
144
|
+
* 注册内置 Command 并配置命令执行后、历史变化后的同步与事件转发
|
|
145
|
+
* 实现已抽离到 artis/wiring(setupCommands),本方法仅做转发。
|
|
146
|
+
*/
|
|
147
|
+
private _registerCommands;
|
|
148
|
+
/** 注册内置快捷键:订阅 GestureHandler 转发的 runtime Control keyDown,命中后 accept。 */
|
|
149
|
+
private _registerKeyBindings;
|
|
150
|
+
/**
|
|
151
|
+
* 注册并激活内置插件(当前为 IOPlugin)
|
|
152
|
+
* 实现已抽离到 artis/wiring(setupPlugins),本方法仅做转发。
|
|
153
|
+
*/
|
|
154
|
+
private _setupPlugins;
|
|
155
|
+
/**
|
|
156
|
+
* 绑定各核心服务事件转发(视口 / 渲染 / 选区 / 状态)
|
|
157
|
+
* 实现已抽离到 artis/wiring(setupCoreEventBindings),本方法仅做转发。
|
|
158
|
+
*/
|
|
159
|
+
private _setupEventBindings;
|
|
160
|
+
/**
|
|
161
|
+
* 开启错误监控(按需调用,未调用时零开销)
|
|
162
|
+
*
|
|
163
|
+
* 调用后,以下环节的错误将触发 callback:
|
|
164
|
+
* - Gizmo 交互(init / onMouseDown / onMouseMove / onMouseUp / onKeyDown)
|
|
165
|
+
* - Command 执行(execute / beginInteraction / updateInteraction / endInteraction / record)
|
|
166
|
+
* - Artis 门面层公开方法
|
|
167
|
+
* - Player 渲染错误(player.on('error'))
|
|
168
|
+
*
|
|
169
|
+
* 重复调用只更新回调,不重复注入监控器。
|
|
170
|
+
*
|
|
171
|
+
* 实现已抽离到 ErrorMonitorFacade,本方法负责首次按需创建 facade 并转发。
|
|
172
|
+
*
|
|
173
|
+
* @param callback 错误回调,接收包含错误信息和场景快照的 AnyArtisErrorInfo
|
|
174
|
+
*/
|
|
175
|
+
enableErrorMonitor(callback: ErrorMonitorCallback): void;
|
|
176
|
+
/**
|
|
177
|
+
* 开启稳定性监测。
|
|
178
|
+
*
|
|
179
|
+
* 订阅 error 节流前钩子(error 已开启时自动接入)+ playerAdapter 'contextLost',
|
|
180
|
+
* 维护 1 分钟滑动窗口,健康度变化经回调外达宿主。context-lost/fps 等独立信号
|
|
181
|
+
* 不依赖 error,error 未开启时仍工作。
|
|
182
|
+
*
|
|
183
|
+
* @param callback 健康度变化回调
|
|
184
|
+
*/
|
|
185
|
+
enableStabilityMonitor(callback: StabilityMonitorCallback): void;
|
|
186
|
+
/**
|
|
187
|
+
* 开启性能监测上报。
|
|
188
|
+
*
|
|
189
|
+
* 与构造开关 options.perf 共享同一 facade 实例:构造期已预装配时仅补回调,
|
|
190
|
+
* 未装配则此时新建。开启后各阶段 mark/measure 采集的耗时经 PerfReport 回调上报。
|
|
191
|
+
*
|
|
192
|
+
* @param callback 性能上报回调
|
|
193
|
+
*/
|
|
194
|
+
enablePerfMonitor(callback: PerfMonitorCallback): void;
|
|
195
|
+
/**
|
|
196
|
+
* 整实例重建:dispose 当前实例 → 委托 _createInstance new 同类型实例 → 重放缓存入参 →
|
|
197
|
+
* 还原 viewport/selection → 返回新实例。宿主须以返回的新实例替换旧引用。
|
|
198
|
+
*
|
|
199
|
+
* 设计为委托式:BaseArtis 抽象不能自 new,dispose 后 this 已废,新实例由子类工厂产出。
|
|
200
|
+
* 历史栈、已注册的 monitor/恢复监听均随 dispose 丢失——宿主需在新实例上重接。
|
|
201
|
+
*
|
|
202
|
+
* 与 {@link enableContextRecovery} 的区别:后者是同实例轻同步(context-restored 自恢复,
|
|
203
|
+
* 引用不变、监听不丢);本方法是真正的整实例替换(dispose 旧 + new 新,宿主须替换引用)。
|
|
204
|
+
*
|
|
205
|
+
* @returns 重建后的新实例(旧实例已 dispose,不可再用)
|
|
206
|
+
*/
|
|
207
|
+
recreate(): Promise<BaseArtis>;
|
|
208
|
+
/**
|
|
209
|
+
* context-restored 后的轻同步。
|
|
210
|
+
*
|
|
211
|
+
* doNotHandleContextLost:false 下,effects engine 在 webglcontextrestored 上就地重建全部 GPU
|
|
212
|
+
* 资源(含 artis 自建 Texture.fromImage 纹理、gizmo 自有纹理),Player/composition/选中/视口/播放态/
|
|
213
|
+
* 历史栈全部存活——故无需整体重建容器/换 Player/reinitGizmo/reload 场景/快照还原。此处仅做防御性
|
|
214
|
+
* items 同步 + 相机刷新 + gizmo 重绘(触发用已 restore 的纹理重画一帧),并外达 renderer.contextrestored 通知宿主。
|
|
215
|
+
*
|
|
216
|
+
* 失败均忽略:自恢复下数据层与 Player 一致,同步纯粹兜底,不应阻断恢复。
|
|
217
|
+
*
|
|
218
|
+
* @param onRecovered 恢复就绪回调(同实例,引用未变)
|
|
219
|
+
*/
|
|
220
|
+
private _onContextRestored;
|
|
221
|
+
/**
|
|
222
|
+
* 开启 context-lost 自动恢复(同实例轻同步)。底层 context lost/restored 由 wiring 直接调用内部入口,后者触发
|
|
223
|
+
* {@link _onContextRestored} 轻同步后通知宿主。
|
|
224
|
+
*
|
|
225
|
+
* 保留 history/command/selection/items/sceneStore/monitor/listener 全部——宿主**无需**替换实例引用、
|
|
226
|
+
* **无需**重接 monitor、**无需**重新调用本方法(同实例,监听仍在)。
|
|
227
|
+
*
|
|
228
|
+
* @param options.onLost context 丢失时的通知回调(同实例 this),供宿主提示"正在恢复…"
|
|
229
|
+
* @param options.onRecovered 恢复就绪回调(同实例 this,引用未变),事件负载含轻同步失败步骤 syncFailures
|
|
230
|
+
*/
|
|
231
|
+
enableContextRecovery(options?: ContextRecoveryOptions): void;
|
|
232
|
+
/**
|
|
233
|
+
* @deprecated 历史遗留方法名(早期确会整实例 recreate,现仅同实例轻同步)。推荐改用语义准确的
|
|
234
|
+
* {@link enableContextRecovery},入参形状与回调契约完全一致。
|
|
235
|
+
*/
|
|
236
|
+
enableAutoRecreate(options?: ContextRecoveryOptions): void;
|
|
237
|
+
private _enableContextRecovery;
|
|
238
|
+
/** 具体 Artis 变体可覆写并发布自己的状态事件。 */
|
|
239
|
+
protected _handleStateChange(_event: StateChangeEvent): void;
|
|
240
|
+
/**
|
|
241
|
+
* 当前是否已销毁
|
|
242
|
+
*/
|
|
243
|
+
get disposed(): boolean;
|
|
244
|
+
/**
|
|
245
|
+
* 当前是否处于 context-lost 冷冻态(WebGL 上下文丢失、engine 自恢复期间)。
|
|
246
|
+
*
|
|
247
|
+
* 进入 lost 态后至 renderer.contextrestored 完成轻同步期间为 true。宿主可据此在 UI 上提示
|
|
248
|
+
* "正在恢复…"并暂停业务写入;run/命令层已在内部据此次级拦截,业务方一般无需自查。
|
|
249
|
+
*/
|
|
250
|
+
get isContextLost(): boolean;
|
|
251
|
+
/**
|
|
252
|
+
* 获取底层 Player 实例(高级逃生舱)。
|
|
253
|
+
*
|
|
254
|
+
* 注意:此 getter 绕过 `shared` 唯一 import 面的封装意图(见分析 T2),直接暴露
|
|
255
|
+
* `@galacean/effects` Player 句柄。仅用于本包未覆盖的高级场景;常规操作请走命名空间
|
|
256
|
+
* API(artis.view / artis.item / artis.command 等)。
|
|
257
|
+
*/
|
|
258
|
+
get player(): Player;
|
|
259
|
+
/** @Gizmo 生命周期管理器(装配后可用,逻辑上非空) */
|
|
260
|
+
get gizmoManager(): GizmoManager;
|
|
261
|
+
/**
|
|
262
|
+
* 命名空间:元素增删改查
|
|
263
|
+
*
|
|
264
|
+
* 推荐用法(新接口):`artis.item.getArtisItem(id)`、`artis.item.createItem(schema)`。
|
|
265
|
+
*
|
|
266
|
+
* 注意:所有「写数据」的操作请优先通过 {@link command} 执行(走 Command 以支持撤销/重做),
|
|
267
|
+
* `item` 命名空间主要用于「读数据」与底层服务能力的直接访问。
|
|
268
|
+
*/
|
|
269
|
+
get item(): ItemService;
|
|
270
|
+
/**
|
|
271
|
+
* 命名空间:命令与撤销重做
|
|
272
|
+
*
|
|
273
|
+
* 推荐用法(新接口):`artis.command.execute('item.create', { schemas: schema })`。
|
|
274
|
+
* 复合操作可结合 {@link beginBatch} / {@link endBatch} 聚合为单条历史。
|
|
275
|
+
*/
|
|
276
|
+
get command(): CommandService;
|
|
277
|
+
/**
|
|
278
|
+
* 命名空间:选区管理
|
|
279
|
+
*
|
|
280
|
+
* 推荐用法(新接口):`artis.selection.getSelectedIds()`。
|
|
281
|
+
* 「设置选区」的写操作请通过 `artis.command.execute('selection.set', { newSelectedIds: ids })` 执行以支持撤销。
|
|
282
|
+
*
|
|
283
|
+
* Selection 由 GestureHandler 持有(init 时创建,装配后可用,逻辑上非空,与 gestureHandler 同生命周期)。
|
|
284
|
+
* 仅在 run() 完成后访问。
|
|
285
|
+
*/
|
|
286
|
+
get selection(): Selection;
|
|
287
|
+
/**
|
|
288
|
+
* @deprecated 使用 {@link states}。仅保留同一 StateManager 实例的兼容别名。
|
|
289
|
+
*/
|
|
290
|
+
get stateManager(): StateManager;
|
|
291
|
+
/** Enter the GestureHandler-owned TextEditMode after selecting one text item. */
|
|
292
|
+
enterTextEditing(activation?: TextEditActivation): boolean;
|
|
293
|
+
/** Leave the GestureHandler-owned TextEditMode. */
|
|
294
|
+
leaveTextEditing(): void;
|
|
295
|
+
/**
|
|
296
|
+
* 命名空间:视口(缩放 / 平移 / fitToBox)
|
|
297
|
+
*
|
|
298
|
+
* 推荐用法(新接口):`artis.view.zoom`、`artis.view.fitToBox(...)`。
|
|
299
|
+
*/
|
|
300
|
+
get view(): ViewService;
|
|
301
|
+
/**
|
|
302
|
+
* 命名空间:历史栈(撤销 / 重做)
|
|
303
|
+
*
|
|
304
|
+
* 推荐用法(新接口):`artis.history.undo()`、`artis.history.redo()`。
|
|
305
|
+
*/
|
|
306
|
+
get history(): HistoryManager;
|
|
307
|
+
/**
|
|
308
|
+
* 命名空间:偏好配置(对应原 SDKConfig)
|
|
309
|
+
*
|
|
310
|
+
* 推荐用法(新接口):`artis.preferences.setPage({ groupVisible: false })`。
|
|
311
|
+
* 便捷开关见 {@link setGroupVisibleEnabled} 等快捷 setter。
|
|
312
|
+
*/
|
|
313
|
+
get preferences(): UserPreferencesManager;
|
|
314
|
+
/**
|
|
315
|
+
* 命名空间:快捷键(注册 / 改键 / 临时禁用 / 多 profile)
|
|
316
|
+
*
|
|
317
|
+
* 推荐用法(新接口):`artis.keybinding.register({ id, combo, handler })`、
|
|
318
|
+
* `artis.keybinding.disable('item.delete')`、`artis.keybinding.switchProfile('mac-default')`。
|
|
319
|
+
* 内置指令(item.delete / edit.undo / viewport.zoom 等)已在装配期注册,
|
|
320
|
+
* 可通过 setKey 改键、disable 临时关闭、unregister 移除(内置降级为 disable)。
|
|
321
|
+
* 同一 combo 在同一 scope 被其它 id 占用时 register/setKey 抛 DuplicateComboError。
|
|
322
|
+
*/
|
|
323
|
+
get keybinding(): KeyBindingController;
|
|
324
|
+
/**
|
|
325
|
+
* 加载场景并启动渲染(入口方法)
|
|
326
|
+
* 拆分为四个阶段,子类可 override 各阶段方法以自定义行为
|
|
327
|
+
*
|
|
328
|
+
* @param artisData 可选的场景初始化数据,透传给 _loadSceneData
|
|
329
|
+
*/
|
|
330
|
+
run(artisData?: TRunInput): Promise<void>;
|
|
331
|
+
/**
|
|
332
|
+
* 阶段1:初始化渲染引擎,调用 renderer.run() 创建 Player 场景
|
|
333
|
+
* 渲染引擎就绪后尝试绑定 Player 错误监听(enableErrorMonitor 在 run 之前调用时生效)
|
|
334
|
+
*/
|
|
335
|
+
protected _initRenderer(): Promise<void>;
|
|
336
|
+
/**
|
|
337
|
+
* 阶段2:准备 Gizmo 交互层,创建并初始化 GestureHandler,绑定事件
|
|
338
|
+
*
|
|
339
|
+
* initGizmo 内部的 assemble 会创建 GizmoManager(及其 Selection)。装配完成后需:
|
|
340
|
+
* 1. 把 Selection 回填给构造早于装配的 ItemService;
|
|
341
|
+
* 2. 订阅 Selection 事件转发(装配前 Selection 尚不存在,无法在构造期订阅)。
|
|
342
|
+
*/
|
|
343
|
+
protected _prepareGizmo(): void;
|
|
344
|
+
/**
|
|
345
|
+
* 阶段3:加载场景数据。子类 override 以自定义数据来源(编辑数据 / JSON)。
|
|
346
|
+
* 默认实现:识别 InitArtisData.items,逐条 createItem。
|
|
347
|
+
*
|
|
348
|
+
* @param artisData 可选的场景初始化数据,需符合 InitArtisData 结构
|
|
349
|
+
*/
|
|
350
|
+
protected _loadSceneData(artisData?: TRunInput): Promise<void>;
|
|
351
|
+
/**
|
|
352
|
+
* 阶段4:初始化完成,触发 ready 事件
|
|
353
|
+
*/
|
|
354
|
+
protected _onReady(): void;
|
|
355
|
+
/**
|
|
356
|
+
* 返回当前激活场景的编辑元素集合。
|
|
357
|
+
* 编辑数据驱动的 Artis 返回 store.items;JSON 驱动的 SceneArtis 返回激活 SceneEntry.items。
|
|
358
|
+
*/
|
|
359
|
+
protected abstract _getActiveItems(): ArtisItem[];
|
|
360
|
+
/**
|
|
361
|
+
* 设置背景
|
|
362
|
+
*
|
|
363
|
+
* @param config 背景配置
|
|
364
|
+
*/
|
|
365
|
+
setBackground(config: ArtisBackgroundConfig): void;
|
|
366
|
+
/**
|
|
367
|
+
* 开关:成组元素的可见性联动
|
|
368
|
+
*
|
|
369
|
+
* 等价于 `artis.preferences.setPage({ groupVisible: enabled })`。
|
|
370
|
+
*
|
|
371
|
+
* @param enabled 是否开启成组元素可见性联动
|
|
372
|
+
*/
|
|
373
|
+
setGroupVisibleEnabled(enabled: boolean): void;
|
|
374
|
+
/**
|
|
375
|
+
* 追加「需要被过滤的元素名称」列表(去重追加)
|
|
376
|
+
*
|
|
377
|
+
* 等价于向 `artis.preferences.page.filterItemNames` 追加。
|
|
378
|
+
*
|
|
379
|
+
* @param itemNames 单个名称或名称数组
|
|
380
|
+
*/
|
|
381
|
+
addFilterItemNames(itemNames: string | string[]): void;
|
|
382
|
+
/**
|
|
383
|
+
* 追加「需忽略交互的元素名称」(去重追加)。
|
|
384
|
+
*
|
|
385
|
+
* 等价于向 `artis.preferences.page.ignoredInteractionNames` 追加,并同步下发到 gizmo Selection,
|
|
386
|
+
* 使指定名称的元素不参与点选/框选(仍渲染可见)。命令层守卫在构造期已注入,无需重复安装。
|
|
387
|
+
*
|
|
388
|
+
* @param itemNames 单个名称或名称数组
|
|
389
|
+
*/
|
|
390
|
+
addIgnoredInteractionNames(itemNames: string | string[]): void;
|
|
391
|
+
/**
|
|
392
|
+
* 把当前 ignoredInteractionNames 下发到 gizmo Selection(命中名称的元素不参与点选/框选)。
|
|
393
|
+
* 在构造期、_prepareGizmo 与 addIgnoredInteractionNames 后调用,保证 Selection 始终持有最新名单。
|
|
394
|
+
*/
|
|
395
|
+
private _syncIgnoreNamesToSelection;
|
|
396
|
+
/**
|
|
397
|
+
* 注入命令层守卫:在 execute / beginInteraction / updateInteraction 创建并执行 Command 前,
|
|
398
|
+
* 提取目标元素 id,命中 ignoredInteractionNames 名称即抛 {@link IgnoredInteractionError} 拒绝执行。
|
|
399
|
+
* 守卫内名单为空时直接 return,避免每次命令执行都解析名称。
|
|
400
|
+
*/
|
|
401
|
+
private _installIgnoredInteractionGuard;
|
|
402
|
+
/**
|
|
403
|
+
* 开关:静态预览
|
|
404
|
+
*
|
|
405
|
+
* 等价于 `artis.preferences.setPage({ staticPreview: enabled })`。
|
|
406
|
+
*
|
|
407
|
+
* @param enabled 是否开启静态预览
|
|
408
|
+
*/
|
|
409
|
+
setStaticPreviewEnabled(enabled: boolean): void;
|
|
410
|
+
/**
|
|
411
|
+
* 设置静态预览名称
|
|
412
|
+
*
|
|
413
|
+
* 等价于 `artis.preferences.setPage({ staticPreviewName: name })`。
|
|
414
|
+
*
|
|
415
|
+
* @param name 静态预览名称
|
|
416
|
+
*/
|
|
417
|
+
setStaticPreviewName(name: string): void;
|
|
418
|
+
/**
|
|
419
|
+
* 开关:异步资源加载
|
|
420
|
+
*
|
|
421
|
+
* 等价于 `artis.preferences.setAsyncLoad({ enabled })`。
|
|
422
|
+
*
|
|
423
|
+
* @param enabled 是否开启异步资源加载
|
|
424
|
+
*/
|
|
425
|
+
setAsyncEnabled(enabled: boolean): void;
|
|
426
|
+
/**
|
|
427
|
+
* 开关:尺寸自适应
|
|
428
|
+
*
|
|
429
|
+
* 等价于 `artis.preferences.setSizeAdapt({ enabled })`。
|
|
430
|
+
*
|
|
431
|
+
* @param enabled 是否开启尺寸自适应
|
|
432
|
+
*/
|
|
433
|
+
setSizeAdaptEnabled(enabled: boolean): void;
|
|
434
|
+
/**
|
|
435
|
+
* 开关:截图功能
|
|
436
|
+
*
|
|
437
|
+
* 等价于 `artis.preferences.setScreenshot({ enabled })`。
|
|
438
|
+
*
|
|
439
|
+
* @param enabled 是否开启截图功能
|
|
440
|
+
*/
|
|
441
|
+
setScreenShotEnabled(enabled: boolean): void;
|
|
442
|
+
/**
|
|
443
|
+
* 开关:导出功能
|
|
444
|
+
*
|
|
445
|
+
* 等价于 `artis.preferences.setExport({ enabled })`。
|
|
446
|
+
*
|
|
447
|
+
* @param enabled 是否开启导出功能
|
|
448
|
+
*/
|
|
449
|
+
setExportEnabled(enabled: boolean): void;
|
|
450
|
+
/**
|
|
451
|
+
* 开始批量态
|
|
452
|
+
*
|
|
453
|
+
* 用于「单次交互产生多个 Command」的场景:在 beginBatch 与 endBatch 之间
|
|
454
|
+
* 通过 commandService.execute / record 产生的所有子 Command 会被缓冲,
|
|
455
|
+
* endBatch 时聚合为一个历史条目,撤销一次即可整体还原。
|
|
456
|
+
*
|
|
457
|
+
* 典型用法(如切换画板为自动布局):
|
|
458
|
+
* ```ts
|
|
459
|
+
* artis.beginBatch()
|
|
460
|
+
* try {
|
|
461
|
+
* artis.commandService.execute('frame.layoutMode', { frameId, targetMode: 'auto' })
|
|
462
|
+
* artis.commandService.execute('item.transform', { itemId, newTransform })
|
|
463
|
+
* } finally {
|
|
464
|
+
* artis.endBatch('frame.setAutoLayout')
|
|
465
|
+
* }
|
|
466
|
+
* ```
|
|
467
|
+
*/
|
|
468
|
+
beginBatch(): void;
|
|
469
|
+
/**
|
|
470
|
+
* 结束批量态,将缓冲的子 Command 聚合入 History
|
|
471
|
+
*
|
|
472
|
+
* - 0 个子命令:不入 History
|
|
473
|
+
* - 1 个子命令:直接入该子命令(不包裹 Composite,历史更干净)
|
|
474
|
+
* - 多个子命令:聚合为一个 CompositeCommand 入 History
|
|
475
|
+
*
|
|
476
|
+
* @param commandId 可选的复合命令显示 ID(仅多子命令时生效)
|
|
477
|
+
*/
|
|
478
|
+
endBatch(commandId?: string): void;
|
|
479
|
+
/**
|
|
480
|
+
* 取消批量态:丢弃缓冲的子 Command(不入 History)
|
|
481
|
+
*
|
|
482
|
+
* 注意:子命令的数据变更已经发生,此处不做回滚。
|
|
483
|
+
*/
|
|
484
|
+
cancelBatch(): void;
|
|
485
|
+
/**
|
|
486
|
+
* 销毁实例,释放所有资源
|
|
487
|
+
*/
|
|
488
|
+
dispose(): void;
|
|
489
|
+
/**
|
|
490
|
+
* 根据 Gizmo 创建类型构建对应 ItemSchema 的工厂已抽离到
|
|
491
|
+
* core/item/default-item-schema(pure function)。
|
|
492
|
+
*/
|
|
493
|
+
/**
|
|
494
|
+
* 处理 GestureHandler / Command 绑定层转发来的 gizmo 事件,统一触发到 Artis 事件系统。
|
|
495
|
+
*
|
|
496
|
+
* 取代旧 _gizmoEmitter 中转层:不再经第二个 EventEmitter,GH/Command 绑定直接回调本方法。
|
|
497
|
+
* - item.create:先建 schema 跑 command(支持撤销),再 emit
|
|
498
|
+
* - item.dragend:transform 拖拽结束后同步 VFXItem transform → ArtisItem.property + Scene JSON
|
|
499
|
+
* - 其余事件直接转发
|
|
500
|
+
*
|
|
501
|
+
* @param event 事件名(ArtisEvents 的 key)
|
|
502
|
+
* @param args 事件参数
|
|
503
|
+
*/
|
|
504
|
+
private _handleGizmoEvent;
|
|
505
|
+
/** 具体变体按需把 Gizmo 专属事件适配到自己的公开事件表。 */
|
|
506
|
+
protected _handleVariantGizmoEvent(_event: string, _args: unknown[]): void;
|
|
507
|
+
/**
|
|
508
|
+
* 为「独立功能」状态(isolated = true)绑定 History 栈隔离。
|
|
509
|
+
*
|
|
510
|
+
* - 进入时(enter):先 flush 收尾未完成的交互态 / 批量态,再 pushSession 挂起主栈,
|
|
511
|
+
* 给独立功能一条干净的空栈,其 undo / redo 只能操作自身 Command。
|
|
512
|
+
* - 离开时(exit):popSession 丢弃独立功能子栈并原样还原主栈。
|
|
513
|
+
*
|
|
514
|
+
* enter / exit 由 BaseState 在 onEnter / onExit 中 emit,时机早于 StateManager 的
|
|
515
|
+
* 'stateChange' 事件,因此切回基础状态后业务方补的 Command 会归属到已还原的目标栈。
|
|
516
|
+
*
|
|
517
|
+
* @param state 需要隔离 History 栈的状态,仅 isolated 为 true 时生效
|
|
518
|
+
*/
|
|
519
|
+
private _bindIsolatedStateHistorySession;
|
|
520
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Artis 画布 DOM 层级契约。
|
|
3
|
+
*
|
|
4
|
+
* HTML 卡片层必须位于承载 runtime Control 的 Effects canvas 之上:HTML 根层本身不接收事件,
|
|
5
|
+
* 只有被 HTMLCardService 激活的内容节点会改为 pointer-events:auto;其余区域会
|
|
6
|
+
* 穿透到 canvas。层级由 Artis 装配层统一分配,子模块不得各自假设固定值。
|
|
7
|
+
*/
|
|
8
|
+
export declare const ARTIS_CANVAS_LAYER_Z_INDEX: {
|
|
9
|
+
readonly gesture: 1;
|
|
10
|
+
readonly htmlCard: 2;
|
|
11
|
+
};
|
|
12
|
+
export type ArtisCanvasLayers = {
|
|
13
|
+
gesture: HTMLElement;
|
|
14
|
+
htmlCard: HTMLElement;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 应用 Artis 画布层级,并标记具名层以便调试与集成测试定位。
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyArtisCanvasLayerOrder({ gesture, htmlCard }: ArtisCanvasLayers): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ItemSchema, ItemCreateInfo } from '../core';
|
|
2
|
+
/**
|
|
3
|
+
* 旧 CreateInfo 模型 → 新 ItemSchema 模型转换器。
|
|
4
|
+
*
|
|
5
|
+
* 背景:旧 SDK 的元素创建使用 `XxxCreateInfo`(type 为 ArtisItemType 枚举),
|
|
6
|
+
* 新架构统一使用 `ItemSchema`(type 为字符串字面量)。两者 property 字段高度一致,
|
|
7
|
+
* ArtisItemType 枚举值本身即为对应字符串(sprite/text/...),故大部分字段可直接透传。
|
|
8
|
+
*
|
|
9
|
+
* 差异处理:
|
|
10
|
+
* - CardCreateInfo.property.cardType(CardType 类型)→ schema.cardType(string)
|
|
11
|
+
* - FrameCreateInfo.property.layoutMode(FrameLayoutMode 枚举,值已是 'auto'/'free')直接透传
|
|
12
|
+
* - CreateInfo 上的 html / autoLayoutConfig / layoutInfos 等扩展字段不在 ItemSchema 中,忽略
|
|
13
|
+
*
|
|
14
|
+
* @param createInfo 旧元素创建信息
|
|
15
|
+
* @returns 新元素 Schema
|
|
16
|
+
*/
|
|
17
|
+
export declare function createInfoToSchema(createInfo: ItemCreateInfo): ItemSchema;
|
|
18
|
+
/**
|
|
19
|
+
* 批量转换。
|
|
20
|
+
*/
|
|
21
|
+
export declare function createInfosToSchemas(createInfos: ItemCreateInfo[]): ItemSchema[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Artis } from './artis';
|
|
2
|
+
export type { ArtisEvents, ArtisStateEvents } from './types';
|
|
3
|
+
export type { BaseArtisEvents, ArtisWarningEventInfo } from '../core';
|
|
4
|
+
export type { AnyArtisErrorInfo } from '../core';
|
|
5
|
+
export { gizmoConfig } from '../core/gizmo/gizmo-config-override';
|
|
6
|
+
export type { GizmoConfigOverride } from '../core/gizmo/gizmo-config-override';
|
|
7
|
+
export { SceneArtis } from './scene-artis';
|
|
8
|
+
export type { SceneArtisRunInput, SceneArtisReproduceInput } from './scene-artis';
|
|
9
|
+
export { BaseArtis, IgnoredInteractionError } from './base-artis';
|
|
10
|
+
export { HTMLCardService } from '../helper/html-overlay';
|
|
11
|
+
export { ScreenshotService } from './screenshot-service';
|
|
12
|
+
export type { ScreenshotSceneOptions, ScreenshotRenderOptions, ScreenshotGenerateOptions } from './screenshot-service';
|
|
13
|
+
export type { ArtisOptions, ArtisRunInput, ArtisViewParam, } from './types';
|
|
14
|
+
export * from './operations';
|
|
15
|
+
export * from './wiring';
|