canvasengine 2.0.0-beta.5 → 2.0.0-beta.50
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/components/Button.d.ts +185 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Canvas.d.ts +17 -0
- package/dist/components/Canvas.d.ts.map +1 -0
- package/dist/components/Container.d.ts +86 -0
- package/dist/components/Container.d.ts.map +1 -0
- package/dist/components/DOMContainer.d.ts +98 -0
- package/dist/components/DOMContainer.d.ts.map +1 -0
- package/dist/components/DOMElement.d.ts +54 -0
- package/dist/components/DOMElement.d.ts.map +1 -0
- package/dist/components/DOMSprite.d.ts +127 -0
- package/dist/components/DOMSprite.d.ts.map +1 -0
- package/dist/components/DisplayObject.d.ts +94 -0
- package/dist/components/DisplayObject.d.ts.map +1 -0
- package/dist/components/FocusContainer.d.ts +129 -0
- package/dist/components/FocusContainer.d.ts.map +1 -0
- package/dist/components/Graphic.d.ts +64 -0
- package/dist/components/Graphic.d.ts.map +1 -0
- package/dist/components/Joystick.d.ts +36 -0
- package/dist/components/Joystick.d.ts.map +1 -0
- package/dist/components/Mesh.d.ts +208 -0
- package/dist/components/Mesh.d.ts.map +1 -0
- package/dist/components/NineSliceSprite.d.ts +16 -0
- package/dist/components/NineSliceSprite.d.ts.map +1 -0
- package/dist/components/ParticleEmitter.d.ts +4 -0
- package/dist/components/ParticleEmitter.d.ts.map +1 -0
- package/dist/components/Scene.d.ts +2 -0
- package/dist/components/Scene.d.ts.map +1 -0
- package/dist/components/Sprite.d.ts +242 -0
- package/dist/components/Sprite.d.ts.map +1 -0
- package/dist/components/Text.d.ts +25 -0
- package/dist/components/Text.d.ts.map +1 -0
- package/dist/components/TilingSprite.d.ts +17 -0
- package/dist/components/TilingSprite.d.ts.map +1 -0
- package/dist/components/Video.d.ts +14 -0
- package/dist/components/Video.d.ts.map +1 -0
- package/dist/components/Viewport.d.ts +121 -0
- package/dist/components/Viewport.d.ts.map +1 -0
- package/dist/components/index.d.ts +20 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/types/DisplayObject.d.ts +106 -0
- package/dist/components/types/DisplayObject.d.ts.map +1 -0
- package/dist/components/types/MouseEvent.d.ts +4 -0
- package/dist/components/types/MouseEvent.d.ts.map +1 -0
- package/dist/components/types/Spritesheet.d.ts +248 -0
- package/dist/components/types/Spritesheet.d.ts.map +1 -0
- package/dist/components/types/index.d.ts +4 -0
- package/dist/components/types/index.d.ts.map +1 -0
- package/dist/directives/Controls.d.ts +112 -0
- package/dist/directives/Controls.d.ts.map +1 -0
- package/dist/directives/ControlsBase.d.ts +199 -0
- package/dist/directives/ControlsBase.d.ts.map +1 -0
- package/dist/directives/Drag.d.ts +69 -0
- package/dist/directives/Drag.d.ts.map +1 -0
- package/dist/directives/Flash.d.ts +116 -0
- package/dist/directives/Flash.d.ts.map +1 -0
- package/dist/directives/FocusNavigation.d.ts +52 -0
- package/dist/directives/FocusNavigation.d.ts.map +1 -0
- package/dist/directives/GamepadControls.d.ts +224 -0
- package/dist/directives/GamepadControls.d.ts.map +1 -0
- package/dist/directives/JoystickControls.d.ts +171 -0
- package/dist/directives/JoystickControls.d.ts.map +1 -0
- package/dist/directives/KeyboardControls.d.ts +219 -0
- package/dist/directives/KeyboardControls.d.ts.map +1 -0
- package/dist/directives/Scheduler.d.ts +35 -0
- package/dist/directives/Scheduler.d.ts.map +1 -0
- package/dist/directives/Shake.d.ts +98 -0
- package/dist/directives/Shake.d.ts.map +1 -0
- package/dist/directives/Sound.d.ts +25 -0
- package/dist/directives/Sound.d.ts.map +1 -0
- package/dist/directives/Transition.d.ts +10 -0
- package/dist/directives/Transition.d.ts.map +1 -0
- package/dist/directives/ViewportCull.d.ts +11 -0
- package/dist/directives/ViewportCull.d.ts.map +1 -0
- package/dist/directives/ViewportFollow.d.ts +18 -0
- package/dist/directives/ViewportFollow.d.ts.map +1 -0
- package/dist/directives/index.d.ts +13 -0
- package/dist/directives/index.d.ts.map +1 -0
- package/dist/engine/FocusManager.d.ts +174 -0
- package/dist/engine/FocusManager.d.ts.map +1 -0
- package/dist/engine/animation.d.ts +72 -0
- package/dist/engine/animation.d.ts.map +1 -0
- package/dist/engine/bootstrap.d.ts +48 -0
- package/dist/engine/bootstrap.d.ts.map +1 -0
- package/dist/engine/directive.d.ts +13 -0
- package/dist/engine/directive.d.ts.map +1 -0
- package/dist/engine/reactive.d.ts +134 -0
- package/dist/engine/reactive.d.ts.map +1 -0
- package/dist/engine/signal.d.ts +71 -0
- package/dist/engine/signal.d.ts.map +1 -0
- package/dist/engine/trigger.d.ts +54 -0
- package/dist/engine/trigger.d.ts.map +1 -0
- package/dist/engine/utils.d.ts +89 -0
- package/dist/engine/utils.d.ts.map +1 -0
- package/dist/hooks/addContext.d.ts +2 -0
- package/dist/hooks/addContext.d.ts.map +1 -0
- package/dist/hooks/useFocus.d.ts +60 -0
- package/dist/hooks/useFocus.d.ts.map +1 -0
- package/dist/hooks/useProps.d.ts +42 -0
- package/dist/hooks/useProps.d.ts.map +1 -0
- package/dist/hooks/useRef.d.ts +4 -0
- package/dist/hooks/useRef.d.ts.map +1 -0
- package/dist/index-DaGekQUW.js +2218 -0
- package/dist/index-DaGekQUW.js.map +1 -0
- package/dist/index.d.ts +19 -1099
- package/dist/index.d.ts.map +1 -0
- package/dist/index.global.js +5 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +11749 -2901
- package/dist/index.js.map +1 -1
- package/dist/utils/Ease.d.ts +17 -0
- package/dist/utils/Ease.d.ts.map +1 -0
- package/dist/utils/GlobalAssetLoader.d.ts +141 -0
- package/dist/utils/GlobalAssetLoader.d.ts.map +1 -0
- package/dist/utils/RadialGradient.d.ts +57 -0
- package/dist/utils/RadialGradient.d.ts.map +1 -0
- package/dist/utils/functions.d.ts +2 -0
- package/dist/utils/functions.d.ts.map +1 -0
- package/dist/utils/tabindex.d.ts +16 -0
- package/dist/utils/tabindex.d.ts.map +1 -0
- package/package.json +13 -7
- package/src/components/Button.ts +399 -0
- package/src/components/Canvas.ts +62 -46
- package/src/components/Container.ts +21 -2
- package/src/components/DOMContainer.ts +379 -0
- package/src/components/DOMElement.ts +556 -0
- package/src/components/DOMSprite.ts +1040 -0
- package/src/components/DisplayObject.ts +392 -201
- package/src/components/FocusContainer.ts +368 -0
- package/src/components/Graphic.ts +227 -66
- package/src/components/Joystick.ts +363 -0
- package/src/components/Mesh.ts +222 -0
- package/src/components/NineSliceSprite.ts +4 -1
- package/src/components/ParticleEmitter.ts +12 -8
- package/src/components/Sprite.ts +297 -31
- package/src/components/Text.ts +125 -18
- package/src/components/Video.ts +2 -2
- package/src/components/Viewport.ts +118 -63
- package/src/components/index.ts +9 -2
- package/src/components/types/DisplayObject.ts +41 -4
- package/src/components/types/Spritesheet.ts +0 -118
- package/src/directives/Controls.ts +254 -0
- package/src/directives/ControlsBase.ts +267 -0
- package/src/directives/Drag.ts +357 -52
- package/src/directives/Flash.ts +419 -0
- package/src/directives/FocusNavigation.ts +113 -0
- package/src/directives/GamepadControls.ts +537 -0
- package/src/directives/JoystickControls.ts +396 -0
- package/src/directives/KeyboardControls.ts +85 -430
- package/src/directives/Scheduler.ts +12 -4
- package/src/directives/Shake.ts +298 -0
- package/src/directives/Sound.ts +94 -31
- package/src/directives/ViewportFollow.ts +40 -9
- package/src/directives/index.ts +12 -6
- package/src/engine/FocusManager.ts +510 -0
- package/src/engine/animation.ts +175 -21
- package/src/engine/bootstrap.ts +93 -3
- package/src/engine/directive.ts +4 -4
- package/src/engine/reactive.ts +901 -161
- package/src/engine/signal.ts +113 -25
- package/src/engine/trigger.ts +34 -7
- package/src/engine/utils.ts +19 -3
- package/src/hooks/useFocus.ts +91 -0
- package/src/hooks/useProps.ts +1 -1
- package/src/index.ts +8 -2
- package/src/types/pixi-cull.d.ts +7 -0
- package/src/utils/GlobalAssetLoader.ts +257 -0
- package/src/utils/functions.ts +7 -0
- package/src/utils/tabindex.ts +70 -0
- package/testing/index.ts +35 -4
- package/tsconfig.json +18 -0
- package/vite.config.ts +39 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { Signal } from '@signe/reactive';
|
|
2
|
+
import { FederatedPointerEvent } from 'pixi.js';
|
|
3
|
+
import { ControlsDirective } from '../directives/Controls';
|
|
4
|
+
import { JoystickControls } from '../directives/JoystickControls';
|
|
5
|
+
import { Element } from '../engine/reactive';
|
|
6
|
+
/**
|
|
7
|
+
* Button states for visual feedback
|
|
8
|
+
*/
|
|
9
|
+
export declare enum ButtonState {
|
|
10
|
+
Normal = "normal",
|
|
11
|
+
Hover = "hover",
|
|
12
|
+
Pressed = "pressed",
|
|
13
|
+
Disabled = "disabled"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Button style configuration for different visual approaches
|
|
17
|
+
*/
|
|
18
|
+
export interface ButtonStyle {
|
|
19
|
+
/** Background color for each state */
|
|
20
|
+
backgroundColor?: {
|
|
21
|
+
[ButtonState.Normal]?: string;
|
|
22
|
+
[ButtonState.Hover]?: string;
|
|
23
|
+
[ButtonState.Pressed]?: string;
|
|
24
|
+
[ButtonState.Disabled]?: string;
|
|
25
|
+
};
|
|
26
|
+
/** Border configuration */
|
|
27
|
+
border?: {
|
|
28
|
+
color?: string;
|
|
29
|
+
width?: number;
|
|
30
|
+
radius?: number;
|
|
31
|
+
};
|
|
32
|
+
/** Text styling */
|
|
33
|
+
text?: {
|
|
34
|
+
color?: string;
|
|
35
|
+
fontSize?: number;
|
|
36
|
+
fontFamily?: string;
|
|
37
|
+
};
|
|
38
|
+
/** Sprite textures for each state (alternative to backgroundColor) */
|
|
39
|
+
textures?: {
|
|
40
|
+
[ButtonState.Normal]?: string;
|
|
41
|
+
[ButtonState.Hover]?: string;
|
|
42
|
+
[ButtonState.Pressed]?: string;
|
|
43
|
+
[ButtonState.Disabled]?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Properties for the Button component
|
|
48
|
+
*/
|
|
49
|
+
export interface ButtonProps {
|
|
50
|
+
/** Button text content */
|
|
51
|
+
text?: string;
|
|
52
|
+
/** Button disabled state */
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
/** Click event handler */
|
|
55
|
+
click?: (event: FederatedPointerEvent) => void;
|
|
56
|
+
/** Hover enter event handler */
|
|
57
|
+
hoverEnter?: (event: FederatedPointerEvent) => void;
|
|
58
|
+
/** Hover leave event handler */
|
|
59
|
+
hoverLeave?: (event: FederatedPointerEvent) => void;
|
|
60
|
+
/** Press down event handler */
|
|
61
|
+
pressDown?: (event: FederatedPointerEvent) => void;
|
|
62
|
+
/** Press up event handler */
|
|
63
|
+
pressUp?: (event: FederatedPointerEvent) => void;
|
|
64
|
+
/** Visual style configuration */
|
|
65
|
+
style?: ButtonStyle;
|
|
66
|
+
/** Button width */
|
|
67
|
+
width?: number;
|
|
68
|
+
/** Button height */
|
|
69
|
+
height?: number;
|
|
70
|
+
/** Button position X */
|
|
71
|
+
x?: number;
|
|
72
|
+
/** Button position Y */
|
|
73
|
+
y?: number;
|
|
74
|
+
/** Button alpha/opacity */
|
|
75
|
+
alpha?: number;
|
|
76
|
+
/** Button visibility */
|
|
77
|
+
visible?: boolean;
|
|
78
|
+
/** Button cursor */
|
|
79
|
+
cursor?: string;
|
|
80
|
+
/** Controls instance to automatically apply button events to (e.g., ControlsDirective or JoystickControls) */
|
|
81
|
+
controls?: ControlsDirective | JoystickControls | any;
|
|
82
|
+
/** Name of the control to trigger with applyControl when button is clicked */
|
|
83
|
+
controlName?: string;
|
|
84
|
+
/** Shape of the button background: 'rect', 'circle', or 'ellipse' */
|
|
85
|
+
shape?: 'rect' | 'circle' | 'ellipse';
|
|
86
|
+
/** Custom background component or element (replaces default background if provided) */
|
|
87
|
+
background?: Element | any;
|
|
88
|
+
/** Custom children components for button content (takes priority over text if provided) */
|
|
89
|
+
children?: Element[];
|
|
90
|
+
/** Focus index for the button */
|
|
91
|
+
tabindex?: number | Signal<number>;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Creates a Button component with interactive states and customizable styling.
|
|
95
|
+
*
|
|
96
|
+
* This component provides a fully interactive button with visual feedback
|
|
97
|
+
* for different states (normal, hover, pressed, disabled). It supports both
|
|
98
|
+
* sprite-based and graphics-based rendering approaches.
|
|
99
|
+
*
|
|
100
|
+
* The button is built using a Container with background and text elements,
|
|
101
|
+
* providing reactive state management and event handling.
|
|
102
|
+
*
|
|
103
|
+
* ## Features
|
|
104
|
+
*
|
|
105
|
+
* - **Controls Integration**: Automatically trigger controls via `applyControl` when clicked
|
|
106
|
+
* - **Multiple Shapes**: Support for rect, circle, and ellipse shapes
|
|
107
|
+
* - **Custom Content**: Use children components for custom button content
|
|
108
|
+
* - **Custom Background**: Provide a custom background component
|
|
109
|
+
*
|
|
110
|
+
* @param props - Button configuration including text, styling, controls, shape, and event handlers
|
|
111
|
+
* @returns A reactive Button component
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* // Simple button with text and click handler
|
|
115
|
+
* const simpleButton = Button({
|
|
116
|
+
* text: "Click Me",
|
|
117
|
+
* click: () => console.log("Button clicked!"),
|
|
118
|
+
* width: 150,
|
|
119
|
+
* height: 50
|
|
120
|
+
* });
|
|
121
|
+
*
|
|
122
|
+
* // Button with controls integration
|
|
123
|
+
* const jumpButton = Button({
|
|
124
|
+
* text: "Jump",
|
|
125
|
+
* controls: controlsInstance,
|
|
126
|
+
* controlName: "jump",
|
|
127
|
+
* width: 120,
|
|
128
|
+
* height: 40
|
|
129
|
+
* });
|
|
130
|
+
*
|
|
131
|
+
* // Circular button
|
|
132
|
+
* const circleButton = Button({
|
|
133
|
+
* text: "Action",
|
|
134
|
+
* shape: "circle",
|
|
135
|
+
* width: 100,
|
|
136
|
+
* height: 100
|
|
137
|
+
* });
|
|
138
|
+
*
|
|
139
|
+
* // Button with custom content (children)
|
|
140
|
+
* const customButton = Button({
|
|
141
|
+
* shape: "circle",
|
|
142
|
+
* width: 80,
|
|
143
|
+
* height: 80,
|
|
144
|
+
* children: [
|
|
145
|
+
* h(Sprite, { image: "icon.png", width: 50, height: 50 })
|
|
146
|
+
* ]
|
|
147
|
+
* });
|
|
148
|
+
*
|
|
149
|
+
* // Styled button with custom colors
|
|
150
|
+
* const styledButton = Button({
|
|
151
|
+
* text: "Styled Button",
|
|
152
|
+
* style: {
|
|
153
|
+
* backgroundColor: {
|
|
154
|
+
* normal: "#28a745",
|
|
155
|
+
* hover: "#218838",
|
|
156
|
+
* pressed: "#1e7e34",
|
|
157
|
+
* disabled: "#6c757d"
|
|
158
|
+
* },
|
|
159
|
+
* border: {
|
|
160
|
+
* radius: 8,
|
|
161
|
+
* width: 2,
|
|
162
|
+
* color: "#ffffff"
|
|
163
|
+
* },
|
|
164
|
+
* text: {
|
|
165
|
+
* fontSize: 18,
|
|
166
|
+
* color: "#ffffff"
|
|
167
|
+
* }
|
|
168
|
+
* }
|
|
169
|
+
* });
|
|
170
|
+
*
|
|
171
|
+
* // Sprite-based button
|
|
172
|
+
* const spriteButton = Button({
|
|
173
|
+
* text: "Play Game",
|
|
174
|
+
* style: {
|
|
175
|
+
* textures: {
|
|
176
|
+
* normal: "/assets/button-normal.png",
|
|
177
|
+
* hover: "/assets/button-hover.png",
|
|
178
|
+
* pressed: "/assets/button-pressed.png"
|
|
179
|
+
* }
|
|
180
|
+
* }
|
|
181
|
+
* });
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export declare function Button(props: ButtonProps): Element<import('./DisplayObject').ComponentInstance> | Promise<Element<import('./DisplayObject').ComponentInstance>>;
|
|
185
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Props } from '../engine/reactive';
|
|
2
|
+
import { ComponentFunction } from '../engine/signal';
|
|
3
|
+
import { SignalOrPrimitive } from './types';
|
|
4
|
+
import { Size } from './types/DisplayObject';
|
|
5
|
+
export interface CanvasProps extends Props {
|
|
6
|
+
cursorStyles?: () => any;
|
|
7
|
+
width?: SignalOrPrimitive<Size>;
|
|
8
|
+
height?: SignalOrPrimitive<Size>;
|
|
9
|
+
canvasEl?: HTMLElement;
|
|
10
|
+
selector?: string;
|
|
11
|
+
isRoot?: boolean;
|
|
12
|
+
tick?: any;
|
|
13
|
+
class?: SignalOrPrimitive<string>;
|
|
14
|
+
background?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const Canvas: ComponentFunction<CanvasProps>;
|
|
17
|
+
//# sourceMappingURL=Canvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Canvas.d.ts","sourceRoot":"","sources":["../../src/components/Canvas.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EAIN,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAgB7C,MAAM,WAAW,WAAY,SAAQ,KAAK;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC;IACzB,KAAK,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,iBAAiB,CAAC,WAAW,CA6GjD,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ComponentFunction } from '../engine/signal';
|
|
2
|
+
import { DisplayObjectProps } from './types/DisplayObject';
|
|
3
|
+
interface ContainerProps extends DisplayObjectProps {
|
|
4
|
+
sortableChildren?: boolean;
|
|
5
|
+
}
|
|
6
|
+
declare const CanvasContainer_base: {
|
|
7
|
+
new (): {
|
|
8
|
+
[x: string]: any;
|
|
9
|
+
"__#private@#canvasContext": {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
} | null;
|
|
12
|
+
isFlex: boolean;
|
|
13
|
+
fullProps: import('..').Props;
|
|
14
|
+
isMounted: boolean;
|
|
15
|
+
_anchorPoints: import('pixi.js').ObservablePoint;
|
|
16
|
+
isCustomAnchor: boolean;
|
|
17
|
+
displayWidth: import('@signe/reactive').WritableSignal<number>;
|
|
18
|
+
displayHeight: import('@signe/reactive').WritableSignal<number>;
|
|
19
|
+
overrideProps: string[];
|
|
20
|
+
layout: any;
|
|
21
|
+
onBeforeDestroy: import('./DisplayObject').OnHook | null;
|
|
22
|
+
onAfterMount: import('./DisplayObject').OnHook | null;
|
|
23
|
+
subjectInit: import('rxjs').BehaviorSubject<any>;
|
|
24
|
+
disableLayout: boolean;
|
|
25
|
+
"__#private@#registeredEvents": Map<string, Function>;
|
|
26
|
+
"__#private@#computedLayoutBox": {
|
|
27
|
+
width?: number;
|
|
28
|
+
height?: number;
|
|
29
|
+
} | null;
|
|
30
|
+
"__#private@#element": import('..').Element<any> | null;
|
|
31
|
+
getElement(): import('..').Element<any> | null;
|
|
32
|
+
onLayoutComputed(_event: any): void;
|
|
33
|
+
get deltaRatio(): any;
|
|
34
|
+
get parentIsFlex(): any;
|
|
35
|
+
onInit(props: import('..').Props): void;
|
|
36
|
+
onMount(element: import('..').Element<any>, index?: number): Promise<void>;
|
|
37
|
+
onUpdate(props: import('..').Props): void;
|
|
38
|
+
onDestroy(parent: import('..').Element, afterDestroy?: () => void): Promise<void>;
|
|
39
|
+
setFlexDirection(direction: import('./types/DisplayObject').FlexDirection): void;
|
|
40
|
+
setFlexWrap(wrap: "wrap" | "nowrap" | "wrap-reverse"): void;
|
|
41
|
+
setAlignContent(align: import('./types/DisplayObject').AlignContent): void;
|
|
42
|
+
setAlignSelf(align: import('./types/DisplayObject').AlignContent): void;
|
|
43
|
+
setAlignItems(align: import('./types/DisplayObject').AlignContent): void;
|
|
44
|
+
setJustifyContent(justifyContent: "flex-start" | "flex-end" | "center" | "space-between" | "space-around"): void;
|
|
45
|
+
setPosition(position: import('./types/DisplayObject').EdgeSize): void;
|
|
46
|
+
setX(x: number): void;
|
|
47
|
+
setY(y: number): void;
|
|
48
|
+
setPadding(padding: import('./types/DisplayObject').EdgeSize): void;
|
|
49
|
+
setMargin(margin: import('./types/DisplayObject').EdgeSize): void;
|
|
50
|
+
setGap(gap: import('./types/DisplayObject').EdgeSize): void;
|
|
51
|
+
setBorder(border: import('./types/DisplayObject').EdgeSize): void;
|
|
52
|
+
setPositionType(positionType: "relative" | "absolute"): void;
|
|
53
|
+
setWidth(width: number): void;
|
|
54
|
+
setHeight(height: number): void;
|
|
55
|
+
getWidth(): number;
|
|
56
|
+
getHeight(): number;
|
|
57
|
+
setMinWidth(minWidth: number | string): void;
|
|
58
|
+
setMinHeight(minHeight: number | string): void;
|
|
59
|
+
setMaxWidth(maxWidth: number | string): void;
|
|
60
|
+
setMaxHeight(maxHeight: number | string): void;
|
|
61
|
+
setAspectRatio(aspectRatio: number): void;
|
|
62
|
+
setFlexGrow(flexGrow: number): void;
|
|
63
|
+
setFlexShrink(flexShrink: number): void;
|
|
64
|
+
setFlexBasis(flexBasis: number | string): void;
|
|
65
|
+
setRowGap(rowGap: number): void;
|
|
66
|
+
setColumnGap(columnGap: number): void;
|
|
67
|
+
setTop(top: number | string): void;
|
|
68
|
+
setLeft(left: number | string): void;
|
|
69
|
+
setRight(right: number | string): void;
|
|
70
|
+
setBottom(bottom: number | string): void;
|
|
71
|
+
setObjectFit(objectFit: import('./types/DisplayObject').ObjectFit): void;
|
|
72
|
+
setObjectPosition(objectPosition: import('./types/DisplayObject').ObjectPosition): void;
|
|
73
|
+
setTransformOrigin(transformOrigin: import('./types/DisplayObject').TransformOrigin): void;
|
|
74
|
+
};
|
|
75
|
+
[x: string]: any;
|
|
76
|
+
};
|
|
77
|
+
export declare class CanvasContainer extends CanvasContainer_base {
|
|
78
|
+
isCustomAnchor: boolean;
|
|
79
|
+
onUpdate(props: any): void;
|
|
80
|
+
onMount(args: any): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
export interface CanvasContainer extends DisplayObjectProps {
|
|
83
|
+
}
|
|
84
|
+
export declare const Container: ComponentFunction<ContainerProps>;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/components/Container.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,UAAU,cAAe,SAAQ,kBAAkB;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;;;;;;;;;;;;;;;;;;;;iBAuDq/B,CAAC;kBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AArDxgC,qBAAa,eAAgB,SAAQ,oBAA4B;IAC/D,cAAc,UAAQ;IAEtB,QAAQ,CAAC,KAAK,KAAA;IAaR,OAAO,CAAC,IAAI,KAAA;CA0BnB;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;CAAG;AAI9D,eAAO,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,CAIvD,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Element } from '../engine/reactive';
|
|
2
|
+
import { ComponentFunction } from '../engine/signal';
|
|
3
|
+
import { DisplayObjectProps } from './types/DisplayObject';
|
|
4
|
+
declare const CanvasDOMContainer_base: {
|
|
5
|
+
new (): {
|
|
6
|
+
[x: string]: any;
|
|
7
|
+
"__#private@#canvasContext": {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
} | null;
|
|
10
|
+
isFlex: boolean;
|
|
11
|
+
fullProps: import('..').Props;
|
|
12
|
+
isMounted: boolean;
|
|
13
|
+
_anchorPoints: import('pixi.js').ObservablePoint;
|
|
14
|
+
isCustomAnchor: boolean;
|
|
15
|
+
displayWidth: import('@signe/reactive').WritableSignal<number>;
|
|
16
|
+
displayHeight: import('@signe/reactive').WritableSignal<number>;
|
|
17
|
+
overrideProps: string[];
|
|
18
|
+
layout: any;
|
|
19
|
+
onBeforeDestroy: import('./DisplayObject').OnHook | null;
|
|
20
|
+
onAfterMount: import('./DisplayObject').OnHook | null;
|
|
21
|
+
subjectInit: import('rxjs').BehaviorSubject<any>;
|
|
22
|
+
disableLayout: boolean;
|
|
23
|
+
"__#private@#registeredEvents": Map<string, Function>;
|
|
24
|
+
"__#private@#computedLayoutBox": {
|
|
25
|
+
width?: number;
|
|
26
|
+
height?: number;
|
|
27
|
+
} | null;
|
|
28
|
+
"__#private@#element": Element<any> | null;
|
|
29
|
+
getElement(): Element<any> | null;
|
|
30
|
+
onLayoutComputed(_event: any): void;
|
|
31
|
+
get deltaRatio(): any;
|
|
32
|
+
get parentIsFlex(): any;
|
|
33
|
+
onInit(props: import('..').Props): void;
|
|
34
|
+
onMount(element: Element<any>, index?: number): Promise<void>;
|
|
35
|
+
onUpdate(props: import('..').Props): void;
|
|
36
|
+
onDestroy(parent: Element, afterDestroy?: () => void): Promise<void>;
|
|
37
|
+
setFlexDirection(direction: import('./types/DisplayObject').FlexDirection): void;
|
|
38
|
+
setFlexWrap(wrap: "wrap" | "nowrap" | "wrap-reverse"): void;
|
|
39
|
+
setAlignContent(align: import('./types/DisplayObject').AlignContent): void;
|
|
40
|
+
setAlignSelf(align: import('./types/DisplayObject').AlignContent): void;
|
|
41
|
+
setAlignItems(align: import('./types/DisplayObject').AlignContent): void;
|
|
42
|
+
setJustifyContent(justifyContent: "flex-start" | "flex-end" | "center" | "space-between" | "space-around"): void;
|
|
43
|
+
setPosition(position: import('./types/DisplayObject').EdgeSize): void;
|
|
44
|
+
setX(x: number): void;
|
|
45
|
+
setY(y: number): void;
|
|
46
|
+
setPadding(padding: import('./types/DisplayObject').EdgeSize): void;
|
|
47
|
+
setMargin(margin: import('./types/DisplayObject').EdgeSize): void;
|
|
48
|
+
setGap(gap: import('./types/DisplayObject').EdgeSize): void;
|
|
49
|
+
setBorder(border: import('./types/DisplayObject').EdgeSize): void;
|
|
50
|
+
setPositionType(positionType: "relative" | "absolute"): void;
|
|
51
|
+
setWidth(width: number): void;
|
|
52
|
+
setHeight(height: number): void;
|
|
53
|
+
getWidth(): number;
|
|
54
|
+
getHeight(): number;
|
|
55
|
+
setMinWidth(minWidth: number | string): void;
|
|
56
|
+
setMinHeight(minHeight: number | string): void;
|
|
57
|
+
setMaxWidth(maxWidth: number | string): void;
|
|
58
|
+
setMaxHeight(maxHeight: number | string): void;
|
|
59
|
+
setAspectRatio(aspectRatio: number): void;
|
|
60
|
+
setFlexGrow(flexGrow: number): void;
|
|
61
|
+
setFlexShrink(flexShrink: number): void;
|
|
62
|
+
setFlexBasis(flexBasis: number | string): void;
|
|
63
|
+
setRowGap(rowGap: number): void;
|
|
64
|
+
setColumnGap(columnGap: number): void;
|
|
65
|
+
setTop(top: number | string): void;
|
|
66
|
+
setLeft(left: number | string): void;
|
|
67
|
+
setRight(right: number | string): void;
|
|
68
|
+
setBottom(bottom: number | string): void;
|
|
69
|
+
setObjectFit(objectFit: import('./types/DisplayObject').ObjectFit): void;
|
|
70
|
+
setObjectPosition(objectPosition: import('./types/DisplayObject').ObjectPosition): void;
|
|
71
|
+
setTransformOrigin(transformOrigin: import('./types/DisplayObject').TransformOrigin): void;
|
|
72
|
+
};
|
|
73
|
+
[x: string]: any;
|
|
74
|
+
};
|
|
75
|
+
export declare class CanvasDOMContainer extends CanvasDOMContainer_base {
|
|
76
|
+
disableLayout: boolean;
|
|
77
|
+
private canvasSizeEffect;
|
|
78
|
+
private static readonly DOM_ROUTING_MAP;
|
|
79
|
+
private static readonly DOM_ALLOWED_TAGS;
|
|
80
|
+
private static readonly DOM_UNSUPPORTED_TAGS;
|
|
81
|
+
private hasDomContainerAncestor;
|
|
82
|
+
private getPercentRatio;
|
|
83
|
+
private getCanvasSize;
|
|
84
|
+
private shouldUseCanvasPercent;
|
|
85
|
+
private syncCanvasSizeEffect;
|
|
86
|
+
private applyElementSize;
|
|
87
|
+
private routeDomChildren;
|
|
88
|
+
onInit(props: any): void;
|
|
89
|
+
onMount(element: Element<any>, index?: number): Promise<void>;
|
|
90
|
+
onUpdate(props: any): void;
|
|
91
|
+
onLayoutComputed(): void;
|
|
92
|
+
onDestroy(parent: Element<any>, afterDestroy?: () => void): Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
export interface CanvasDOMContainer extends DisplayObjectProps {
|
|
95
|
+
}
|
|
96
|
+
export declare const DOMContainer: ComponentFunction<any>;
|
|
97
|
+
export {};
|
|
98
|
+
//# sourceMappingURL=DOMContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DOMContainer.d.ts","sourceRoot":"","sources":["../../src/components/DOMContainer.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAGR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAK,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;iBAsHnD,CAAC;kBACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnBV,qBAAa,kBAAmB,SAAQ,uBAA+B;IACrE,aAAa,UAAQ;IACrB,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAErC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAIrC;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAqBzC;IAEH,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,gBAAgB;IAgDxB,OAAO,CAAC,gBAAgB;IA8BxB,MAAM,CAAC,KAAK,EAAE,GAAG;IA8EX,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM;IAMnD,QAAQ,CAAC,KAAK,EAAE,GAAG;IAMnB,gBAAgB;IAIV,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI;CAUhE;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;CAAI;AAIlE,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAE/C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Element } from '../engine/reactive';
|
|
2
|
+
import { OnHook } from './DisplayObject';
|
|
3
|
+
import { ComponentFunction } from '../engine/signal';
|
|
4
|
+
import { DisplayObjectProps } from './types/DisplayObject';
|
|
5
|
+
export interface DOMElementProps extends DisplayObjectProps {
|
|
6
|
+
element?: string | {
|
|
7
|
+
value: HTMLElement;
|
|
8
|
+
};
|
|
9
|
+
textContent?: string;
|
|
10
|
+
attrs?: Record<string, any> & {
|
|
11
|
+
class?: string | string[] | Record<string, boolean> | {
|
|
12
|
+
items?: string[];
|
|
13
|
+
} | {
|
|
14
|
+
value?: string | string[] | Record<string, boolean>;
|
|
15
|
+
};
|
|
16
|
+
style?: string | Record<string, string | number> | {
|
|
17
|
+
value?: string | Record<string, string | number>;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
onBeforeDestroy?: OnHook;
|
|
21
|
+
}
|
|
22
|
+
export interface DOMContainerProps extends DOMElementProps {
|
|
23
|
+
element: string | {
|
|
24
|
+
value: HTMLElement;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export declare class CanvasDOMElement {
|
|
28
|
+
element: HTMLElement;
|
|
29
|
+
private eventListeners;
|
|
30
|
+
private onBeforeDestroy;
|
|
31
|
+
private valueSignal;
|
|
32
|
+
private isFormElementType;
|
|
33
|
+
private classSubscriptions;
|
|
34
|
+
private childTextSubscriptions;
|
|
35
|
+
/**
|
|
36
|
+
* Checks if the element is a form element that supports the value attribute
|
|
37
|
+
* @param elementType - The element type string from props
|
|
38
|
+
* @returns true if the element is a form element with value support
|
|
39
|
+
*/
|
|
40
|
+
private isFormElement;
|
|
41
|
+
private collectClassTokens;
|
|
42
|
+
private collectClassSignals;
|
|
43
|
+
private applyClassList;
|
|
44
|
+
private syncClassSubscriptions;
|
|
45
|
+
private appendChildElement;
|
|
46
|
+
onInit(props: DOMElementProps): void;
|
|
47
|
+
onMount(context: Element<CanvasDOMElement>): void;
|
|
48
|
+
onUpdate(props: DOMElementProps): void;
|
|
49
|
+
onDestroy(parent: Element<CanvasDOMElement>, afterDestroy: () => void): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export interface CanvasDOMElement extends DisplayObjectProps {
|
|
52
|
+
}
|
|
53
|
+
export declare const DOMElement: ComponentFunction<DOMContainerProps>;
|
|
54
|
+
//# sourceMappingURL=DOMElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DOMElement.d.ts","sourceRoot":"","sources":["../../src/components/DOMElement.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAER,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,OAAO,CAAC,EACN,MAAM,GACN;QACA,KAAK,EAAE,WAAW,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QAC5B,KAAK,CAAC,EACJ,MAAM,GACN,MAAM,EAAE,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,GACpB;YAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QAC1D,KAAK,CAAC,EACJ,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAC/B;YAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;SAAE,CAAC;KACxD,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,OAAO,EACL,MAAM,GACN;QACA,KAAK,EAAE,WAAW,CAAC;KACpB,CAAC;CACH;AAwKD,qBAAa,gBAAgB;IACpB,OAAO,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,kBAAkB,CAA0C;IACpE,OAAO,CAAC,sBAAsB,CAA0C;IAExE;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,kBAAkB;IAqD1B,MAAM,CAAC,KAAK,EAAE,eAAe;IAyD7B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAgC1C,QAAQ,CAAC,KAAK,EAAE,eAAe;IAqEzB,SAAS,CACb,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACjC,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,IAAI,CAAC;CA6BjB;AAED,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;CAAI;AAIhE,eAAO,MAAM,UAAU,EAAE,iBAAiB,CAAC,iBAAiB,CAE3D,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Signal } from '@signe/reactive';
|
|
2
|
+
import { Element } from '../engine/reactive';
|
|
3
|
+
import { ComponentFunction } from '../engine/signal';
|
|
4
|
+
import { CanvasDOMElement, DOMElementProps } from './DOMElement';
|
|
5
|
+
import { OnHook } from './DisplayObject';
|
|
6
|
+
import { Tick } from '../directives/Scheduler';
|
|
7
|
+
import { SpritesheetOptions } from './types/Spritesheet';
|
|
8
|
+
export interface DOMSpriteFrame {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
export interface DOMSpriteProps extends DOMElementProps {
|
|
15
|
+
image?: string;
|
|
16
|
+
rectangle?: DOMSpriteFrame | {
|
|
17
|
+
value?: DOMSpriteFrame;
|
|
18
|
+
};
|
|
19
|
+
frames?: DOMSpriteFrame[];
|
|
20
|
+
frameIndex?: number;
|
|
21
|
+
fps?: number;
|
|
22
|
+
playing?: boolean;
|
|
23
|
+
loop?: boolean;
|
|
24
|
+
sheet?: {
|
|
25
|
+
definition?: DOMSpriteSheetDefinition | {
|
|
26
|
+
value?: DOMSpriteSheetDefinition;
|
|
27
|
+
} | Signal<DOMSpriteSheetDefinition | undefined> | Promise<DOMSpriteSheetDefinition>;
|
|
28
|
+
playing?: string;
|
|
29
|
+
params?: any;
|
|
30
|
+
onFinish?: () => void;
|
|
31
|
+
};
|
|
32
|
+
element?: "div" | "img";
|
|
33
|
+
class?: any;
|
|
34
|
+
style?: any;
|
|
35
|
+
attrs?: Record<string, any> & {
|
|
36
|
+
class?: string | string[] | Record<string, boolean> | {
|
|
37
|
+
items?: string[];
|
|
38
|
+
} | {
|
|
39
|
+
value?: string | string[] | Record<string, boolean>;
|
|
40
|
+
};
|
|
41
|
+
style?: string | Record<string, string | number> | {
|
|
42
|
+
value?: string | Record<string, string | number>;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
onBeforeDestroy?: OnHook;
|
|
46
|
+
context?: {
|
|
47
|
+
tick?: Signal<Tick | null>;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
type DOMSpriteSheetDefinition = SpritesheetOptions & {
|
|
51
|
+
image?: string;
|
|
52
|
+
};
|
|
53
|
+
export declare class CanvasDOMSprite extends CanvasDOMElement {
|
|
54
|
+
private frameIndex;
|
|
55
|
+
private frames;
|
|
56
|
+
private rectangle?;
|
|
57
|
+
private image?;
|
|
58
|
+
private fps;
|
|
59
|
+
private loop;
|
|
60
|
+
private playing;
|
|
61
|
+
private hasExternalFrameIndex;
|
|
62
|
+
private elapsed;
|
|
63
|
+
private tickSignal?;
|
|
64
|
+
private tickSubscription?;
|
|
65
|
+
private sheetSubscriptions;
|
|
66
|
+
private sheetDefinition?;
|
|
67
|
+
private sheetAnimations;
|
|
68
|
+
private sheetCurrentAnimation?;
|
|
69
|
+
private sheetCurrentName?;
|
|
70
|
+
private sheetParams;
|
|
71
|
+
private sheetTime;
|
|
72
|
+
private sheetFrameIndex;
|
|
73
|
+
private sheetFinished;
|
|
74
|
+
private sheetLoadToken;
|
|
75
|
+
private sheetOnFinish?;
|
|
76
|
+
private rafId?;
|
|
77
|
+
private lastRafTimestamp?;
|
|
78
|
+
private lastTickTimestamp?;
|
|
79
|
+
private renderElementType;
|
|
80
|
+
private wrapperElementType;
|
|
81
|
+
private isAnimating;
|
|
82
|
+
private playingSubscription?;
|
|
83
|
+
private playingSignal?;
|
|
84
|
+
private explicitWidth?;
|
|
85
|
+
private explicitHeight?;
|
|
86
|
+
private frameWidth;
|
|
87
|
+
private frameHeight;
|
|
88
|
+
private fitMode?;
|
|
89
|
+
private renderElement?;
|
|
90
|
+
private isContained;
|
|
91
|
+
onInit(props: DOMElementProps): void;
|
|
92
|
+
onMount(context: Element<CanvasDOMElement>): void;
|
|
93
|
+
onUpdate(props: DOMElementProps): void;
|
|
94
|
+
onDestroy(parent: Element<CanvasDOMElement>, afterDestroy: () => void): Promise<void>;
|
|
95
|
+
private resolveRectangle;
|
|
96
|
+
private resolveSheetDefinition;
|
|
97
|
+
private detectImageDimensions;
|
|
98
|
+
private createSheetAnimations;
|
|
99
|
+
private setSheetDefinition;
|
|
100
|
+
private playSheet;
|
|
101
|
+
private getCurrentSheetFrame;
|
|
102
|
+
private advanceSheet;
|
|
103
|
+
private mergeEventAttrs;
|
|
104
|
+
private applyProps;
|
|
105
|
+
private resolveValue;
|
|
106
|
+
private resolvePoint;
|
|
107
|
+
private resolveSize;
|
|
108
|
+
private resolvePixelSize;
|
|
109
|
+
private toCssColor;
|
|
110
|
+
private applyDisplayProps;
|
|
111
|
+
private syncRenderElement;
|
|
112
|
+
private getRenderElement;
|
|
113
|
+
private applyContainScale;
|
|
114
|
+
private bindPlayingSignal;
|
|
115
|
+
private bindSheetParams;
|
|
116
|
+
private getFrames;
|
|
117
|
+
private normalizeIndex;
|
|
118
|
+
private render;
|
|
119
|
+
private applyFrame;
|
|
120
|
+
private updateAnimationLoop;
|
|
121
|
+
private startAnimationLoop;
|
|
122
|
+
private stopAnimationLoop;
|
|
123
|
+
private advance;
|
|
124
|
+
}
|
|
125
|
+
export declare const DOMSprite: ComponentFunction<DOMSpriteProps>;
|
|
126
|
+
export {};
|
|
127
|
+
//# sourceMappingURL=DOMSprite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DOMSprite.d.ts","sourceRoot":"","sources":["../../src/components/DOMSprite.ts"],"names":[],"mappings":"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"}
|