@galacean/engine-ui 1.6.8 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/browser.js +3662 -0
  2. package/dist/browser.js.map +1 -0
  3. package/dist/browser.min.js +2 -0
  4. package/dist/browser.min.js.map +1 -0
  5. package/dist/main.js +3658 -0
  6. package/dist/main.js.map +1 -0
  7. package/dist/module.js +3639 -0
  8. package/dist/module.js.map +1 -0
  9. package/package.json +3 -3
  10. package/types/Utils.d.ts +18 -0
  11. package/types/component/UICanvas.d.ts +91 -0
  12. package/types/component/UIGroup.d.ts +37 -0
  13. package/types/component/UIRenderer.d.ts +36 -0
  14. package/types/component/UITransform.d.ts +111 -0
  15. package/types/component/advanced/Button.d.ts +21 -0
  16. package/types/component/advanced/Image.d.ts +37 -0
  17. package/types/component/advanced/Text.d.ts +88 -0
  18. package/types/component/index.d.ts +11 -0
  19. package/types/component/interactive/UIInteractive.d.ts +55 -0
  20. package/types/component/interactive/transition/ColorTransition.d.ts +17 -0
  21. package/types/component/interactive/transition/ScaleTransition.d.ts +11 -0
  22. package/types/component/interactive/transition/SpriteTransition.d.ts +11 -0
  23. package/types/component/interactive/transition/Transition.d.ts +57 -0
  24. package/types/enums/CanvasRenderMode.d.ts +22 -0
  25. package/types/enums/HorizontalAlignmentMode.d.ts +13 -0
  26. package/types/enums/ResolutionAdaptationMode.d.ts +16 -0
  27. package/types/enums/VerticalAlignmentMode.d.ts +13 -0
  28. package/types/index.d.ts +25 -0
  29. package/types/input/UIHitResult.d.ts +1 -0
  30. package/types/input/UIPointerEventEmitter.d.ts +1 -0
  31. package/types/interface/IElement.d.ts +13 -0
  32. package/types/interface/IGraphics.d.ts +8 -0
  33. package/types/interface/IGroupAble.d.ts +14 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@galacean/engine-ui",
3
- "version": "1.6.8",
3
+ "version": "1.6.10",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -26,10 +26,10 @@
26
26
  "types/**/*"
27
27
  ],
28
28
  "devDependencies": {
29
- "@galacean/engine": "npm:@galacean/engine-backup@1.6.8"
29
+ "@galacean/engine": "1.6.10"
30
30
  },
31
31
  "peerDependencies": {
32
- "@galacean/engine": "npm:@galacean/engine-backup@1.6.8"
32
+ "@galacean/engine": "1.6.10"
33
33
  },
34
34
  "scripts": {
35
35
  "b:types": "tsc"
@@ -0,0 +1,18 @@
1
+ import { UICanvas } from "./component/UICanvas";
2
+ import { UIGroup } from "./component/UIGroup";
3
+ import { IElement } from "./interface/IElement";
4
+ import { IGroupAble } from "./interface/IGroupAble";
5
+ export declare class Utils {
6
+ static setRootCanvasDirty(element: IElement): void;
7
+ static setRootCanvas(element: IElement, rootCanvas: UICanvas): void;
8
+ static cleanRootCanvas(element: IElement): void;
9
+ static searchRootCanvasInParents(element: IElement): UICanvas;
10
+ static setGroupDirty(element: IGroupAble): void;
11
+ static setGroup(element: IGroupAble, group: UIGroup): void;
12
+ static cleanGroup(element: IGroupAble): void;
13
+ static searchGroupInParents(element: IGroupAble): UIGroup;
14
+ private static _registerRootCanvas;
15
+ private static _registerGroup;
16
+ private static _registerListener;
17
+ private static _unRegisterListener;
18
+ }
@@ -0,0 +1,91 @@
1
+ import { Camera, Component, Vector2 } from "@galacean/engine";
2
+ import { CanvasRenderMode } from "../enums/CanvasRenderMode";
3
+ import { ResolutionAdaptationMode } from "../enums/ResolutionAdaptationMode";
4
+ import { IElement } from "../interface/IElement";
5
+ /**
6
+ * The UI Canvas component serves as the root node for UI elements,
7
+ * handling rendering and events based on it.
8
+ */
9
+ export declare class UICanvas extends Component implements IElement {
10
+ private static _targetTempPath;
11
+ private static _tempGroupAbleList;
12
+ private static _tempVec3;
13
+ private static _tempMat;
14
+ private _renderMode;
15
+ private _renderCamera;
16
+ private _cameraObserver;
17
+ private _resolutionAdaptationMode;
18
+ private _sortOrder;
19
+ private _distance;
20
+ private _referenceResolution;
21
+ private _referenceResolutionPerUnit;
22
+ private _hierarchyVersion;
23
+ private _center;
24
+ private _centerDirtyFlag;
25
+ /**
26
+ * The conversion ratio between reference resolution and unit for UI elements in this canvas.
27
+ */
28
+ get referenceResolutionPerUnit(): number;
29
+ set referenceResolutionPerUnit(value: number);
30
+ /**
31
+ * The reference resolution of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.
32
+ */
33
+ get referenceResolution(): Vector2;
34
+ set referenceResolution(value: Vector2);
35
+ /**
36
+ * The rendering mode of the UI canvas.
37
+ */
38
+ get renderMode(): CanvasRenderMode;
39
+ set renderMode(mode: CanvasRenderMode);
40
+ /**
41
+ * The camera used to render the UI canvas in `ScreenSpaceCamera` mode.
42
+ * @remarks If set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.
43
+ */
44
+ get renderCamera(): Camera;
45
+ set renderCamera(value: Camera);
46
+ /**
47
+ * The screen resolution adaptation mode of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.
48
+ */
49
+ get resolutionAdaptationMode(): ResolutionAdaptationMode;
50
+ set resolutionAdaptationMode(value: ResolutionAdaptationMode);
51
+ /**
52
+ * The rendering order priority of the UI canvas in `ScreenSpaceOverlay` mode.
53
+ */
54
+ get sortOrder(): number;
55
+ set sortOrder(value: number);
56
+ /**
57
+ * The distance between the UI canvas and the camera in `ScreenSpaceCamera` mode.
58
+ */
59
+ get distance(): number;
60
+ set distance(value: number);
61
+ _onEnableInScene(): void;
62
+ _onDisableInScene(): void;
63
+ private _getRenderers;
64
+ private _adapterPoseInScreenSpace;
65
+ private _adapterSizeInScreenSpace;
66
+ private _walk;
67
+ private _updateCameraObserver;
68
+ private _onCameraModifyListener;
69
+ private _onCameraTransformListener;
70
+ private _addCanvasListener;
71
+ private _removeCanvasListener;
72
+ private _onCanvasSizeListener;
73
+ private _onReferenceResolutionChanged;
74
+ private _setIsRootCanvas;
75
+ private _getCenter;
76
+ private _getRealRenderMode;
77
+ private _setRealRenderMode;
78
+ private _isSameOrChildEntity;
79
+ }
80
+ /**
81
+ * @remarks Extends `EntityModifyFlags`.
82
+ */
83
+ export declare enum EntityUIModifyFlags {
84
+ CanvasEnableInScene = 4,
85
+ GroupEnableInScene = 8
86
+ }
87
+ export declare enum RootCanvasModifyFlags {
88
+ None = 0,
89
+ ReferenceResolutionPerUnit = 1,
90
+ All = 1
91
+ }
@@ -0,0 +1,37 @@
1
+ import { Component, Entity } from "@galacean/engine";
2
+ import { IGroupAble } from "../interface/IGroupAble";
3
+ export declare class UIGroup extends Component implements IGroupAble {
4
+ private _alpha;
5
+ private _interactive;
6
+ private _ignoreParentGroup;
7
+ /**
8
+ * Whether to ignore the parent group.
9
+ * @remarks If this parameter set to `true`,
10
+ * all settings of the parent group will be ignored.
11
+ */
12
+ get ignoreParentGroup(): boolean;
13
+ set ignoreParentGroup(value: boolean);
14
+ /**
15
+ * Whether the group is interactive.
16
+ */
17
+ get interactive(): boolean;
18
+ set interactive(value: boolean);
19
+ /**
20
+ * The alpha value of the group.
21
+ */
22
+ get alpha(): number;
23
+ set alpha(value: number);
24
+ constructor(entity: Entity);
25
+ _onEnableInScene(): void;
26
+ _onDisableInScene(): void;
27
+ private _isContainDirtyFlags;
28
+ private _isContainDirtyFlag;
29
+ private _setDirtyFlagTrue;
30
+ private _setDirtyFlagFalse;
31
+ }
32
+ export declare enum GroupModifyFlags {
33
+ None = 0,
34
+ GlobalAlpha = 1,
35
+ GlobalInteractive = 2,
36
+ All = 3
37
+ }
@@ -0,0 +1,36 @@
1
+ import { Color, Renderer, Vector3, Vector4 } from "@galacean/engine";
2
+ import { IGraphics } from "../interface/IGraphics";
3
+ export declare class UIRenderer extends Renderer implements IGraphics {
4
+ /**
5
+ * Custom boundary for raycast detection.
6
+ * @remarks this is based on `this.entity.transform`.
7
+ */
8
+ raycastPadding: Vector4;
9
+ private _raycastEnabled;
10
+ protected _color: Color;
11
+ /**
12
+ * Rendering color for the ui renderer.
13
+ */
14
+ get color(): Color;
15
+ set color(value: Color);
16
+ /**
17
+ * Whether this renderer be picked up by raycast.
18
+ */
19
+ get raycastEnabled(): boolean;
20
+ set raycastEnabled(value: boolean);
21
+ _canBatch(elementA: any, elementB: any): boolean;
22
+ _batch(elementA: any, elementB?: any): void;
23
+ _updateTransformShaderData(context: any, onlyMVP: boolean, batched: boolean): void;
24
+ _prepareRender(context: any): void;
25
+ _onEnableInScene(): void;
26
+ _onDisableInScene(): void;
27
+ private _onColorChanged;
28
+ protected _hitTest(localPosition: Vector3): boolean;
29
+ protected _onDestroy(): void;
30
+ }
31
+ /**
32
+ * @remarks Extends `RendererUpdateFlags`.
33
+ */
34
+ export declare enum UIRendererUpdateFlags {
35
+ Color = 2
36
+ }
@@ -0,0 +1,111 @@
1
+ import { Entity, Transform, Vector2 } from "@galacean/engine";
2
+ import { HorizontalAlignmentMode } from "../enums/HorizontalAlignmentMode";
3
+ import { VerticalAlignmentMode } from "../enums/VerticalAlignmentMode";
4
+ /**
5
+ * The Transform component exclusive to the UI element.
6
+ */
7
+ export declare class UITransform extends Transform {
8
+ private _size;
9
+ private _pivot;
10
+ private _rect;
11
+ private _alignLeft;
12
+ private _alignRight;
13
+ private _alignCenter;
14
+ private _alignTop;
15
+ private _alignBottom;
16
+ private _alignMiddle;
17
+ private _horizontalAlignment;
18
+ private _verticalAlignment;
19
+ /**
20
+ * Width and height of UI element.
21
+ */
22
+ get size(): Vector2;
23
+ set size(value: Vector2);
24
+ /**
25
+ * Pivot of UI element.
26
+ */
27
+ get pivot(): Vector2;
28
+ set pivot(value: Vector2);
29
+ /**
30
+ * Horizontal alignment mode.
31
+ *
32
+ * @remarks
33
+ * Controls how the element aligns horizontally within its parent:
34
+ * - `Left` - Align to parent's left edge
35
+ * - `Center` - Align to parent's horizontal center
36
+ * - `Right` - Align to parent's right edge
37
+ * - `LeftAndRight` - Align to both left and right edges (stretch to fill width)
38
+ */
39
+ get horizontalAlignment(): HorizontalAlignmentMode;
40
+ set horizontalAlignment(value: HorizontalAlignmentMode);
41
+ /**
42
+ * Left margin when horizontalAlignment is Left or LeftAndRight.
43
+ *
44
+ * @remarks
45
+ * Only effective when horizontalAlignment includes Left mode.
46
+ * Distance from the parent's left edge to the element's left edge.
47
+ */
48
+ get alignLeft(): number;
49
+ set alignLeft(value: number);
50
+ /**
51
+ * Right margin when horizontalAlignment is Right or LeftAndRight.
52
+ *
53
+ * @remarks
54
+ * Only effective when horizontalAlignment includes Right mode.
55
+ * Distance from the parent's right edge to the element's right edge.
56
+ */
57
+ get alignRight(): number;
58
+ set alignRight(value: number);
59
+ /**
60
+ * Horizontal center offset when horizontalAlignment is Center.
61
+ *
62
+ * @remarks
63
+ * Only effective when horizontalAlignment is Center mode.
64
+ * Positive values move the element to the right, negative values to the left.
65
+ */
66
+ get alignCenter(): number;
67
+ set alignCenter(value: number);
68
+ /**
69
+ * Vertical alignment mode.
70
+ *
71
+ * @remarks
72
+ * Controls how the element aligns vertically within its parent:
73
+ * - `Top` - Align to parent's top edge
74
+ * - `Middle` - Align to parent's vertical center
75
+ * - `Bottom` - Align to parent's bottom edge
76
+ * - `TopAndBottom` - Align to both top and bottom edges (stretch to fill height)
77
+ */
78
+ get verticalAlignment(): VerticalAlignmentMode;
79
+ set verticalAlignment(value: VerticalAlignmentMode);
80
+ /**
81
+ * Top margin when verticalAlignment is Top or TopAndBottom.
82
+ *
83
+ * @remarks
84
+ * Only effective when verticalAlignment includes Top mode.
85
+ * Used to offset the element from the parent's top edge.
86
+ */
87
+ get alignTop(): number;
88
+ set alignTop(value: number);
89
+ /**
90
+ * Bottom inset used in vertical alignment formulas.
91
+ */
92
+ get alignBottom(): number;
93
+ set alignBottom(value: number);
94
+ /**
95
+ * Vertical middle offset relative to parent's middle.
96
+ */
97
+ get alignMiddle(): number;
98
+ set alignMiddle(value: number);
99
+ _cloneTo(target: UITransform, srcRoot: Entity, targetRoot: Entity): void;
100
+ protected _onLocalMatrixChanging(): void;
101
+ protected _onWorldMatrixChanging(): void;
102
+ protected _onPositionChanged(): void;
103
+ protected _onWorldPositionChanged(): void;
104
+ private _updatePositionByAlignment;
105
+ private _updateSizeByAlignment;
106
+ private _updateRectBySizeAndPivot;
107
+ private _onSizeChanged;
108
+ private _onPivotChanged;
109
+ private _updateWorldFlagWithSelfRectChange;
110
+ private _updateWorldFlagWithParentRectChange;
111
+ }
@@ -0,0 +1,21 @@
1
+ import { PointerEventData } from "@galacean/engine";
2
+ import { UIInteractive } from "../interactive/UIInteractive";
3
+ export declare class Button extends UIInteractive {
4
+ private _listeners;
5
+ /**
6
+ * Add a listening function for click.
7
+ * @param listener - The listening function
8
+ */
9
+ addClicked(listener: (event: PointerEventData) => void): void;
10
+ /**
11
+ * Remove a listening function of click.
12
+ * @param listener - The listening function
13
+ */
14
+ removeClicked(listener: (event: PointerEventData) => void): void;
15
+ onPointerClick(event: PointerEventData): void;
16
+ onDestroy(): void;
17
+ }
18
+ export interface IUIListener {
19
+ fn: (event: PointerEventData) => void;
20
+ destroyed?: boolean;
21
+ }
@@ -0,0 +1,37 @@
1
+ import { BoundingBox, ISpriteRenderer, Sprite, SpriteDrawMode, SpriteTileMode } from "@galacean/engine";
2
+ import { UIRenderer } from "../UIRenderer";
3
+ /**
4
+ * UI element that renders an image.
5
+ */
6
+ export declare class Image extends UIRenderer implements ISpriteRenderer {
7
+ private _sprite;
8
+ private _drawMode;
9
+ private _assembler;
10
+ private _tileMode;
11
+ private _tiledAdaptiveThreshold;
12
+ /**
13
+ * The draw mode of the image.
14
+ */
15
+ get drawMode(): SpriteDrawMode;
16
+ set drawMode(value: SpriteDrawMode);
17
+ /**
18
+ * The tiling mode of the image. (Only works in tiled mode.)
19
+ */
20
+ get tileMode(): SpriteTileMode;
21
+ set tileMode(value: SpriteTileMode);
22
+ /**
23
+ * Stretch Threshold in Tile Adaptive Mode, specified in normalized. (Only works in tiled adaptive mode.)
24
+ */
25
+ get tiledAdaptiveThreshold(): number;
26
+ set tiledAdaptiveThreshold(value: number);
27
+ /**
28
+ * The Sprite to render.
29
+ */
30
+ get sprite(): Sprite;
31
+ set sprite(value: Sprite | null);
32
+ protected _updateBounds(worldBounds: BoundingBox): void;
33
+ protected _render(context: any): void;
34
+ protected _onTransformChanged(type: number): void;
35
+ protected _onDestroy(): void;
36
+ private _onSpriteChange;
37
+ }
@@ -0,0 +1,88 @@
1
+ import { BoundingBox, Entity, Font, FontStyle, ITextRenderer, OverflowMode, TextHorizontalAlignment, TextVerticalAlignment } from "@galacean/engine";
2
+ import { UIRenderer } from "../UIRenderer";
3
+ /**
4
+ * UI component used to render text.
5
+ */
6
+ export declare class Text extends UIRenderer implements ITextRenderer {
7
+ private static _textTextureProperty;
8
+ private static _worldPositions;
9
+ private static _charRenderInfos;
10
+ private _textChunks;
11
+ private _subFont;
12
+ private _text;
13
+ private _localBounds;
14
+ private _font;
15
+ private _fontSize;
16
+ private _fontStyle;
17
+ private _lineSpacing;
18
+ private _horizontalAlignment;
19
+ private _verticalAlignment;
20
+ private _enableWrapping;
21
+ private _overflowMode;
22
+ /**
23
+ * Rendering string for the Text.
24
+ */
25
+ get text(): string;
26
+ set text(value: string);
27
+ /**
28
+ * The font of the Text.
29
+ */
30
+ get font(): Font;
31
+ set font(value: Font);
32
+ /**
33
+ * The font size of the Text.
34
+ */
35
+ get fontSize(): number;
36
+ set fontSize(value: number);
37
+ /**
38
+ * The style of the font.
39
+ */
40
+ get fontStyle(): FontStyle;
41
+ set fontStyle(value: FontStyle);
42
+ /**
43
+ * The space between two lines (in pixels).
44
+ */
45
+ get lineSpacing(): number;
46
+ set lineSpacing(value: number);
47
+ /**
48
+ * The horizontal alignment.
49
+ */
50
+ get horizontalAlignment(): TextHorizontalAlignment;
51
+ set horizontalAlignment(value: TextHorizontalAlignment);
52
+ /**
53
+ * The vertical alignment.
54
+ */
55
+ get verticalAlignment(): TextVerticalAlignment;
56
+ set verticalAlignment(value: TextVerticalAlignment);
57
+ /**
58
+ * Whether wrap text to next line when exceeds the width of the container.
59
+ */
60
+ get enableWrapping(): boolean;
61
+ set enableWrapping(value: boolean);
62
+ /**
63
+ * The overflow mode.
64
+ */
65
+ get overflowMode(): OverflowMode;
66
+ set overflowMode(value: OverflowMode);
67
+ /**
68
+ * The mask layer the sprite renderer belongs to.
69
+ */
70
+ get maskLayer(): number;
71
+ set maskLayer(value: number);
72
+ /**
73
+ * The bounding volume of the TextRenderer.
74
+ */
75
+ get bounds(): BoundingBox;
76
+ constructor(entity: Entity);
77
+ _cloneTo(target: Text, srcRoot: Entity, targetRoot: Entity): void;
78
+ protected _updateBounds(worldBounds: BoundingBox): void;
79
+ protected _render(context: any): void;
80
+ private _resetSubFont;
81
+ private _updatePosition;
82
+ private _updateColor;
83
+ private _updateLocalData;
84
+ protected _onTransformChanged(type: number): void;
85
+ private _isTextNoVisible;
86
+ private _buildChunk;
87
+ private _freeTextChunks;
88
+ }
@@ -0,0 +1,11 @@
1
+ export { UICanvas } from "./UICanvas";
2
+ export { UIGroup } from "./UIGroup";
3
+ export { UIRenderer } from "./UIRenderer";
4
+ export { UITransform } from "./UITransform";
5
+ export { Button } from "./advanced/Button";
6
+ export { Image } from "./advanced/Image";
7
+ export { Text } from "./advanced/Text";
8
+ export { ColorTransition } from "./interactive/transition/ColorTransition";
9
+ export { ScaleTransition } from "./interactive/transition/ScaleTransition";
10
+ export { SpriteTransition } from "./interactive/transition/SpriteTransition";
11
+ export { Transition } from "./interactive/transition/Transition";
@@ -0,0 +1,55 @@
1
+ import { Entity, Script } from "@galacean/engine";
2
+ import { IGroupAble } from "../../interface/IGroupAble";
3
+ import { Transition } from "./transition/Transition";
4
+ /**
5
+ * Interactive component.
6
+ */
7
+ export declare class UIInteractive extends Script implements IGroupAble {
8
+ private static _targetTempPath;
9
+ protected _transitions: Transition[];
10
+ protected _interactive: boolean;
11
+ protected _state: InteractiveState;
12
+ /** @todo Multi-touch points are not considered yet. */
13
+ private _isPointerInside;
14
+ private _isPointerDragging;
15
+ /**
16
+ * The transitions of this interactive.
17
+ */
18
+ get transitions(): Readonly<Transition[]>;
19
+ /**
20
+ * Whether the interactive is enabled.
21
+ */
22
+ get interactive(): boolean;
23
+ set interactive(value: boolean);
24
+ /**
25
+ * Add transition on this interactive.
26
+ * @param transition - The transition
27
+ */
28
+ addTransition(transition: Transition): void;
29
+ /**
30
+ * Remove a transition.
31
+ * @param shape - The transition.
32
+ */
33
+ removeTransition(transition: Transition): void;
34
+ /**
35
+ * Remove all transitions.
36
+ */
37
+ clearTransitions(): void;
38
+ onUpdate(deltaTime: number): void;
39
+ onPointerBeginDrag(): void;
40
+ onPointerEndDrag(): void;
41
+ onPointerEnter(): void;
42
+ onPointerExit(): void;
43
+ onDestroy(): void;
44
+ _cloneTo(target: UIInteractive, srcRoot: Entity, targetRoot: Entity): void;
45
+ _onEnableInScene(): void;
46
+ _onDisableInScene(): void;
47
+ private _updateState;
48
+ private _getInteractiveState;
49
+ }
50
+ export declare enum InteractiveState {
51
+ Normal = 0,
52
+ Pressed = 1,
53
+ Hover = 2,
54
+ Disable = 3
55
+ }
@@ -0,0 +1,17 @@
1
+ import { Color } from "@galacean/engine";
2
+ import { UIRenderer } from "../../UIRenderer";
3
+ import { Transition } from "./Transition";
4
+ /**
5
+ * Color transition.
6
+ */
7
+ export declare class ColorTransition extends Transition<Color, UIRenderer> {
8
+ private _color;
9
+ constructor();
10
+ private _onNormalValueChanged;
11
+ private _onHoverValueChanged;
12
+ private _onPressedValueChanged;
13
+ private _onDisabledValueChanged;
14
+ protected _getTargetValueCopy(): Color;
15
+ protected _updateCurrentValue(srcValue: Color, destValue: Color, weight: number): void;
16
+ protected _applyValue(value: Color): void;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { UIRenderer } from "../../UIRenderer";
2
+ import { Transition } from "./Transition";
3
+ /**
4
+ * Scale transition.
5
+ */
6
+ export declare class ScaleTransition extends Transition<number, UIRenderer> {
7
+ constructor();
8
+ protected _getTargetValueCopy(): number;
9
+ protected _updateCurrentValue(srcValue: number, destValue: number, weight: number): void;
10
+ protected _applyValue(value: number): void;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { Sprite } from "@galacean/engine";
2
+ import { Image } from "../../advanced/Image";
3
+ import { Transition } from "./Transition";
4
+ /**
5
+ * Sprite transition.
6
+ */
7
+ export declare class SpriteTransition extends Transition<Sprite, Image> {
8
+ protected _getTargetValueCopy(): Sprite;
9
+ protected _updateCurrentValue(srcValue: Sprite, destValue: Sprite, weight: number): void;
10
+ protected _applyValue(value: Sprite): void;
11
+ }
@@ -0,0 +1,57 @@
1
+ import { Color, Sprite } from "@galacean/engine";
2
+ import { UIRenderer } from "../../UIRenderer";
3
+ import { InteractiveState } from "../UIInteractive";
4
+ /**
5
+ * The transition behavior of UIInteractive.
6
+ */
7
+ export declare abstract class Transition<T extends TransitionValueType = TransitionValueType, K extends UIRenderer = UIRenderer> {
8
+ protected _target: K;
9
+ protected _normal: T;
10
+ protected _pressed: T;
11
+ protected _hover: T;
12
+ protected _disabled: T;
13
+ protected _duration: number;
14
+ protected _countDown: number;
15
+ protected _initialValue: T;
16
+ protected _finalValue: T;
17
+ protected _currentValue: T;
18
+ protected _finalState: InteractiveState;
19
+ /**
20
+ * The normal state of the transition.
21
+ */
22
+ get normal(): T;
23
+ set normal(value: T);
24
+ /**
25
+ * The pressed state of the transition.
26
+ */
27
+ get pressed(): T;
28
+ set pressed(value: T);
29
+ /**
30
+ * The hover state of the transition.
31
+ */
32
+ get hover(): T;
33
+ set hover(value: T);
34
+ /**
35
+ * The disabled state of the transition.
36
+ */
37
+ get disabled(): T;
38
+ set disabled(value: T);
39
+ /**
40
+ * The target of the transition.
41
+ */
42
+ get target(): K;
43
+ set target(value: K);
44
+ /**
45
+ * The duration of the transition.
46
+ */
47
+ get duration(): number;
48
+ set duration(value: number);
49
+ destroy(): void;
50
+ protected abstract _getTargetValueCopy(): T;
51
+ protected abstract _updateCurrentValue(srcValue: T, destValue: T, weight: number): void;
52
+ protected abstract _applyValue(value: T): void;
53
+ protected _onStateValueDirty(state: InteractiveState, preValue: T, curValue: T): void;
54
+ protected _updateValue(): void;
55
+ private _getValueByState;
56
+ }
57
+ export type TransitionValueType = number | Sprite | Color;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Render mode for ui canvas.
3
+ */
4
+ export declare enum CanvasRenderMode {
5
+ /**
6
+ * The UI canvas will be rendered directly onto the screen and adapted to screen space,
7
+ * overlaying other rendering elements in the same scene.
8
+ * @remarks if the `engine.canvas` size change, the UI canvas will automatically adapt.
9
+ */
10
+ ScreenSpaceOverlay = 0,
11
+ /**
12
+ * The UI canvas is placed at a specified distance in front of the camera and adapted to screen space,
13
+ * with all objects rendered by the camera.
14
+ * @remarks if the camera's properties or the `engine.canvas` size change, the UI canvas will automatically adapt.
15
+ * @remarks if set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.
16
+ */
17
+ ScreenSpaceCamera = 1,
18
+ /**
19
+ * The UI canvas is placed in the 3D world space and rendered by every camera in the same scene.
20
+ */
21
+ WorldSpace = 2
22
+ }
@@ -0,0 +1,13 @@
1
+ /** Horizontal alignment mode. */
2
+ export declare enum HorizontalAlignmentMode {
3
+ /** No horizontal alignment. */
4
+ None = 0,
5
+ /** Left-aligned, `alignLeft` drives `position.x`. */
6
+ Left = 1,
7
+ /** Right-aligned, `alignRight` drives `position.x`. */
8
+ Right = 2,
9
+ /** Horizontal stretch, `alignLeft` and `alignRight` drive `position.x` and `size.x`. */
10
+ LeftAndRight = 3,
11
+ /** Center-aligned, `alignCenter` drives `position.x`. */
12
+ Center = 4
13
+ }