@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
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import type { Command, CommandErrorEventHandler, HistoryOperation } from '../command';
|
|
2
|
+
import type { CommandSnapshot, ErrorMonitor, ItemSnapshot } from '../quality/error-monitor';
|
|
3
|
+
/**
|
|
4
|
+
* HistoryManager - 历史管理器
|
|
5
|
+
*
|
|
6
|
+
* 存储已执行的 Command 实例,支持 undo/redo:
|
|
7
|
+
* - undo: 取栈顶 Command,调用 command.undo()
|
|
8
|
+
* - redo: 取下一个 Command,调用 command.redo()
|
|
9
|
+
*
|
|
10
|
+
* 栈隔离(session):独立功能状态进入时调用 pushSession 把主栈挂起、清空活动栈,
|
|
11
|
+
* 切回基础状态时 popSession 丢弃独立功能子栈并还原主栈。
|
|
12
|
+
*/
|
|
13
|
+
export declare class HistoryManager {
|
|
14
|
+
private _commands;
|
|
15
|
+
private _currentIndex;
|
|
16
|
+
private _maxLength;
|
|
17
|
+
private _enabled;
|
|
18
|
+
/**
|
|
19
|
+
* 历史 change 回调集合(多订阅)。
|
|
20
|
+
*
|
|
21
|
+
* push/undo/redo/session/clear 均经 {@link _notifyChange} 通知全部订阅者。
|
|
22
|
+
* 多订阅语义对齐 CommandService._afterExecuteCallbacks:调用方可独立追加而不互相覆盖,
|
|
23
|
+
* 使 CommandService 能在此桥接 undo/redo(不抢占既有 setOnChange 订阅者)。
|
|
24
|
+
*/
|
|
25
|
+
private _changeCallbacks;
|
|
26
|
+
/** session 切换(push/pop)后的通知回调,用于刷新 UI 的 canUndo/canRedo */
|
|
27
|
+
private _onSessionChangeCallback;
|
|
28
|
+
/** 挂起的历史快照栈(独立功能状态隔离用) */
|
|
29
|
+
private _sessionStack;
|
|
30
|
+
/** 错误监控器(按需注入) */
|
|
31
|
+
private _errorMonitor?;
|
|
32
|
+
/** undo/redo 业务错误事件出口 */
|
|
33
|
+
private _errorEventHandler?;
|
|
34
|
+
/** 错误快照会探测 undo/redo;防止探测失败再次递归上报。 */
|
|
35
|
+
private _reportingError;
|
|
36
|
+
/** 构造历史管理器,配置最大栈长与启用态
|
|
37
|
+
* @param maxLength 历史栈最大长度,超出后最早记录被丢弃
|
|
38
|
+
* @param enabled 是否启用历史记录(关闭后 push 不入栈) */
|
|
39
|
+
constructor(maxLength?: number, enabled?: boolean);
|
|
40
|
+
/** 注入错误监控器(由 ErrorMonitorFacade 装配)。 */
|
|
41
|
+
setErrorMonitor(monitor?: ErrorMonitor): void;
|
|
42
|
+
/** 注入 undo/redo 业务错误事件出口。 */
|
|
43
|
+
setErrorEventHandler(handler?: CommandErrorEventHandler): void;
|
|
44
|
+
/** 发散 undo/redo 真异常,并保护错误快照内部历史探测不递归。 */
|
|
45
|
+
private _reportHistoryError;
|
|
46
|
+
/**
|
|
47
|
+
* 设置历史 change 回调(替换式,向后兼容)。
|
|
48
|
+
*
|
|
49
|
+
* 会清空已注册的所有 change 回调,仅保留传入的这一个。
|
|
50
|
+
* 新调用方建议改用 {@link addOnChange} / {@link removeOnChange} 进行多订阅,
|
|
51
|
+
* 避免新回调无意覆盖既有订阅(如 CommandService 的 undo/redo 桥接)。
|
|
52
|
+
*
|
|
53
|
+
* @param callback 操作回调,接收本次操作类型与对应 Command
|
|
54
|
+
*/
|
|
55
|
+
setOnChange(callback: (operation: HistoryOperation) => void): void;
|
|
56
|
+
/**
|
|
57
|
+
* 追加一个历史 change 回调(多订阅中继点)。
|
|
58
|
+
*
|
|
59
|
+
* 多个回调按注册顺序依次触发,互不覆盖。返回一个 dispose 函数用于注销该回调,
|
|
60
|
+
* 便于 CommandService 在 dispose 时精确移除自身桥接订阅。
|
|
61
|
+
*
|
|
62
|
+
* @param callback 操作回调,接收本次操作类型与对应 Command
|
|
63
|
+
* @returns 注销函数,调用后移除该回调
|
|
64
|
+
*/
|
|
65
|
+
addOnChange(callback: (operation: HistoryOperation) => void): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* 移除一个历史 change 回调。
|
|
68
|
+
*
|
|
69
|
+
* @param callback 要移除的回调函数
|
|
70
|
+
*/
|
|
71
|
+
removeOnChange(callback: (operation: HistoryOperation) => void): void;
|
|
72
|
+
/** 按 push/undo/redo/session/clear 通知全部 change 订阅者 */
|
|
73
|
+
private _notifyChange;
|
|
74
|
+
/**
|
|
75
|
+
* 设置 session 切换(pushSession / popSession)后的通知回调。
|
|
76
|
+
* session 切换不对应具体 Command,仅用于通知 UI 刷新 canUndo / canRedo 状态。
|
|
77
|
+
*
|
|
78
|
+
* @param callback session 切换回调
|
|
79
|
+
*/
|
|
80
|
+
setOnSessionChange(callback: () => void): void;
|
|
81
|
+
/**
|
|
82
|
+
* 推入已执行的 Command
|
|
83
|
+
* 丢弃当前索引之后的 redo 分支
|
|
84
|
+
*
|
|
85
|
+
* @param command 已执行的 Command 实例
|
|
86
|
+
*/
|
|
87
|
+
push(command: Command): void;
|
|
88
|
+
/**
|
|
89
|
+
* 撤销:取栈顶 Command 并执行其 undo()
|
|
90
|
+
*
|
|
91
|
+
* @returns 被撤销的 Command,无可撤销时返回 undefined
|
|
92
|
+
*/
|
|
93
|
+
undo(): Command | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* 重做:取下一个 Command 并执行其 redo()
|
|
96
|
+
*
|
|
97
|
+
* @returns 被重做的 Command,无可重做时返回 undefined
|
|
98
|
+
*/
|
|
99
|
+
redo(): Command | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* 是否可撤销(当前索引在栈内)
|
|
102
|
+
*
|
|
103
|
+
* @returns 当前存在可撤销的 Command 时返回 true
|
|
104
|
+
*/
|
|
105
|
+
canUndo(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* 是否可重做(当前索引未到栈顶)
|
|
108
|
+
*
|
|
109
|
+
* @returns 当前存在可重做的 Command 时返回 true
|
|
110
|
+
*/
|
|
111
|
+
canRedo(): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* 获取历史栈中的所有 Command
|
|
114
|
+
*
|
|
115
|
+
* @returns 历史栈中所有 Command 的副本
|
|
116
|
+
*/
|
|
117
|
+
getHistory(): Command[];
|
|
118
|
+
/**
|
|
119
|
+
* 获取当前历史指针位置(-1 表示空栈)
|
|
120
|
+
*
|
|
121
|
+
* @returns 当前历史指针索引
|
|
122
|
+
*/
|
|
123
|
+
getCurrentIndex(): number;
|
|
124
|
+
/** 清空历史栈与挂起的 session 快照,指针归零 */
|
|
125
|
+
clear(): void;
|
|
126
|
+
/**
|
|
127
|
+
* 进入独立功能状态:把当前活动栈整体快照压入 session 栈,并清空活动栈。
|
|
128
|
+
*
|
|
129
|
+
* 之后独立功能产生的 Command 落在一条全新的空栈上,其 undo / redo 只能
|
|
130
|
+
* 操作自身的 Command,撤不到进入前的基础状态(move)操作。
|
|
131
|
+
*/
|
|
132
|
+
pushSession(): void;
|
|
133
|
+
/**
|
|
134
|
+
* 切回基础状态:丢弃当前独立功能子栈,原样还原上一层挂起的主栈快照。
|
|
135
|
+
*
|
|
136
|
+
* 无挂起快照时为 no-op。
|
|
137
|
+
*/
|
|
138
|
+
popSession(): void;
|
|
139
|
+
/**
|
|
140
|
+
* 是否处于独立功能子栈中(存在挂起的主栈快照)
|
|
141
|
+
*/
|
|
142
|
+
get inSession(): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* 获取最近 count 条已执行的 Command 快照(从栈顶往前数)
|
|
145
|
+
* 用于 ErrorMonitor 上报时附带操作上下文,不影响栈状态
|
|
146
|
+
*
|
|
147
|
+
* @param count 需要取的最近 Command 数量
|
|
148
|
+
* @returns 从栈顶往前的 Command 快照数组
|
|
149
|
+
*/
|
|
150
|
+
getRecentCommands(count: number): CommandSnapshot[];
|
|
151
|
+
/**
|
|
152
|
+
* 探测:撤销最近 count 条已成功入栈的 Command 后取元素快照,再 redo 回正。
|
|
153
|
+
*
|
|
154
|
+
* 用于 ErrorMonitor 上报瞬间确定性捕获"交互初始前数据"(preItems),
|
|
155
|
+
* 替代测试页从 JSON 反推。保证调用前后历史指针与场景态不变(纯读)。
|
|
156
|
+
*
|
|
157
|
+
* 实现要点(直接复用 this.undo()/this.redo()):
|
|
158
|
+
* - 走公共 undo/redo 才会触发 onChange → 宿主 syncAllItemsFromPlayer,
|
|
159
|
+
* 把 Player 变更回写到 store;否则 getItemSchemas 读到的是改后态,preItems 失真。
|
|
160
|
+
* (故不再用 _suppressOnChange 抑制回调——那会同时吞掉必要的 store 同步。)
|
|
161
|
+
* - 记录 undo 步数 undone,redo 阶段只 redo 这么多次,绝不越过原始 currentIndex。
|
|
162
|
+
* - 任意一步 undo 抛错 → 已 undo 的步用 redo 回正(仍受 undone 上界约束),
|
|
163
|
+
* 回正失败则尽力而为,返回 { ok: false },由上层决定是否采信 items。
|
|
164
|
+
* - 成功路径 items 为撤销后态;失败路径 items 为进入前当前态(fallback)。
|
|
165
|
+
*
|
|
166
|
+
* @param count 要回溯的步数
|
|
167
|
+
* @param getItems 取当前元素快照的回调(由调用方提供,避免本类反向依赖 ItemService)
|
|
168
|
+
* @returns 撤销后的元素态与是否成功
|
|
169
|
+
*/
|
|
170
|
+
peekBeforeRecent(count: number, getItems: () => ItemSnapshot[]): {
|
|
171
|
+
items: ItemSnapshot[];
|
|
172
|
+
ok: boolean;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HistoryManager } from './history-manager';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export * from './item';
|
|
2
|
+
export * from './store';
|
|
3
|
+
export * from './types';
|
|
4
|
+
export * from './gizmo';
|
|
5
|
+
export * from './quality';
|
|
6
|
+
export * from './command';
|
|
7
|
+
export * from './keybinding';
|
|
8
|
+
export * from './element-registry';
|
|
9
|
+
export * from './asset';
|
|
10
|
+
export * from './history';
|
|
11
|
+
export * from './plugin';
|
|
12
|
+
export * from './preferences';
|
|
13
|
+
export * from './renderer';
|
|
14
|
+
export * from './service';
|
|
15
|
+
export * from './predict';
|
|
16
|
+
export * from './state';
|
|
17
|
+
export type { ViewportProvider, CameraProvider, ItemTransformProvider, InteractionConfig, } from './service';
|
|
18
|
+
export type { SceneEntrySnapshot } from './store';
|
|
19
|
+
export type { ErrorMonitorCallback, ArtisErrorInfo, ArtisErrorInfoBase, SceneArtisErrorInfo, AnyArtisErrorInfo, SceneSnapshotBase, ArtisSnapshot, ArtisSnapshotExtras, SceneArtisSnapshot, SceneArtisSnapshotExtras, VariantErrorSnapshot, } from './quality/error-monitor';
|
|
20
|
+
export type { PerfMonitorCallback, PerfReport, PerfMetric } from './quality/perf-monitor';
|
|
21
|
+
export type { StabilityMonitorCallback, HealthState, StabilityReport, RecommendedAction, RecommendedActionToken } from './quality/stability-monitor';
|
|
22
|
+
export type { ElementRegistryDeps } from './element-registry';
|
|
23
|
+
export type { CommandBindingContext, GizmoBridgeEvent, GizmoBridgeEventArgs } from './gizmo';
|
|
24
|
+
export type { CommandErrorEventHandler } from './command';
|
|
25
|
+
export type { BaseStateEventMap, StateChangeEvent, StateId, StateManagerEventMap, StateTransition, StateNavigator, StateGizmoToolConstructor, StateLifecyclePhase, StateBundleRegistration, StateBundleHandle, } from './state';
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { type BaseItemProperty, type ItemSchema } from '../types';
|
|
2
|
+
import { spec } from '../../shared';
|
|
3
|
+
import { type ArtisItemOptions, type ArtisItemType } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* ArtisItem 抽象基类
|
|
6
|
+
* 支持属性扩展,允许添加任意自定义属性
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseItem {
|
|
9
|
+
/**
|
|
10
|
+
* 元素ID(用户可读,全局唯一,随 Schema 落盘)
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* Player 维度 VFXItem ID(GUID,仅运行时、不落盘——决策 D2)
|
|
15
|
+
*
|
|
16
|
+
* 与 id 分离:id 是用户可见的元素标识;vfxItemId 是 VFXItem.instanceId 的镜像,
|
|
17
|
+
* 由 createXxx / loadEffectsAsset 创建 VFXItem 后取 `getInstanceId()` 回填。序列化层
|
|
18
|
+
* (toJSON/toSchema)不输出此字段。未显式传入时落 `?? id` 兜底, assembler 导入路径
|
|
19
|
+
* (instanceId === elementId)依赖此兜底长期生效。
|
|
20
|
+
*
|
|
21
|
+
* id 基准随身份策略分两种:
|
|
22
|
+
* - Artis(RegistryIdentityStrategy):id=schemaId,与 vfxItemId(instanceId) 分离,靠 registry 翻译。
|
|
23
|
+
* - SceneArtis(IdentityStrategy):createXxx 经 resolveItemId 把 id 覆盖为 instanceId,
|
|
24
|
+
* 即 id===vfxItemId===instanceId 三者同值,无需映射;assembler 导入路径本就同值,
|
|
25
|
+
* 此兜底对导入与 SceneArtis 创建一致生效。
|
|
26
|
+
*/
|
|
27
|
+
vfxItemId: string;
|
|
28
|
+
/**
|
|
29
|
+
* 元素名称
|
|
30
|
+
*/
|
|
31
|
+
name: string;
|
|
32
|
+
/**
|
|
33
|
+
* 父节点ID
|
|
34
|
+
*/
|
|
35
|
+
parentId?: string;
|
|
36
|
+
/**
|
|
37
|
+
* 元素生命周期
|
|
38
|
+
*/
|
|
39
|
+
duration: number;
|
|
40
|
+
/**
|
|
41
|
+
* 元素生命周期延时
|
|
42
|
+
*/
|
|
43
|
+
delay: number;
|
|
44
|
+
/**
|
|
45
|
+
* 元素结束行为
|
|
46
|
+
*/
|
|
47
|
+
endBehavior: spec.EndBehavior;
|
|
48
|
+
/**
|
|
49
|
+
* 是否可见
|
|
50
|
+
*/
|
|
51
|
+
visible: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* 是否处于锁定状态
|
|
54
|
+
*/
|
|
55
|
+
isLocked: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* 核心数据是否支持编辑
|
|
58
|
+
*/
|
|
59
|
+
isCoreEditable: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* 扩展属性存储(与 property 同级)
|
|
62
|
+
*/
|
|
63
|
+
extension: Map<string, any>;
|
|
64
|
+
/**
|
|
65
|
+
* 资源加载错误(运行态,不落盘、不进 undo)。
|
|
66
|
+
*
|
|
67
|
+
* loadItemAsset 失败时由 ItemService 注入回调写入(Error | string),成功后清空。
|
|
68
|
+
* 供 `artis.item.getLoadError(id)` 查询 + loading/failure gizmo 显示,避免静默白板。
|
|
69
|
+
*/
|
|
70
|
+
_loadError?: Error | string | null;
|
|
71
|
+
/**
|
|
72
|
+
* 占位待资源标记(运行态·不落盘·不进 undo)。
|
|
73
|
+
*
|
|
74
|
+
* 资源类元素(sprite/video/effects)在「资源属性传空('')」创建时,由 ItemCreatorService 经
|
|
75
|
+
* ItemCreatorHooks.markResourcePending 置 true 并挂 LoadingManager;后续 item.replaceSource
|
|
76
|
+
* 命中本标记时走 loading 闭环补真资源(finally 关 loading + 清标记);元素在 pending 期间被删
|
|
77
|
+
* 由 removeItem 兜底关 loading。统一了「传空 → 占位 + loading → replace 闭环」范式。
|
|
78
|
+
*/
|
|
79
|
+
_pendingResource?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* 元素类型(由子类实现)
|
|
82
|
+
* 支持 spec.ItemType 或扩展的 ArtisItemType
|
|
83
|
+
*/
|
|
84
|
+
abstract readonly type: ArtisItemType;
|
|
85
|
+
/**
|
|
86
|
+
* 元素属性(由子类实现)
|
|
87
|
+
*/
|
|
88
|
+
abstract readonly property: BaseItemProperty;
|
|
89
|
+
constructor(options: ArtisItemOptions);
|
|
90
|
+
/** 像素宽度(属性宽度乘以 x 轴缩放) */
|
|
91
|
+
get pixelWidth(): number;
|
|
92
|
+
/** 像素高度(属性高度乘以 y 轴缩放) */
|
|
93
|
+
get pixelHeight(): number;
|
|
94
|
+
/**
|
|
95
|
+
* 设置扩展属性
|
|
96
|
+
* @param key 属性名
|
|
97
|
+
* @param value 属性值
|
|
98
|
+
*/
|
|
99
|
+
setExtension(key: string, value: any): void;
|
|
100
|
+
/**
|
|
101
|
+
* 获取扩展属性
|
|
102
|
+
* @param key 属性名
|
|
103
|
+
* @returns 属性值
|
|
104
|
+
*/
|
|
105
|
+
getExtension(key: string): any;
|
|
106
|
+
/**
|
|
107
|
+
* 检查是否存在指定扩展属性
|
|
108
|
+
* @param key 属性名
|
|
109
|
+
* @returns 是否存在
|
|
110
|
+
*/
|
|
111
|
+
hasExtension(key: string): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* 删除扩展属性
|
|
114
|
+
* @param key 属性名
|
|
115
|
+
* @returns 是否删除成功
|
|
116
|
+
*/
|
|
117
|
+
deleteExtension(key: string): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* 获取所有扩展属性的键名列表
|
|
120
|
+
* @returns 键名数组
|
|
121
|
+
*/
|
|
122
|
+
getExtensionKeys(): string[];
|
|
123
|
+
/**
|
|
124
|
+
* 获取所有扩展属性
|
|
125
|
+
* @returns 扩展属性对象
|
|
126
|
+
*/
|
|
127
|
+
getAllExtension(): Record<string, any>;
|
|
128
|
+
/**
|
|
129
|
+
* 批量设置扩展属性
|
|
130
|
+
* @param extensions 扩展属性对象
|
|
131
|
+
*/
|
|
132
|
+
setExtensions(extensions: Record<string, any>): void;
|
|
133
|
+
/**
|
|
134
|
+
* 清空所有扩展属性
|
|
135
|
+
*/
|
|
136
|
+
clearExtension(): void;
|
|
137
|
+
/**
|
|
138
|
+
* 转换为 ItemSchema(用于元素复制/导出)
|
|
139
|
+
* @param withParent 是否包含父节点ID
|
|
140
|
+
* @returns ItemSchema 对象
|
|
141
|
+
*/
|
|
142
|
+
abstract toSchema(withParent?: boolean): ItemSchema;
|
|
143
|
+
/**
|
|
144
|
+
* 克隆 ArtisItem
|
|
145
|
+
* @returns 新的 ArtisItem 实例
|
|
146
|
+
*/
|
|
147
|
+
abstract clone(): BaseItem;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 类型守卫函数:检查对象是否是 BaseItem
|
|
151
|
+
* @param obj 要检查的对象
|
|
152
|
+
* @returns 是否是 BaseItem 实例
|
|
153
|
+
*/
|
|
154
|
+
export declare function isBaseItem(obj: any): obj is BaseItem;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { CardItemProperty, CardHTML } from '..//types';
|
|
2
|
+
import type { CardItemSchema } from '../types';
|
|
3
|
+
import { ArtisItemType, type CardItemOptions } from './types';
|
|
4
|
+
import { BaseItem } from './base-item';
|
|
5
|
+
/**
|
|
6
|
+
* 卡片元素 ArtisItem 类
|
|
7
|
+
* 在 Player 中以 SpriteItem 形式渲染(透明占位,无图)
|
|
8
|
+
* 支持设置卡片类型(cardType)
|
|
9
|
+
*/
|
|
10
|
+
export declare class CardItem extends BaseItem {
|
|
11
|
+
/**
|
|
12
|
+
* 元素类型
|
|
13
|
+
*/
|
|
14
|
+
readonly type = ArtisItemType.CARD;
|
|
15
|
+
/**
|
|
16
|
+
* 元素属性(包含 cardType)
|
|
17
|
+
*/
|
|
18
|
+
property: CardItemProperty;
|
|
19
|
+
constructor(options: CardItemOptions);
|
|
20
|
+
/**
|
|
21
|
+
* 卡片类型
|
|
22
|
+
*/
|
|
23
|
+
get cardType(): string;
|
|
24
|
+
/**
|
|
25
|
+
* 设置卡片类型
|
|
26
|
+
* @param value 卡片类型
|
|
27
|
+
*/
|
|
28
|
+
set cardType(value: string);
|
|
29
|
+
/**
|
|
30
|
+
* HTML 覆盖层配置
|
|
31
|
+
*/
|
|
32
|
+
get html(): CardHTML | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* 设置 HTML 覆盖层配置
|
|
35
|
+
* @param value HTML 覆盖层配置
|
|
36
|
+
*/
|
|
37
|
+
set html(value: CardHTML | undefined);
|
|
38
|
+
/**
|
|
39
|
+
* 位置
|
|
40
|
+
*/
|
|
41
|
+
get position(): [number, number];
|
|
42
|
+
/**
|
|
43
|
+
* 设置位置
|
|
44
|
+
* @param value 位置坐标 [x, y]
|
|
45
|
+
*/
|
|
46
|
+
set position(value: [number, number]);
|
|
47
|
+
/**
|
|
48
|
+
* 宽度
|
|
49
|
+
*/
|
|
50
|
+
get width(): number;
|
|
51
|
+
/**
|
|
52
|
+
* 设置宽度
|
|
53
|
+
* @param value 宽度
|
|
54
|
+
*/
|
|
55
|
+
set width(value: number);
|
|
56
|
+
/**
|
|
57
|
+
* 高度
|
|
58
|
+
*/
|
|
59
|
+
get height(): number;
|
|
60
|
+
/**
|
|
61
|
+
* 设置高度
|
|
62
|
+
* @param value 高度
|
|
63
|
+
*/
|
|
64
|
+
set height(value: number);
|
|
65
|
+
/**
|
|
66
|
+
* 旋转(二维旋转角度)
|
|
67
|
+
*/
|
|
68
|
+
get rotation(): number;
|
|
69
|
+
/**
|
|
70
|
+
* 设置旋转角度(二维)
|
|
71
|
+
* @param value 旋转角度
|
|
72
|
+
*/
|
|
73
|
+
set rotation(value: number);
|
|
74
|
+
/**
|
|
75
|
+
* 转换为 CardItemSchema
|
|
76
|
+
* @param withParent 是否包含父节点ID
|
|
77
|
+
* @returns CardItemSchema 对象
|
|
78
|
+
*/
|
|
79
|
+
toSchema(withParent?: boolean): CardItemSchema;
|
|
80
|
+
/**
|
|
81
|
+
* 克隆 ArtisItem
|
|
82
|
+
* @returns 新的 CardItem 实例
|
|
83
|
+
*/
|
|
84
|
+
clone(): CardItem;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 类型守卫:检查是否是 CardItem
|
|
88
|
+
* @param obj 待检查对象
|
|
89
|
+
* @returns 是否是 CardItem 实例
|
|
90
|
+
*/
|
|
91
|
+
export declare function isCardItem(obj: any): obj is CardItem;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { spec } from '../../shared';
|
|
2
|
+
import type { ItemSchema } from '../types';
|
|
3
|
+
import { ItemCreateType } from '@vvfx/gizmo';
|
|
4
|
+
/**
|
|
5
|
+
* 根据 Gizmo 创建类型构建对应的 ItemSchema。
|
|
6
|
+
*
|
|
7
|
+
* - text:纯占位文本,给一套默认视觉参数
|
|
8
|
+
* - sprite-generator:图片生成器占位(无资源 URL,后续异步填充)
|
|
9
|
+
* - video-generator:视频生成器占位
|
|
10
|
+
* - frame:画板点击创建的默认尺寸兜底;拖拽 Frame 由 Gizmo Command 绑定按实时尺寸组装 schema
|
|
11
|
+
* - none:不创建,返回 undefined
|
|
12
|
+
*
|
|
13
|
+
* 纯函数(无实例状态依赖),从 BaseArtis 抽离以便独立测试与复用。
|
|
14
|
+
*
|
|
15
|
+
* @param type Gizmo 创建类型
|
|
16
|
+
* @param position 创建位置(像素坐标系)
|
|
17
|
+
* @param id 预生成的元素 ID
|
|
18
|
+
* @param textWidth 文字拖拽创建得到的固定宽度;点击创建时缺省为 300
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildItemSchemaByCreateType(type: ItemCreateType, position: spec.vec2, id: string, textWidth?: number): ItemSchema | undefined;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type EffectsItemProperty, type EffectsItemSchema } from '../types';
|
|
2
|
+
import { ArtisItemType, EffectsItemOptions } from './types';
|
|
3
|
+
import { BaseItem } from './base-item';
|
|
4
|
+
import { spec } from '../../shared';
|
|
5
|
+
/**
|
|
6
|
+
* 特效产物 元素 ArtisItem 类
|
|
7
|
+
*/
|
|
8
|
+
export declare class EffectsItem extends BaseItem {
|
|
9
|
+
/**
|
|
10
|
+
* 元素类型(独立类型,不属于 spec.ItemType)
|
|
11
|
+
*/
|
|
12
|
+
readonly type = ArtisItemType.EFFECTS;
|
|
13
|
+
/**
|
|
14
|
+
* 预合成元素ID
|
|
15
|
+
*/
|
|
16
|
+
subCompositionItemId: string;
|
|
17
|
+
/**
|
|
18
|
+
* 特效子预合成 JSONScene 缓存(运行时、不落盘——同 vfxItemId 性质)。
|
|
19
|
+
*
|
|
20
|
+
* loadEffectsAsset 加载时缓存解析后的子 JSONScene,供 {@link JsonSceneSyncService}
|
|
21
|
+
* 会话内新建 effects 元素 insert 时 embed 到主 scene.compositions(F1c-effects),
|
|
22
|
+
* 使 reload 后子预合成可复建。property.effects 仅存 url,无法反向取得 scene,故需此缓存。
|
|
23
|
+
*/
|
|
24
|
+
effectsScene?: spec.JSONScene;
|
|
25
|
+
/**
|
|
26
|
+
* 元素属性
|
|
27
|
+
*/
|
|
28
|
+
property: EffectsItemProperty;
|
|
29
|
+
constructor(options: EffectsItemOptions);
|
|
30
|
+
/**
|
|
31
|
+
* 特效资源地址
|
|
32
|
+
*/
|
|
33
|
+
get effects(): string;
|
|
34
|
+
/**
|
|
35
|
+
* 设置特效资源地址
|
|
36
|
+
* @param value 特效资源地址
|
|
37
|
+
*/
|
|
38
|
+
set effects(value: string);
|
|
39
|
+
/**
|
|
40
|
+
* 位置
|
|
41
|
+
*/
|
|
42
|
+
get position(): [number, number];
|
|
43
|
+
/**
|
|
44
|
+
* 设置位置
|
|
45
|
+
* @param value 位置坐标 [x, y]
|
|
46
|
+
*/
|
|
47
|
+
set position(value: [number, number]);
|
|
48
|
+
/**
|
|
49
|
+
* 宽度
|
|
50
|
+
*/
|
|
51
|
+
get width(): number;
|
|
52
|
+
/**
|
|
53
|
+
* 设置宽度
|
|
54
|
+
* @param value 宽度
|
|
55
|
+
*/
|
|
56
|
+
set width(value: number);
|
|
57
|
+
/**
|
|
58
|
+
* 高度
|
|
59
|
+
*/
|
|
60
|
+
get height(): number;
|
|
61
|
+
/**
|
|
62
|
+
* 设置高度
|
|
63
|
+
* @param value 高度
|
|
64
|
+
*/
|
|
65
|
+
set height(value: number);
|
|
66
|
+
/**
|
|
67
|
+
* 是否自适应大小(只读,初值在 create 期锁定后不再改、不暴露 UI、不进 undo)。
|
|
68
|
+
* true:加载/切换资源时元素大小随新资源主合成 previewSize 变化;
|
|
69
|
+
* false:加载/切换资源时元素大小不变(create 期定死)。
|
|
70
|
+
* 故仅提供 getter,不暴露 setter,避免外部改写破坏初值语义。
|
|
71
|
+
*/
|
|
72
|
+
get autoFit(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* 旋转(二维旋转角度)
|
|
75
|
+
*/
|
|
76
|
+
get rotation(): number;
|
|
77
|
+
/**
|
|
78
|
+
* 设置旋转角度(二维)
|
|
79
|
+
* @param value 旋转角度
|
|
80
|
+
*/
|
|
81
|
+
set rotation(value: number);
|
|
82
|
+
/**
|
|
83
|
+
* 转换为 EffectsItemSchema
|
|
84
|
+
* @param withParent 是否包含父节点ID
|
|
85
|
+
* @returns EffectsItemSchema 对象
|
|
86
|
+
*/
|
|
87
|
+
toSchema(withParent?: boolean): EffectsItemSchema;
|
|
88
|
+
/**
|
|
89
|
+
* 克隆 ArtisItem
|
|
90
|
+
* @returns 新的 EffectsItem 实例
|
|
91
|
+
*/
|
|
92
|
+
clone(): EffectsItem;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 类型守卫:检查是否是 EffectsItem
|
|
96
|
+
* @param obj 待检查对象
|
|
97
|
+
* @returns 是否是 EffectsItem 实例
|
|
98
|
+
*/
|
|
99
|
+
export declare function isEffectsItem(obj: any): obj is EffectsItem;
|