@fps-games/editor 0.1.4-beta.3 → 0.1.4-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/local-editor-harness.d.ts +46 -6
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +253 -21
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +13 -1
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-sdk.d.ts +1 -1
- package/dist/playable-sdk.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +25 -2
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +89 -9
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/package.json +3 -3
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +14 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +54 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +2 -2
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +33 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +85 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +1 -1
- package/package.json +8 -8
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type AuthoringCommandResult, type AuthoringSourceDescriptor, type DocumentCommand, type EditorPlacementHit, type EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformDocumentCapabilities, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, type EditorViewportGroundMeasurement, type EditorViewportToolState, type SceneGraphCreateGroupIntent, type SceneGraphCreatePrimitiveIntent, type SceneGraphDeleteIntent, type SceneGraphDropIntent, type SceneGraphGroupSelectionIntent, type SceneGraphMoveIntent, type SceneGraphRenameIntent, type SceneGraphValidationResult, type SerializedMultiObject, type SerializedObject, type InspectorControlKind, type InspectorCommitMode, type InspectorComponentRegistration, type InspectorEditPayload, type InspectorObject, type InspectorPersistenceMode, type InspectorProperty, type InspectorRegistry, type InspectorRegistryConflictStrategy, type InspectorSection, type InspectorSelectionContext, type EditorHostServices, type ProjectAuthoringHost } from '@fps-games/editor-core';
|
|
1
|
+
import { type AuthoringCommandResult, type AuthoringSourceDescriptor, type DocumentCommand, type EditorPlacementHit, type EditorProjectionImpact, type EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformDocumentCapabilities, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, type EditorViewportGroundMeasurement, type EditorViewportToolState, type SceneGraphCreateGroupIntent, type SceneGraphCreatePrimitiveIntent, type SceneGraphDeleteIntent, type SceneGraphDropIntent, type SceneGraphGroupSelectionIntent, type SceneGraphMoveIntent, type SceneGraphRenameIntent, type SceneGraphValidationResult, type SerializedMultiObject, type SerializedObject, type InspectorControlKind, type InspectorCommitMode, type InspectorComponentRegistration, type InspectorEditPayload, type InspectorObject, type InspectorPersistenceMode, type InspectorProperty, type InspectorRegistry, type InspectorRegistryConflictStrategy, type InspectorSection, type InspectorSelectionContext, type EditorHostServices, type ProjectAuthoringHost } from '@fps-games/editor-core';
|
|
2
2
|
import type { ArtistMaterialTextureRef } from '@fps-games/editor-protocol';
|
|
3
3
|
import { type LocalEditorBrowserAssetActionInput, type LocalEditorBrowserUiAssetItem, type LocalEditorBrowserHierarchyContextActionContext, type LocalEditorBrowserHierarchyContextActionRegistration, type LocalEditorBrowserInspectorOptions, type LocalEditorBrowserRenderingPanelState, type LocalEditorBrowserRenderingActionInput, type LocalEditorBrowserRenderingPropertyChangeInput, type LocalEditorBrowserUiHierarchyItem, type LocalEditorBrowserUiState, type LocalEditorThemeController, type LocalEditorThemeName } from '@fps-games/editor-browser';
|
|
4
4
|
import { type BabylonEnvironmentTextureProfile, type BabylonDefaultPostProcessProfile } from '@fps-games/babylon-renderer';
|
|
5
|
-
import { type BabylonSceneViewMeasurementController, type BabylonEditorShadowPreviewOptions, type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonEditorGridController, type BabylonEditorGridColorOptions, type BabylonEditorWorldAppearanceOptions, type BabylonEditorSkyOptions, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
|
|
5
|
+
import { type BabylonEditorProjectionBatchStatus, type BabylonSceneViewMeasurementController, type BabylonEditorShadowPreviewOptions, type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonEditorGridController, type BabylonEditorGridColorOptions, type BabylonEditorWorldAppearanceOptions, type BabylonEditorSkyOptions, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
|
|
6
6
|
export type LocalEditorHarnessMode = 'game' | 'editor';
|
|
7
7
|
type LocalEditorMaybePromise<T> = T | Promise<T>;
|
|
8
8
|
export interface LocalEditorAuthoringFailureStatus {
|
|
@@ -166,16 +166,19 @@ export interface LocalEditorHarnessPatchResult<TPatch> {
|
|
|
166
166
|
createdId?: string | null;
|
|
167
167
|
changedIds?: string[];
|
|
168
168
|
reprojectIds?: string[];
|
|
169
|
+
projectionImpact?: EditorProjectionImpact;
|
|
169
170
|
}
|
|
170
171
|
export interface LocalEditorHarnessSceneGraphRenamePatch<TPatch> {
|
|
171
172
|
patch: TPatch;
|
|
172
173
|
label?: string;
|
|
173
174
|
changedId?: string;
|
|
175
|
+
projectionImpact?: EditorProjectionImpact;
|
|
174
176
|
}
|
|
175
177
|
export interface LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> {
|
|
176
178
|
patch: TPatch;
|
|
177
179
|
label?: string;
|
|
178
180
|
createdId: string;
|
|
181
|
+
projectionImpact?: EditorProjectionImpact;
|
|
179
182
|
}
|
|
180
183
|
export interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {
|
|
181
184
|
patch: TPatch;
|
|
@@ -183,28 +186,33 @@ export interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {
|
|
|
183
186
|
createdId: string;
|
|
184
187
|
changedIds?: string[];
|
|
185
188
|
reprojectIds?: string[];
|
|
189
|
+
projectionImpact?: EditorProjectionImpact;
|
|
186
190
|
}
|
|
187
191
|
export interface LocalEditorHarnessSceneGraphDeletePatch<TPatch> {
|
|
188
192
|
patch: TPatch;
|
|
189
193
|
label?: string;
|
|
190
194
|
deletedIds?: string[];
|
|
191
195
|
fallbackSelectionId?: string | null;
|
|
196
|
+
projectionImpact?: EditorProjectionImpact;
|
|
192
197
|
}
|
|
193
198
|
export interface LocalEditorHarnessSceneGraphDropPatch<TPatch> {
|
|
194
199
|
patch: TPatch;
|
|
195
200
|
label?: string;
|
|
196
201
|
changedIds?: string[];
|
|
202
|
+
projectionImpact?: EditorProjectionImpact;
|
|
197
203
|
}
|
|
198
204
|
export interface LocalEditorHarnessSceneGraphMovePatch<TPatch> {
|
|
199
205
|
patch: TPatch;
|
|
200
206
|
label?: string;
|
|
201
207
|
changedIds?: string[];
|
|
208
|
+
projectionImpact?: EditorProjectionImpact;
|
|
202
209
|
}
|
|
203
210
|
export interface LocalEditorHarnessSceneGraphGroupSelectionPatch<TPatch> {
|
|
204
211
|
patch: TPatch;
|
|
205
212
|
label?: string;
|
|
206
213
|
createdId: string;
|
|
207
214
|
changedIds?: string[];
|
|
215
|
+
projectionImpact?: EditorProjectionImpact;
|
|
208
216
|
}
|
|
209
217
|
export interface LocalEditorHarnessDuplicateSelectionPatch<TPatch> {
|
|
210
218
|
patch: TPatch;
|
|
@@ -213,6 +221,7 @@ export interface LocalEditorHarnessDuplicateSelectionPatch<TPatch> {
|
|
|
213
221
|
activeId?: string | null;
|
|
214
222
|
changedIds?: string[];
|
|
215
223
|
reprojectIds?: string[];
|
|
224
|
+
projectionImpact?: EditorProjectionImpact;
|
|
216
225
|
}
|
|
217
226
|
export interface LocalEditorHarnessPlacedAssetPatch<TPatch> {
|
|
218
227
|
patch: TPatch;
|
|
@@ -220,6 +229,7 @@ export interface LocalEditorHarnessPlacedAssetPatch<TPatch> {
|
|
|
220
229
|
createdId?: string | null;
|
|
221
230
|
changedIds?: string[];
|
|
222
231
|
reprojectIds?: string[];
|
|
232
|
+
projectionImpact?: EditorProjectionImpact;
|
|
223
233
|
}
|
|
224
234
|
export interface LocalEditorHarnessAssetPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> {
|
|
225
235
|
document: TDocument;
|
|
@@ -244,6 +254,37 @@ export interface LocalEditorHarnessAssetCreationResult {
|
|
|
244
254
|
export interface LocalEditorHarnessAssetCreationOptions {
|
|
245
255
|
placement?: EditorTransformSnapshot;
|
|
246
256
|
}
|
|
257
|
+
export type LocalEditorHarnessOperationOrigin = 'user' | 'agent' | 'system';
|
|
258
|
+
export type LocalEditorHarnessProjectionWaitPolicy = 'none' | 'settled';
|
|
259
|
+
export type LocalEditorHarnessHistoryOperation = 'undo' | 'redo';
|
|
260
|
+
export type LocalEditorHarnessProjectionImpact = EditorProjectionImpact;
|
|
261
|
+
export interface LocalEditorHarnessHistoryOperationOptions {
|
|
262
|
+
origin?: LocalEditorHarnessOperationOrigin;
|
|
263
|
+
waitForProjection?: LocalEditorHarnessProjectionWaitPolicy;
|
|
264
|
+
}
|
|
265
|
+
export interface LocalEditorHarnessHistoryProjectionResult {
|
|
266
|
+
waitPolicy: LocalEditorHarnessProjectionWaitPolicy;
|
|
267
|
+
idle: boolean;
|
|
268
|
+
activeBatchIds: number[];
|
|
269
|
+
lastBatch: BabylonEditorProjectionBatchStatus | null;
|
|
270
|
+
}
|
|
271
|
+
export interface LocalEditorHarnessHistoryStateResult {
|
|
272
|
+
canUndo: boolean;
|
|
273
|
+
canRedo: boolean;
|
|
274
|
+
}
|
|
275
|
+
export interface LocalEditorHarnessHistoryOperationResult<TDocument = unknown> {
|
|
276
|
+
ok: boolean;
|
|
277
|
+
operation: LocalEditorHarnessHistoryOperation;
|
|
278
|
+
origin: LocalEditorHarnessOperationOrigin;
|
|
279
|
+
waitForProjection: LocalEditorHarnessProjectionWaitPolicy;
|
|
280
|
+
documentChanged: boolean;
|
|
281
|
+
transactionLabel: string | null;
|
|
282
|
+
workingDocument: TDocument | null;
|
|
283
|
+
dirty: boolean;
|
|
284
|
+
history: LocalEditorHarnessHistoryStateResult;
|
|
285
|
+
status: string;
|
|
286
|
+
projection: LocalEditorHarnessHistoryProjectionResult;
|
|
287
|
+
}
|
|
247
288
|
export interface LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> extends LocalEditorBrowserAssetActionInput {
|
|
248
289
|
document: TDocument;
|
|
249
290
|
asset: TAsset | null;
|
|
@@ -272,10 +313,7 @@ export interface LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset = L
|
|
|
272
313
|
onRenderingPropertyChange?(input: LocalEditorHarnessRenderingPropertyInput<TDocument>): LocalEditorMaybePromise<boolean | void | LocalEditorHarnessRenderingPropertyChangeResult>;
|
|
273
314
|
isSelectable?(document: TDocument, id: string): boolean;
|
|
274
315
|
isLocked?(document: TDocument, id: string): boolean;
|
|
275
|
-
createPatchFromAsset(asset: TAsset, input?: LocalEditorHarnessAssetPatchInput<TDocument, TAsset>):
|
|
276
|
-
patch: TPatch;
|
|
277
|
-
label?: string;
|
|
278
|
-
};
|
|
316
|
+
createPatchFromAsset(asset: TAsset, input?: LocalEditorHarnessAssetPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch>;
|
|
279
317
|
createAssetActionPatch?(input: LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch> | null;
|
|
280
318
|
createPlacedAssetPatch?(input: LocalEditorHarnessPlacedAssetInput<TDocument, TAsset>): LocalEditorHarnessPlacedAssetPatch<TPatch> | null;
|
|
281
319
|
findCreatedId?(beforeDocument: TDocument, afterDocument: TDocument): string | null;
|
|
@@ -392,6 +430,8 @@ export interface LocalEditorHarness<TDocument = unknown> {
|
|
|
392
430
|
getWorkingDocument(): TDocument | null;
|
|
393
431
|
reloadAssets(): Promise<LocalEditorHarnessAssetReloadResult>;
|
|
394
432
|
createAssetFromAssetId(assetId: string, options?: LocalEditorHarnessAssetCreationOptions): LocalEditorHarnessAssetCreationResult;
|
|
433
|
+
undo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;
|
|
434
|
+
redo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;
|
|
395
435
|
enterEditor(): Promise<void>;
|
|
396
436
|
saveScene(): Promise<boolean>;
|
|
397
437
|
saveAndRunGame(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-editor-harness.d.ts","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAM9B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAOvB,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EAEvC,KAAK,mCAAmC,EAGxC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EAExB,KAAK,+BAA+B,EAIpC,KAAK,uBAAuB,EAM5B,KAAK,2BAA2B,EAChC,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAG/B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iCAAiC,EACtC,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EAKvB,KAAK,oBAAoB,EAS1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAGL,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,+CAA+C,EACpD,KAAK,oDAAoD,EAEzD,KAAK,kCAAkC,EACvC,KAAK,qCAAqC,EAC1C,KAAK,sCAAsC,EAC3C,KAAK,8CAA8C,EAEnD,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAE9B,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,gCAAgC,EAErC,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAiBL,KAAK,qCAAqC,EAG1C,KAAK,iCAAiC,EACtC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,2BAA2B,EAEhC,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,6BAA6B,EAQlC,KAAK,mCAAmC,EACxC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAsBnC,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACvD,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAIjD,MAAM,WAAW,iCAAiC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,0CAA0C;IACzD,aAAa,EAAE,uBAAuB,CAAC;IACvC,mBAAmB,EAAE,+BAA+B,CAAC;IACrD,oBAAoB,EAAE,IAAI,CACxB,qCAAqC,EACrC,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CACjD,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,+BAA+B,CAAC,SAAS,GAAG,OAAO;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,oCAAoC,CAAC,SAAS,GAAG,OAAO;IACvE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,MAAM,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,8CAA8C,CAAC,SAAS,GAAG,OAAO;IACjF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC;AAED,MAAM,WAAW,wCAAwC,CAAC,SAAS,GAAG,OAAO,CAC3E,SAAQ,8CAA8C;IACtD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sCAAsC,CAAC,SAAS,GAAG,OAAO,CACzE,SAAQ,sCAAsC;IAC9C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,+CAA+C;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,yCAAyC,CAAC,SAAS,GAAG,OAAO;IAC5E,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,kCAAkC,CAAC,SAAS,GAAG,OAAO,CACrE,SAAQ,kCAAkC,CAAC,SAAS,CAAC;IACrD,UAAU,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;IACjG,iBAAiB,CAAC,EAAE,iCAAiC,CAAC;IACtD,gBAAgB,CAAC,EAAE,iCAAiC,CAAC;CACtD;AAED,MAAM,WAAW,8CAA8C,CAAC,SAAS,GAAG,OAAO;IACjF,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,UAAU,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAAG,SAAS,8BAA8B,CAAC,SAAS,CAAC,EAAE,CAAC;IACjG,OAAO,CAAC,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,iCAAiC,CAAC;IACtD,gBAAgB,CAAC,EAAE,iCAAiC,CAAC;CACtD;AAED,MAAM,WAAW,gCAAgC,CAAC,SAAS,GAAG,OAAO;IACnE,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAC7C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,kCAAkC,CAAC;IAC/C,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,gDAAgD,CAAC,SAAS,GAAG,OAAO;IACnF,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,qCAAqC,CAAC,SAAS,GAAG,OAAO,CAAE,SAAQ,0BAA0B;IAC5G,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,yCAAyC,CAAC,SAAS,GAAG,OAAO;IAC5E,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,kCAAkC,CAAC,SAAS,GAAG,OAAO,EAAE,MAAM,GAAG,2BAA2B;IAC3G,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,kBAAkB,CAAC;CACzB;AAED,MAAM,WAAW,+CAA+C,CAAC,SAAS,GAAG,OAAO;IAClF,QAAQ,EAAE,SAAS,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACxD,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAC;IACnD,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,cAAc,EAAE,+CAA+C,CAAC,SAAS,CAAC,CAAC;CAC5E;AAED,MAAM,WAAW,oDAAoD,CAAC,SAAS,GAAG,OAAO;IACvF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,oDAAoD,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;IACzF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,CAAC,OAAO,EAAE,+CAA+C,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IACvF,QAAQ,CAAC,CAAC,OAAO,EAAE,+CAA+C,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,MAAM,CAAC;IACjG,GAAG,CAAC,OAAO,EAAE,+CAA+C,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;CAC1F;AAED,MAAM,WAAW,6BAA6B,CAAC,MAAM;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uCAAuC,CAAC,MAAM;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4CAA4C,CAAC,MAAM;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gDAAgD,CAAC,MAAM;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uCAAuC,CAAC,MAAM;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,qCAAqC,CAAC,MAAM;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qCAAqC,CAAC,MAAM;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,+CAA+C,CAAC,MAAM;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,yCAAyC,CAAC,MAAM;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kCAAkC,CAAC,MAAM;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B;IAChG,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,mCAAmC;IAClD,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qCAAqC;IACpD,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sCAAsC;IACrD,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,uCAAuC,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B,CAAE,SAAQ,kCAAkC;IAClJ,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,2BAA2B;IACxG,aAAa,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/C,gBAAgB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9D,eAAe,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnE,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5F,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC/F,wBAAwB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACxI,kBAAkB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC9F,uBAAuB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACjI,2BAA2B,CAAC,CAAC,OAAO,EAAE,yCAAyC,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3H,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,iCAAiC,EAAE,CAAC;IAC5E,oBAAoB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAC5E,kBAAkB,CAAC,QAAQ,EAAE,SAAS,GAAG,2BAA2B,EAAE,CAAC;IACvE,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAAC;IACvF,wBAAwB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,4BAA4B,GAAG,IAAI,CAAC;IACpF,kBAAkB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,iCAAiC,GAAG,IAAI,CAAC;IACnF,iBAAiB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,gCAAgC,GAAG,IAAI,CAAC;IACjF,sBAAsB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,qCAAqC,GAAG,IAAI,CAAC;IAC3F,iBAAiB,CAAC,CAAC,KAAK,EAAE,sCAAsC,CAAC,SAAS,CAAC,GAAG,uBAAuB,CACnG,OAAO,GAAG,IAAI,GAAG,+CAA+C,CACjE,CAAC;IACF,yBAAyB,CAAC,CAAC,KAAK,EAAE,wCAAwC,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAC7G,OAAO,GAAG,IAAI,GAAG,+CAA+C,CACjE,CAAC;IACF,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,QAAQ,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,iCAAiC,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrI,sBAAsB,CAAC,CAAC,KAAK,EAAE,uCAAuC,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzI,sBAAsB,CAAC,CAAC,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,kCAAkC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzI,aAAa,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACnF,6BAA6B,CAAC,KAAK,EAAE,+BAA+B,CAAC,SAAS,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/H,qCAAqC,CAAC,CAAC,KAAK,EAAE,8CAA8C,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;IAClH,kCAAkC,CAAC,CAAC,KAAK,EAAE,oCAAoC,CAAC,SAAS,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1I,+BAA+B,CAAC,CAAC,KAAK,EAAE,gDAAgD,CAAC,SAAS,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC;IACrI,oBAAoB,CAAC,CAAC,KAAK,EAAE,gCAAgC,CAAC,SAAS,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACxH,yBAAyB,CAAC,CAAC,KAAK,EAAE,qCAAqC,CAAC,SAAS,CAAC,GAAG,6BAA6B,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAClI,6BAA6B,CAAC,CAAC,KAAK,EAAE,yCAAyC,CAAC,SAAS,CAAC,GAAG,yCAAyC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtJ,sBAAsB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,0BAA0B,CAAC;IACvG,2BAA2B,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,GAAG,uCAAuC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1I,gCAAgC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,2BAA2B,GAAG,4CAA4C,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzJ,oCAAoC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,+BAA+B,GAAG,gDAAgD,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACrK,2BAA2B,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,GAAG,uCAAuC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1I,yBAAyB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,qCAAqC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpI,sBAAsB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,0BAA0B,CAAC;IACvG,yBAAyB,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,GAAG,qCAAqC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACpI,gCAAgC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,8BAA8B,GAAG,0BAA0B,CAAC;IAC3H,mCAAmC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,8BAA8B,GAAG,+CAA+C,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAClK,SAAS,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,oCAAoC,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B;IACnG,mBAAmB,CAAC,IAAI,uBAAuB,CAAC;QAC9C,MAAM,EAAE,yBAAyB,CAAC;QAClC,QAAQ,EAAE,SAAS,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,YAAY,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACpD,UAAU,IAAI,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;IAChD,mBAAmB,CAAC,CAAC,KAAK,EAAE;QAC1B,MAAM,EAAE,yBAAyB,CAAC;QAClC,QAAQ,EAAE,SAAS,CAAC;KACrB,GAAG,uBAAuB,CAAC;QAC1B,MAAM,EAAE,yBAAyB,CAAC;QAClC,QAAQ,EAAE,SAAS,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,uBAAuB,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvG,OAAO,CAAC,OAAO,CAAC,EAAE,gCAAgC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,8BAA8B,CAAC,MAAM,GAAG,2BAA2B;IAClF,gBAAgB,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,SAAS,IAAI,iBAAiB,GAAG,IAAI,CAAC;IACtC,WAAW,IAAI,uBAAuB,CAAC,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAAC;IAClG,qBAAqB,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;IAC1H,yBAAyB,CAAC,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzF,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,CAAC;IAClE,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,iCAAiC;IAChD,UAAU,CAAC,EAAE,mCAAmC,CAAC,YAAY,CAAC,CAAC;IAC/D,GAAG,CAAC,EAAE,uBAAuB,GAAG,KAAK,CAAC;IACtC,IAAI,CAAC,EAAE,6BAA6B,CAAC;CACtC;AAED,MAAM,WAAW,gCAAgC;IAC/C,WAAW,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAE3E,MAAM,WAAW,6BAA6B;IAC5C,SAAS,IAAI,OAAO,GAAG,IAAI,CAAC;IAC5B,eAAe,IAAI,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,2BAA2B;IAChG,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,6BAA6B,CAAC,EAAE,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC7E,eAAe,EAAE,iCAAiC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,kBAAkB,EAAE,oCAAoC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5E,YAAY,EAAE,8BAA8B,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnD,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC5D,GAAG,CAAC,EAAE,uBAAuB,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,EAAE,6BAA6B,CAAC;QACrC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,SAAS,CAAC,EAAE,kCAAkC,CAAC,SAAS,CAAC,CAAC;IAC1D,SAAS,CAAC,EAAE;QACV,cAAc,CAAC,EAAE,SAAS,oDAAoD,CAAC,SAAS,CAAC,EAAE,CAAC;KAC7F,CAAC;IACF,UAAU,CAAC,EAAE,CACX,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnD,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,6BAA6B,KACpC,gCAAgC,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB,CAAC,SAAS,GAAG,OAAO;IACrD,MAAM,IAAI,IAAI,CAAC;IACf,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IAClC,eAAe,IAAI,kBAAkB,GAAG,IAAI,CAAC;IAC7C,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAAC;IACvC,YAAY,IAAI,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC7D,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sCAAsC,GAAG,qCAAqC,CAAC;IACjI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB;AA4FD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,2BAA2B,EAC9F,OAAO,EAAE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,GAC5D,kBAAkB,CAAC,SAAS,CAAC,GAAG,0BAA0B,CAsb5D;AAED,wBAAgB,iDAAiD,CAAC,SAAS,EACzE,KAAK,EAAE,8CAA8C,CAAC,SAAS,CAAC,GAC/D,eAAe,CAAC,SAAS,CAAC,CAuB5B;AAsOD,wBAAgB,sDAAsD,CACpE,KAAK,EAAE,0CAA0C,EACjD,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC,GAC/C,OAAO,CA0BT;AAED,wBAAgB,qDAAqD,CACnE,KAAK,EAAE,0CAA0C,EACjD,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC,GAC/C,OAAO,CAMT;AAED,wBAAgB,oDAAoD,CAClE,MAAM,EAAE,0CAA0C,GACjD,OAAO,CAET;AAiqGD,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACtC,iCAAiC,CASnC;AAoHD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,6BAA6B,EAAE,GACrC,6BAA6B,EAAE,CAuBjC"}
|
|
1
|
+
{"version":3,"file":"local-editor-harness.d.ts","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,12 +87,10 @@ export function createLocalEditorHarness(options) {
|
|
|
87
87
|
void runExclusive(state, harness.render, () => harness.discardAndRunGame());
|
|
88
88
|
},
|
|
89
89
|
onUndo: () => {
|
|
90
|
-
|
|
91
|
-
harness.render();
|
|
90
|
+
void harness.undo({ origin: 'user', waitForProjection: 'none' });
|
|
92
91
|
},
|
|
93
92
|
onRedo: () => {
|
|
94
|
-
|
|
95
|
-
harness.render();
|
|
93
|
+
void harness.redo({ origin: 'user', waitForProjection: 'none' });
|
|
96
94
|
},
|
|
97
95
|
onCreateFromAsset: (assetId) => {
|
|
98
96
|
if (createAssetFromBrowserIntent(state, options, assetId))
|
|
@@ -370,6 +368,18 @@ export function createLocalEditorHarness(options) {
|
|
|
370
368
|
harness.render();
|
|
371
369
|
return result;
|
|
372
370
|
},
|
|
371
|
+
async undo(historyOptions) {
|
|
372
|
+
const result = applyHistoryOperation(state, options, 'undo', historyOptions);
|
|
373
|
+
if (result.ok)
|
|
374
|
+
harness.render();
|
|
375
|
+
return waitForHistoryOperationProjection(state, result);
|
|
376
|
+
},
|
|
377
|
+
async redo(historyOptions) {
|
|
378
|
+
const result = applyHistoryOperation(state, options, 'redo', historyOptions);
|
|
379
|
+
if (result.ok)
|
|
380
|
+
harness.render();
|
|
381
|
+
return waitForHistoryOperationProjection(state, result);
|
|
382
|
+
},
|
|
373
383
|
async enterEditor() {
|
|
374
384
|
const loadedSource = options.persistenceAdapter.loadAuthoringSource
|
|
375
385
|
? await options.persistenceAdapter.loadAuthoringSource()
|
|
@@ -1409,6 +1419,7 @@ function renameSceneGraphNode(state, options, intent) {
|
|
|
1409
1419
|
label: patch.label ?? `Rename ${intent.id}`,
|
|
1410
1420
|
patch: patch.patch,
|
|
1411
1421
|
targetId: intent.id,
|
|
1422
|
+
...withProjectionImpact(patch.projectionImpact),
|
|
1412
1423
|
});
|
|
1413
1424
|
if (!result.documentChanged) {
|
|
1414
1425
|
state.status = `Rename unchanged: ${intent.id}`;
|
|
@@ -1434,6 +1445,7 @@ function createSceneGraphGroup(state, options, intent) {
|
|
|
1434
1445
|
label: patch.label ?? 'Create Empty',
|
|
1435
1446
|
patch: patch.patch,
|
|
1436
1447
|
targetId: patch.createdId ?? undefined,
|
|
1448
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createCreatedNodeProjectionImpact([patch.createdId]))),
|
|
1437
1449
|
});
|
|
1438
1450
|
if (!result.documentChanged) {
|
|
1439
1451
|
state.status = 'Create empty unchanged';
|
|
@@ -1469,6 +1481,10 @@ function createSceneGraphPrimitive(state, options, intent) {
|
|
|
1469
1481
|
label: patch.label ?? `Create ${intent.shape}`,
|
|
1470
1482
|
patch: patch.patch,
|
|
1471
1483
|
targetId: patch.createdId ?? undefined,
|
|
1484
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
|
|
1485
|
+
createdNodeIds: [patch.createdId],
|
|
1486
|
+
reprojectIds: patch.reprojectIds,
|
|
1487
|
+
}))),
|
|
1472
1488
|
});
|
|
1473
1489
|
if (!result.documentChanged) {
|
|
1474
1490
|
state.status = `Create ${intent.shape} unchanged`;
|
|
@@ -1509,6 +1525,9 @@ function deleteSceneGraphNodes(state, options, intent) {
|
|
|
1509
1525
|
label: patch.label ?? `Delete ${intent.ids.length} node(s)`,
|
|
1510
1526
|
patch: patch.patch,
|
|
1511
1527
|
targetId: intent.activeId ?? undefined,
|
|
1528
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.deletedIds
|
|
1529
|
+
? createDeletedNodeProjectionImpact(patch.deletedIds)
|
|
1530
|
+
: undefined)),
|
|
1512
1531
|
});
|
|
1513
1532
|
if (!result.documentChanged) {
|
|
1514
1533
|
state.status = 'Delete unchanged';
|
|
@@ -1557,6 +1576,10 @@ function duplicateSceneGraphNodes(state, options, intent) {
|
|
|
1557
1576
|
label: patch.label ?? `Duplicate ${targetIds.length} object(s)`,
|
|
1558
1577
|
patch: patch.patch,
|
|
1559
1578
|
targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,
|
|
1579
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createCreatedReprojectProjectionImpact({
|
|
1580
|
+
createdNodeIds: patch.createdIds,
|
|
1581
|
+
reprojectIds: patch.reprojectIds,
|
|
1582
|
+
}))),
|
|
1560
1583
|
});
|
|
1561
1584
|
if (!result.documentChanged) {
|
|
1562
1585
|
state.status = 'Duplicate unchanged';
|
|
@@ -1613,6 +1636,7 @@ function dropSceneGraphNode(state, options, intent) {
|
|
|
1613
1636
|
label: patch.label ?? `Reparent ${intent.draggedId}`,
|
|
1614
1637
|
patch: patch.patch,
|
|
1615
1638
|
targetId: intent.draggedId,
|
|
1639
|
+
...withProjectionImpact(patch.projectionImpact),
|
|
1616
1640
|
});
|
|
1617
1641
|
if (!result.documentChanged) {
|
|
1618
1642
|
state.status = `Reparent unchanged: ${intent.draggedId}`;
|
|
@@ -1657,6 +1681,7 @@ function moveSceneGraphNodes(state, options, intent) {
|
|
|
1657
1681
|
label: patch.label ?? `Move ${intent.ids.length} node(s)`,
|
|
1658
1682
|
patch: patch.patch,
|
|
1659
1683
|
targetId: intent.ids[0] ?? undefined,
|
|
1684
|
+
...withProjectionImpact(patch.projectionImpact),
|
|
1660
1685
|
});
|
|
1661
1686
|
if (!result.documentChanged) {
|
|
1662
1687
|
state.status = 'Move unchanged';
|
|
@@ -1694,6 +1719,7 @@ function groupSceneGraphSelection(state, options, intent) {
|
|
|
1694
1719
|
label: patch.label ?? 'Create Parent',
|
|
1695
1720
|
patch: patch.patch,
|
|
1696
1721
|
targetId: patch.createdId,
|
|
1722
|
+
...withProjectionImpact(patch.projectionImpact),
|
|
1697
1723
|
});
|
|
1698
1724
|
if (!result.documentChanged) {
|
|
1699
1725
|
state.status = 'Create Parent unchanged';
|
|
@@ -1914,6 +1940,9 @@ function executeTransformAction(state, options, action) {
|
|
|
1914
1940
|
label: patch.label ?? formatTransformActionStatus(action, changedTargets.length),
|
|
1915
1941
|
patch: patch.patch,
|
|
1916
1942
|
targetId: selection.activeId ?? changedTargets[0]?.id,
|
|
1943
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
1944
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
1945
|
+
: createTransformProjectionImpact(changedTargets.map(target => target.id)))),
|
|
1917
1946
|
});
|
|
1918
1947
|
if (!result.documentChanged) {
|
|
1919
1948
|
state.status = `Transform action unchanged: ${action}`;
|
|
@@ -2010,6 +2039,11 @@ function patchBrowserAssetAction(state, options, input) {
|
|
|
2010
2039
|
type: 'document.patch',
|
|
2011
2040
|
label: patch.label ?? `Asset action ${input.actionId}`,
|
|
2012
2041
|
patch: patch.patch,
|
|
2042
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
2043
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
2044
|
+
: patch.changedIds?.length
|
|
2045
|
+
? createReprojectProjectionImpact(patch.changedIds)
|
|
2046
|
+
: undefined)),
|
|
2013
2047
|
});
|
|
2014
2048
|
state.summary = summarizeDocument(options, result.workingDocument, session.getSource());
|
|
2015
2049
|
state.status = patch.label ?? `Asset action ${input.actionId}`;
|
|
@@ -2091,6 +2125,10 @@ function commitArmedPlacement(state, options, event) {
|
|
|
2091
2125
|
label: patch.label ?? `Place ${armed.assetId}`,
|
|
2092
2126
|
patch: patch.patch,
|
|
2093
2127
|
targetId: patch.createdId ?? undefined,
|
|
2128
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
|
|
2129
|
+
createdNodeIds: [patch.createdId],
|
|
2130
|
+
reprojectIds: patch.reprojectIds,
|
|
2131
|
+
}))),
|
|
2094
2132
|
});
|
|
2095
2133
|
if (!result.documentChanged) {
|
|
2096
2134
|
state.status = 'Placement unchanged';
|
|
@@ -2154,8 +2192,14 @@ function addAssetToDocument(state, options, assetId, createOptions = {}) {
|
|
|
2154
2192
|
type: 'document.patch',
|
|
2155
2193
|
label: patch.label ?? 'Create Object From Asset',
|
|
2156
2194
|
patch: patch.patch,
|
|
2195
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
|
|
2196
|
+
createdNodeIds: [patch.createdId],
|
|
2197
|
+
reprojectIds: patch.reprojectIds,
|
|
2198
|
+
}))),
|
|
2157
2199
|
});
|
|
2158
|
-
const createdId =
|
|
2200
|
+
const createdId = patch.createdId
|
|
2201
|
+
?? options.documentAdapter.findCreatedId?.(beforeDocument, result.workingDocument)
|
|
2202
|
+
?? null;
|
|
2159
2203
|
let selectionResult = null;
|
|
2160
2204
|
if (createdId) {
|
|
2161
2205
|
selectionResult = session.dispatch({
|
|
@@ -2217,15 +2261,22 @@ function patchSerializedProperty(state, options, input) {
|
|
|
2217
2261
|
});
|
|
2218
2262
|
if (!patch)
|
|
2219
2263
|
return false;
|
|
2264
|
+
const changedIds = patch.changedIds ?? targetIds;
|
|
2220
2265
|
const result = state.session.dispatch({
|
|
2221
2266
|
type: 'document.patch',
|
|
2222
2267
|
label: patch.label ?? `Patch ${payload.path} on ${targetIds.length} objects`,
|
|
2223
2268
|
patch: patch.patch,
|
|
2224
2269
|
targetId: state.session.getState().selection.activeId ?? undefined,
|
|
2270
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
2271
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
2272
|
+
: shouldReprojectInspectorEdit
|
|
2273
|
+
? createReprojectProjectionImpact(changedIds)
|
|
2274
|
+
: isSerializedTransformPath(payload.path)
|
|
2275
|
+
? createTransformProjectionImpact(targetIds)
|
|
2276
|
+
: undefined)),
|
|
2225
2277
|
});
|
|
2226
2278
|
if (!result.documentChanged)
|
|
2227
2279
|
return false;
|
|
2228
|
-
const changedIds = patch.changedIds ?? targetIds;
|
|
2229
2280
|
const projectionSyncIds = isSerializedTransformPath(payload.path) ? targetIds : changedIds;
|
|
2230
2281
|
const workingDocument = result.workingDocument;
|
|
2231
2282
|
if (patch.reprojectIds?.length)
|
|
@@ -2256,6 +2307,13 @@ function patchSerializedProperty(state, options, input) {
|
|
|
2256
2307
|
type: 'document.patch',
|
|
2257
2308
|
label: patch.label ?? `Patch ${payload.path}`,
|
|
2258
2309
|
patch: patch.patch,
|
|
2310
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
2311
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
2312
|
+
: shouldReprojectInspectorEdit
|
|
2313
|
+
? createReprojectProjectionImpact(patch.changedIds ?? [patch.changedId ?? payload.targetId])
|
|
2314
|
+
: isSerializedTransformPath(payload.path)
|
|
2315
|
+
? createTransformProjectionImpact([patch.changedId ?? payload.targetId])
|
|
2316
|
+
: undefined)),
|
|
2259
2317
|
});
|
|
2260
2318
|
if (patch.reprojectIds?.length)
|
|
2261
2319
|
reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);
|
|
@@ -2480,6 +2538,10 @@ function beginDuplicateDrag(state, options, input) {
|
|
|
2480
2538
|
label: patch.label ?? `Duplicate ${input.targetIds.length} object(s)`,
|
|
2481
2539
|
patch: patch.patch,
|
|
2482
2540
|
targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,
|
|
2541
|
+
...withProjectionImpact(resolveProjectionImpact(patch, createCreatedReprojectProjectionImpact({
|
|
2542
|
+
createdNodeIds: patch.createdIds,
|
|
2543
|
+
reprojectIds: patch.reprojectIds,
|
|
2544
|
+
}))),
|
|
2483
2545
|
});
|
|
2484
2546
|
if (!result.documentChanged) {
|
|
2485
2547
|
state.status = 'Duplicate drag unchanged';
|
|
@@ -2559,6 +2621,9 @@ function commitGizmoTransform(state, options, event) {
|
|
|
2559
2621
|
label: patch.label ?? `${event.tool} ${event.targetIds.length} objects`,
|
|
2560
2622
|
patch: patch.patch,
|
|
2561
2623
|
targetId: event.activeId ?? undefined,
|
|
2624
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
2625
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
2626
|
+
: createTransformProjectionImpact(event.targetIds))),
|
|
2562
2627
|
}, {
|
|
2563
2628
|
mergeWithPrevious: event.targetIds.some(id => state.duplicateDrag?.createdIds.includes(id)) === true,
|
|
2564
2629
|
});
|
|
@@ -2594,6 +2659,9 @@ function commitGizmoTransform(state, options, event) {
|
|
|
2594
2659
|
label: patch.label ?? `${event.tool} ${targetId}`,
|
|
2595
2660
|
patch: patch.patch,
|
|
2596
2661
|
targetId,
|
|
2662
|
+
...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
2663
|
+
? createReprojectProjectionImpact(patch.reprojectIds)
|
|
2664
|
+
: createTransformProjectionImpact([patch.changedId ?? targetId]))),
|
|
2597
2665
|
}, {
|
|
2598
2666
|
mergeWithPrevious: state.duplicateDrag?.createdIds.includes(targetId) === true,
|
|
2599
2667
|
});
|
|
@@ -2699,29 +2767,193 @@ function formatAssetLabel(asset, fallback) {
|
|
|
2699
2767
|
const label = record?.label ?? record?.displayName ?? record?.name;
|
|
2700
2768
|
return typeof label === 'string' && label.trim() ? label : fallback;
|
|
2701
2769
|
}
|
|
2702
|
-
function
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2770
|
+
function withProjectionImpact(impact) {
|
|
2771
|
+
return impact ? { projectionImpact: impact } : {};
|
|
2772
|
+
}
|
|
2773
|
+
function resolveProjectionImpact(source, fallback) {
|
|
2774
|
+
return source.projectionImpact ?? fallback;
|
|
2775
|
+
}
|
|
2776
|
+
function createTransformProjectionImpact(ids) {
|
|
2777
|
+
return createIncrementalProjectionImpact({ syncTransformIds: ids });
|
|
2778
|
+
}
|
|
2779
|
+
function createReprojectProjectionImpact(ids) {
|
|
2780
|
+
return createIncrementalProjectionImpact({ reprojectIds: ids });
|
|
2781
|
+
}
|
|
2782
|
+
function createCreatedNodeProjectionImpact(ids) {
|
|
2783
|
+
return createIncrementalProjectionImpact({ createdNodeIds: ids });
|
|
2784
|
+
}
|
|
2785
|
+
function createDeletedNodeProjectionImpact(ids) {
|
|
2786
|
+
return createIncrementalProjectionImpact({ deletedNodeIds: ids });
|
|
2787
|
+
}
|
|
2788
|
+
function createCreatedReprojectProjectionImpact(input) {
|
|
2789
|
+
return createIncrementalProjectionImpact({
|
|
2790
|
+
createdNodeIds: input.createdNodeIds,
|
|
2791
|
+
reprojectIds: input.reprojectIds,
|
|
2792
|
+
});
|
|
2793
|
+
}
|
|
2794
|
+
function createKnownCreatedReprojectProjectionImpact(input) {
|
|
2795
|
+
const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);
|
|
2796
|
+
if (createdNodeIds.length === 0)
|
|
2797
|
+
return undefined;
|
|
2798
|
+
return createCreatedReprojectProjectionImpact({
|
|
2799
|
+
createdNodeIds,
|
|
2800
|
+
reprojectIds: input.reprojectIds,
|
|
2801
|
+
});
|
|
2802
|
+
}
|
|
2803
|
+
function createIncrementalProjectionImpact(input) {
|
|
2804
|
+
const syncTransformIds = uniqueProjectionIds(input.syncTransformIds);
|
|
2805
|
+
const reprojectIds = uniqueProjectionIds(input.reprojectIds);
|
|
2806
|
+
const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);
|
|
2807
|
+
const deletedNodeIds = uniqueProjectionIds(input.deletedNodeIds);
|
|
2808
|
+
if (syncTransformIds.length === 0
|
|
2809
|
+
&& reprojectIds.length === 0
|
|
2810
|
+
&& createdNodeIds.length === 0
|
|
2811
|
+
&& deletedNodeIds.length === 0) {
|
|
2812
|
+
return undefined;
|
|
2813
|
+
}
|
|
2814
|
+
return {
|
|
2815
|
+
type: 'incremental',
|
|
2816
|
+
...(syncTransformIds.length ? { syncTransformIds } : {}),
|
|
2817
|
+
...(reprojectIds.length ? { reprojectIds } : {}),
|
|
2818
|
+
...(createdNodeIds.length ? { createdNodeIds } : {}),
|
|
2819
|
+
...(deletedNodeIds.length ? { deletedNodeIds } : {}),
|
|
2820
|
+
};
|
|
2821
|
+
}
|
|
2822
|
+
function uniqueProjectionIds(ids) {
|
|
2823
|
+
const result = [];
|
|
2824
|
+
const seen = new Set();
|
|
2825
|
+
for (const id of ids ?? []) {
|
|
2826
|
+
if (!id || seen.has(id))
|
|
2827
|
+
continue;
|
|
2828
|
+
seen.add(id);
|
|
2829
|
+
result.push(id);
|
|
2830
|
+
}
|
|
2831
|
+
return result;
|
|
2711
2832
|
}
|
|
2712
|
-
function
|
|
2833
|
+
function applyHistoryOperation(state, options, operation, input = {}) {
|
|
2834
|
+
const origin = input.origin ?? 'user';
|
|
2835
|
+
const waitForProjection = input.waitForProjection ?? 'none';
|
|
2713
2836
|
cancelActiveOperation(state);
|
|
2714
|
-
const result =
|
|
2837
|
+
const result = operation === 'undo'
|
|
2838
|
+
? state.session?.undo()
|
|
2839
|
+
: state.session?.redo();
|
|
2715
2840
|
if (!result)
|
|
2716
|
-
return
|
|
2717
|
-
|
|
2841
|
+
return createHistoryOperationResult(state, {
|
|
2842
|
+
operation,
|
|
2843
|
+
origin,
|
|
2844
|
+
waitForProjection,
|
|
2845
|
+
result: null,
|
|
2846
|
+
status: operation === 'undo' ? 'Undo unavailable' : 'Redo unavailable',
|
|
2847
|
+
});
|
|
2848
|
+
applyHistoryProjectionImpact(state, options, result, operation);
|
|
2718
2849
|
state.summary = summarizeDocument(options, result.workingDocument, state.session?.getSource());
|
|
2719
|
-
state.status =
|
|
2720
|
-
return
|
|
2850
|
+
state.status = `${operation === 'undo' ? 'Undo' : 'Redo'} ${result.transaction.label}`;
|
|
2851
|
+
return createHistoryOperationResult(state, {
|
|
2852
|
+
operation,
|
|
2853
|
+
origin,
|
|
2854
|
+
waitForProjection,
|
|
2855
|
+
result,
|
|
2856
|
+
status: state.status,
|
|
2857
|
+
});
|
|
2858
|
+
}
|
|
2859
|
+
async function waitForHistoryOperationProjection(state, result) {
|
|
2860
|
+
if (!result.ok || result.waitForProjection !== 'settled')
|
|
2861
|
+
return result;
|
|
2862
|
+
const idleState = await state.projection?.waitForIdle() ?? null;
|
|
2863
|
+
return {
|
|
2864
|
+
...result,
|
|
2865
|
+
projection: createHistoryProjectionResult(result.waitForProjection, idleState, state),
|
|
2866
|
+
};
|
|
2867
|
+
}
|
|
2868
|
+
function createHistoryOperationResult(state, input) {
|
|
2869
|
+
const sessionState = state.session?.getState() ?? null;
|
|
2870
|
+
return {
|
|
2871
|
+
ok: !!input.result,
|
|
2872
|
+
operation: input.operation,
|
|
2873
|
+
origin: input.origin,
|
|
2874
|
+
waitForProjection: input.waitForProjection,
|
|
2875
|
+
documentChanged: input.result?.documentChanged ?? false,
|
|
2876
|
+
transactionLabel: input.result?.transaction.label ?? null,
|
|
2877
|
+
workingDocument: input.result?.workingDocument ?? sessionState?.workingDocument ?? null,
|
|
2878
|
+
dirty: input.result?.dirty ?? sessionState?.dirty ?? false,
|
|
2879
|
+
history: {
|
|
2880
|
+
canUndo: sessionState?.canUndo ?? false,
|
|
2881
|
+
canRedo: sessionState?.canRedo ?? false,
|
|
2882
|
+
},
|
|
2883
|
+
status: input.status,
|
|
2884
|
+
projection: createHistoryProjectionResult(input.waitForProjection, null, state),
|
|
2885
|
+
};
|
|
2886
|
+
}
|
|
2887
|
+
function createHistoryProjectionResult(waitPolicy, idleState, state) {
|
|
2888
|
+
const resolved = idleState ?? state.projection?.getIdleState() ?? null;
|
|
2889
|
+
return {
|
|
2890
|
+
waitPolicy,
|
|
2891
|
+
idle: resolved?.idle ?? true,
|
|
2892
|
+
activeBatchIds: resolved?.activeBatchIds ?? [],
|
|
2893
|
+
lastBatch: resolved?.lastBatch ?? null,
|
|
2894
|
+
};
|
|
2895
|
+
}
|
|
2896
|
+
function applyHistoryProjectionImpact(state, options, result, operation) {
|
|
2897
|
+
const impact = result.transaction.projectionImpact;
|
|
2898
|
+
if (!impact || impact.type === 'rebuild') {
|
|
2899
|
+
rebuildProjection(state, options, result);
|
|
2900
|
+
return;
|
|
2901
|
+
}
|
|
2902
|
+
const applied = applyIncrementalHistoryProjectionImpact(state, options, result, operation, impact);
|
|
2903
|
+
if (!applied)
|
|
2904
|
+
rebuildProjection(state, options, result);
|
|
2721
2905
|
}
|
|
2722
2906
|
function rebuildProjection(state, options, result) {
|
|
2723
2907
|
rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);
|
|
2724
2908
|
}
|
|
2909
|
+
function applyIncrementalHistoryProjectionImpact(state, options, result, operation, impact) {
|
|
2910
|
+
if (!state.projection)
|
|
2911
|
+
return false;
|
|
2912
|
+
const syncTransformIds = uniqueProjectionIds(impact.syncTransformIds);
|
|
2913
|
+
const reprojectIds = uniqueProjectionIds(impact.reprojectIds);
|
|
2914
|
+
const projectNodeIds = operation === 'redo'
|
|
2915
|
+
? uniqueProjectionIds(impact.createdNodeIds)
|
|
2916
|
+
: uniqueProjectionIds(impact.deletedNodeIds);
|
|
2917
|
+
const removeNodeIds = operation === 'redo'
|
|
2918
|
+
? uniqueProjectionIds(impact.deletedNodeIds)
|
|
2919
|
+
: uniqueProjectionIds(impact.createdNodeIds);
|
|
2920
|
+
const touched = syncTransformIds.length > 0
|
|
2921
|
+
|| reprojectIds.length > 0
|
|
2922
|
+
|| projectNodeIds.length > 0
|
|
2923
|
+
|| removeNodeIds.length > 0;
|
|
2924
|
+
if (!touched)
|
|
2925
|
+
return false;
|
|
2926
|
+
for (const nodeId of removeNodeIds) {
|
|
2927
|
+
state.projection.removeNode(nodeId);
|
|
2928
|
+
}
|
|
2929
|
+
for (const nodeId of projectNodeIds) {
|
|
2930
|
+
const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
|
|
2931
|
+
if (!projectedNode)
|
|
2932
|
+
return false;
|
|
2933
|
+
state.projection.projectNode(projectedNode);
|
|
2934
|
+
}
|
|
2935
|
+
for (const nodeId of reprojectIds) {
|
|
2936
|
+
const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
|
|
2937
|
+
if (!projectedNode)
|
|
2938
|
+
return false;
|
|
2939
|
+
state.projection.projectNode(projectedNode);
|
|
2940
|
+
}
|
|
2941
|
+
for (const nodeId of syncTransformIds) {
|
|
2942
|
+
const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
|
|
2943
|
+
if (!projectedNode)
|
|
2944
|
+
return false;
|
|
2945
|
+
state.projection.syncNodeTransform(projectedNode);
|
|
2946
|
+
}
|
|
2947
|
+
syncProjectionAfterHistoryIncrementalImpact(state, options, result.workingDocument, result.selection);
|
|
2948
|
+
return true;
|
|
2949
|
+
}
|
|
2950
|
+
function syncProjectionAfterHistoryIncrementalImpact(state, options, document, selection) {
|
|
2951
|
+
const sanitized = sanitizeSelection(state, options, document, selection);
|
|
2952
|
+
syncSelectionToProjection(state, sanitized ?? selection);
|
|
2953
|
+
syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-history-impact');
|
|
2954
|
+
syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-history-impact', true);
|
|
2955
|
+
invalidateEditorScene(state, 'projection-history-impact', options);
|
|
2956
|
+
}
|
|
2725
2957
|
function rebuildProjectionFromDocument(state, options, document, selection) {
|
|
2726
2958
|
state.projection?.rebuild(options.documentAdapter.getProjectionNodes(document));
|
|
2727
2959
|
const sanitized = sanitizeSelection(state, options, document, selection);
|