canvasengine 2.0.0-beta.39 → 2.0.0-beta.40
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/{DebugRenderer-Rrw9FlTd.js → DebugRenderer-DgECR3yZ.js} +2 -2
- package/dist/{DebugRenderer-Rrw9FlTd.js.map → DebugRenderer-DgECR3yZ.js.map} +1 -1
- package/dist/components/Canvas.d.ts.map +1 -1
- package/dist/directives/Controls.d.ts +3 -1
- package/dist/directives/Controls.d.ts.map +1 -1
- package/dist/engine/animation.d.ts +19 -5
- package/dist/engine/animation.d.ts.map +1 -1
- package/dist/engine/reactive.d.ts +10 -0
- package/dist/engine/reactive.d.ts.map +1 -1
- package/dist/engine/signal.d.ts.map +1 -1
- package/dist/engine/trigger.d.ts.map +1 -1
- package/dist/{index-BQ99FClW.js → index-gb763Hyx.js} +4460 -4245
- package/dist/index-gb763Hyx.js.map +1 -0
- package/dist/index.global.js +6 -6
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +40 -37
- package/package.json +2 -2
- package/src/components/Canvas.ts +5 -0
- package/src/components/Container.ts +2 -0
- package/src/components/DisplayObject.ts +33 -12
- package/src/components/Sprite.ts +14 -1
- package/src/directives/Controls.ts +45 -7
- package/src/engine/animation.ts +137 -19
- package/src/engine/reactive.ts +123 -3
- package/src/engine/signal.ts +5 -0
- package/src/engine/trigger.ts +19 -2
- package/dist/components/Container.d.ts +0 -84
- package/dist/components/Container.d.ts.map +0 -1
- package/dist/components/DOMContainer.d.ts +0 -81
- package/dist/components/DOMContainer.d.ts.map +0 -1
- package/dist/components/DisplayObject.d.ts +0 -86
- package/dist/components/DisplayObject.d.ts.map +0 -1
- package/dist/components/Mesh.d.ts +0 -206
- package/dist/components/Mesh.d.ts.map +0 -1
- package/dist/components/Sprite.d.ts +0 -240
- package/dist/components/Sprite.d.ts.map +0 -1
- package/dist/components/Viewport.d.ts +0 -110
- package/dist/components/Viewport.d.ts.map +0 -1
- package/dist/index-BQ99FClW.js.map +0 -1
package/src/engine/reactive.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ArrayChange, ObjectChange, Signal, WritableArraySignal, WritableObjectSignal, isComputed, isSignal, signal, computed } from "@signe/reactive";
|
|
2
|
+
import { isAnimatedSignal, AnimatedSignal } from "./animation";
|
|
2
3
|
import {
|
|
3
4
|
Observable,
|
|
4
5
|
Subject,
|
|
@@ -46,6 +47,7 @@ export interface Element<T = ComponentInstance> {
|
|
|
46
47
|
};
|
|
47
48
|
destroy: () => void;
|
|
48
49
|
allElements: Subject<void>;
|
|
50
|
+
isFrozen: boolean;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
type FlowResult = {
|
|
@@ -82,6 +84,66 @@ export function registerComponent(name, component) {
|
|
|
82
84
|
components[name] = component;
|
|
83
85
|
}
|
|
84
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Checks if an element is currently frozen.
|
|
89
|
+
* An element is frozen when the `freeze` prop is set to `true` (either as a boolean or Signal<boolean>),
|
|
90
|
+
* or when any of its parent elements are frozen (recursive freeze propagation).
|
|
91
|
+
*
|
|
92
|
+
* @param element - The element to check
|
|
93
|
+
* @returns `true` if the element is frozen, `false` otherwise
|
|
94
|
+
*/
|
|
95
|
+
export function isElementFrozen(element: Element): boolean {
|
|
96
|
+
if (!element) return false;
|
|
97
|
+
|
|
98
|
+
// Check if this element itself is frozen
|
|
99
|
+
const freezeProp = element.propObservables?.freeze ?? element.props?.freeze;
|
|
100
|
+
|
|
101
|
+
if (freezeProp !== undefined && freezeProp !== null) {
|
|
102
|
+
// Handle Signal<boolean>
|
|
103
|
+
if (isSignal(freezeProp)) {
|
|
104
|
+
if (freezeProp() === true) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
} else if (freezeProp === true) {
|
|
108
|
+
// Handle direct boolean
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Check if any parent is frozen (recursive check)
|
|
114
|
+
if (element.parent) {
|
|
115
|
+
return isElementFrozen(element.parent);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Pauses or resumes all animatedSignals in an element based on freeze state.
|
|
123
|
+
*
|
|
124
|
+
* @param element - The element containing animatedSignals
|
|
125
|
+
* @param shouldPause - Whether to pause (true) or resume (false) animations
|
|
126
|
+
*/
|
|
127
|
+
function handleAnimatedSignalsFreeze(element: Element, shouldPause: boolean) {
|
|
128
|
+
if (!element.propObservables) return;
|
|
129
|
+
|
|
130
|
+
const processValue = (value: any) => {
|
|
131
|
+
if (isSignal(value) && isAnimatedSignal(value as any)) {
|
|
132
|
+
const animatedSig = value as unknown as AnimatedSignal<any>;
|
|
133
|
+
if (shouldPause) {
|
|
134
|
+
animatedSig.pause();
|
|
135
|
+
} else {
|
|
136
|
+
animatedSig.resume();
|
|
137
|
+
}
|
|
138
|
+
} else if (isObject(value) && !isElement(value)) {
|
|
139
|
+
// Recursively process nested objects
|
|
140
|
+
Object.values(value).forEach(processValue);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
Object.values(element.propObservables).forEach(processValue);
|
|
145
|
+
}
|
|
146
|
+
|
|
85
147
|
function destroyElement(element: Element | Element[]) {
|
|
86
148
|
if (Array.isArray(element)) {
|
|
87
149
|
element.forEach((e) => destroyElement(e));
|
|
@@ -150,6 +212,7 @@ export function createComponent(tag: string, props?: Props): Element {
|
|
|
150
212
|
destroyElement(this);
|
|
151
213
|
},
|
|
152
214
|
allElements: new Subject(),
|
|
215
|
+
isFrozen: false,
|
|
153
216
|
};
|
|
154
217
|
|
|
155
218
|
// Iterate over each property in the props object
|
|
@@ -168,27 +231,78 @@ export function createComponent(tag: string, props?: Props): Element {
|
|
|
168
231
|
const _value = value as Signal<any>;
|
|
169
232
|
if ("dependencies" in _value && _value.dependencies.size == 0) {
|
|
170
233
|
_set(path, key, _value());
|
|
234
|
+
// Handle freeze prop initialization
|
|
235
|
+
if (key === "freeze") {
|
|
236
|
+
element.isFrozen = _value() === true;
|
|
237
|
+
}
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Handle freeze prop as signal
|
|
242
|
+
if (key === "freeze") {
|
|
243
|
+
element.isFrozen = _value() === true;
|
|
244
|
+
|
|
245
|
+
// Pause/resume animatedSignals based on initial freeze state
|
|
246
|
+
handleAnimatedSignalsFreeze(element, element.isFrozen);
|
|
247
|
+
|
|
248
|
+
element.propSubscriptions.push(
|
|
249
|
+
_value.observable.subscribe((freezeValue) => {
|
|
250
|
+
const wasFrozen = element.isFrozen;
|
|
251
|
+
element.isFrozen = freezeValue === true;
|
|
252
|
+
|
|
253
|
+
// Handle animatedSignal pause/resume when freeze state changes
|
|
254
|
+
if (wasFrozen !== element.isFrozen) {
|
|
255
|
+
handleAnimatedSignalsFreeze(element, element.isFrozen);
|
|
256
|
+
}
|
|
257
|
+
})
|
|
258
|
+
);
|
|
171
259
|
return;
|
|
172
260
|
}
|
|
261
|
+
|
|
173
262
|
element.propSubscriptions.push(
|
|
174
263
|
_value.observable.subscribe((value) => {
|
|
264
|
+
// Block updates if element is frozen
|
|
265
|
+
if (isElementFrozen(element)) {
|
|
266
|
+
// Pause animatedSignal if it's an animated signal
|
|
267
|
+
if (isAnimatedSignal(_value as any)) {
|
|
268
|
+
(_value as unknown as AnimatedSignal<any>).pause();
|
|
269
|
+
}
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Resume animatedSignal if it was paused
|
|
274
|
+
if (isAnimatedSignal(_value as any)) {
|
|
275
|
+
(_value as unknown as AnimatedSignal<any>).resume();
|
|
276
|
+
}
|
|
277
|
+
|
|
175
278
|
_set(path, key, value);
|
|
176
279
|
if (element.directives[key]) {
|
|
177
280
|
element.directives[key].onUpdate?.(value, element);
|
|
178
281
|
}
|
|
179
282
|
if (key == "tick") {
|
|
283
|
+
// Block tick updates if element is frozen
|
|
284
|
+
if (isElementFrozen(element)) {
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
180
287
|
return
|
|
181
288
|
}
|
|
182
289
|
instance.onUpdate?.(
|
|
183
290
|
path == ""
|
|
184
291
|
? {
|
|
185
|
-
|
|
186
|
-
|
|
292
|
+
[key]: value,
|
|
293
|
+
}
|
|
187
294
|
: set({}, path + "." + key, value)
|
|
188
295
|
);
|
|
189
296
|
})
|
|
190
297
|
);
|
|
191
298
|
} else {
|
|
299
|
+
// Handle freeze prop as direct boolean
|
|
300
|
+
if (key === "freeze") {
|
|
301
|
+
element.isFrozen = value === true;
|
|
302
|
+
|
|
303
|
+
// Pause/resume animatedSignals based on freeze state
|
|
304
|
+
handleAnimatedSignalsFreeze(element, element.isFrozen);
|
|
305
|
+
}
|
|
192
306
|
if (isObject(value) && key != "context" && !isElement(value)) {
|
|
193
307
|
recursiveProps(value, (path ? path + "." : "") + key);
|
|
194
308
|
} else {
|
|
@@ -308,6 +422,11 @@ export function createComponent(tag: string, props?: Props): Element {
|
|
|
308
422
|
|
|
309
423
|
element.props.context = actualParent.props.context;
|
|
310
424
|
element.parent = actualParent;
|
|
425
|
+
|
|
426
|
+
// Inherit freeze state from parent if element doesn't have its own freeze prop
|
|
427
|
+
if (!element.propObservables?.freeze && !element.props?.freeze && isElementFrozen(actualParent)) {
|
|
428
|
+
element.isFrozen = true;
|
|
429
|
+
}
|
|
311
430
|
|
|
312
431
|
// Check dependencies before mounting
|
|
313
432
|
if (element.props.dependencies && Array.isArray(element.props.dependencies)) {
|
|
@@ -514,7 +633,8 @@ export function loop<T>(
|
|
|
514
633
|
parent: null,
|
|
515
634
|
directives: {},
|
|
516
635
|
destroy() { destroyElement(this) },
|
|
517
|
-
allElements: new Subject()
|
|
636
|
+
allElements: new Subject(),
|
|
637
|
+
isFrozen: false
|
|
518
638
|
};
|
|
519
639
|
}
|
|
520
640
|
|
package/src/engine/signal.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
Subscription
|
|
4
4
|
} from "rxjs";
|
|
5
5
|
import type { Element } from "./reactive";
|
|
6
|
+
import { isElementFrozen } from "./reactive";
|
|
6
7
|
import { Tick } from "../directives/Scheduler";
|
|
7
8
|
import { Container } from "../components";
|
|
8
9
|
|
|
@@ -55,6 +56,10 @@ export function tick(fn: (tickValue: Tick, element: Element) => void) {
|
|
|
55
56
|
let subscription: Subscription | undefined
|
|
56
57
|
if (context.tick) {
|
|
57
58
|
subscription = context.tick.observable.subscribe(({ value }) => {
|
|
59
|
+
// Block tick if element is frozen
|
|
60
|
+
if (isElementFrozen(el)) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
58
63
|
fn(value, el)
|
|
59
64
|
})
|
|
60
65
|
}
|
package/src/engine/trigger.ts
CHANGED
|
@@ -84,13 +84,30 @@ export function on(triggerSignal: any, callback: (config: any) => void | Promise
|
|
|
84
84
|
if (!isTrigger(triggerSignal)) {
|
|
85
85
|
throw new Error("In 'on(arg)' must have a trigger signal type");
|
|
86
86
|
}
|
|
87
|
+
let lastValue: number | undefined;
|
|
88
|
+
|
|
87
89
|
effect(() => {
|
|
88
90
|
const result = triggerSignal.listen();
|
|
89
|
-
|
|
91
|
+
const seed = result?.seed;
|
|
92
|
+
if (!seed) return;
|
|
93
|
+
|
|
94
|
+
// Only run callback when the trigger value actually changes
|
|
95
|
+
if (lastValue === undefined) {
|
|
96
|
+
lastValue = seed.value;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (seed.value === lastValue) return;
|
|
100
|
+
lastValue = seed.value;
|
|
101
|
+
|
|
102
|
+
try {
|
|
90
103
|
const ret = callback(result?.seed.config);
|
|
91
104
|
if (ret && typeof ret.then === 'function') {
|
|
92
|
-
ret.then(
|
|
105
|
+
ret.then((value: any) => seed.resolve(value)).catch(() => seed.resolve(undefined));
|
|
106
|
+
} else {
|
|
107
|
+
seed.resolve(ret);
|
|
93
108
|
}
|
|
109
|
+
} catch (err) {
|
|
110
|
+
seed.resolve(undefined);
|
|
94
111
|
}
|
|
95
112
|
});
|
|
96
113
|
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { ComponentFunction } from '../engine/signal';
|
|
2
|
-
import { DisplayObjectProps } from './types/DisplayObject';
|
|
3
|
-
|
|
4
|
-
interface ContainerProps extends DisplayObjectProps {
|
|
5
|
-
sortableChildren?: boolean;
|
|
6
|
-
}
|
|
7
|
-
declare const CanvasContainer_base: {
|
|
8
|
-
new (): {
|
|
9
|
-
[x: string]: any;
|
|
10
|
-
"__#1@#canvasContext": {
|
|
11
|
-
[key: string]: any;
|
|
12
|
-
} | null;
|
|
13
|
-
isFlex: boolean;
|
|
14
|
-
fullProps: import('..').Props;
|
|
15
|
-
isMounted: boolean;
|
|
16
|
-
_anchorPoints: import('pixi.js').ObservablePoint;
|
|
17
|
-
isCustomAnchor: boolean;
|
|
18
|
-
displayWidth: import('@signe/reactive').WritableSignal<number>;
|
|
19
|
-
displayHeight: import('@signe/reactive').WritableSignal<number>;
|
|
20
|
-
overrideProps: string[];
|
|
21
|
-
layout: any;
|
|
22
|
-
onBeforeDestroy: import('./DisplayObject').OnHook | null;
|
|
23
|
-
onAfterMount: import('./DisplayObject').OnHook | null;
|
|
24
|
-
subjectInit: import('rxjs').BehaviorSubject<any>;
|
|
25
|
-
disableLayout: boolean;
|
|
26
|
-
"__#1@#registeredEvents": Map<string, Function>;
|
|
27
|
-
"__#1@#computedLayoutBox": {
|
|
28
|
-
width?: number;
|
|
29
|
-
height?: number;
|
|
30
|
-
} | null;
|
|
31
|
-
readonly deltaRatio: any;
|
|
32
|
-
readonly parentIsFlex: any;
|
|
33
|
-
onInit(props: import('..').Props): void;
|
|
34
|
-
onMount({ parent, props }: import('..').Element</*elided*/ any>, index?: number): Promise<void>;
|
|
35
|
-
onUpdate(props: import('..').Props): void;
|
|
36
|
-
onDestroy(parent: import('..').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 CanvasContainer extends CanvasContainer_base {
|
|
76
|
-
isCustomAnchor: boolean;
|
|
77
|
-
onUpdate(props: any): void;
|
|
78
|
-
onMount(args: any): Promise<void>;
|
|
79
|
-
}
|
|
80
|
-
export interface CanvasContainer extends DisplayObjectProps {
|
|
81
|
-
}
|
|
82
|
-
export declare const Container: ComponentFunction<ContainerProps>;
|
|
83
|
-
export {};
|
|
84
|
-
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;;;;;;;;;;;;;;;;;;;;;;iBAqDqgC,CAAC;kBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnDxhC,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,CAEvD,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Element } from '../engine/reactive';
|
|
2
|
-
import { ComponentFunction } from '../engine/signal';
|
|
3
|
-
import { DisplayObjectProps } from './types/DisplayObject';
|
|
4
|
-
|
|
5
|
-
declare const CanvasDOMContainer_base: {
|
|
6
|
-
new (): {
|
|
7
|
-
[x: string]: any;
|
|
8
|
-
"__#1@#canvasContext": {
|
|
9
|
-
[key: string]: any;
|
|
10
|
-
} | null;
|
|
11
|
-
isFlex: boolean;
|
|
12
|
-
fullProps: import('..').Props;
|
|
13
|
-
isMounted: boolean;
|
|
14
|
-
_anchorPoints: import('pixi.js').ObservablePoint;
|
|
15
|
-
isCustomAnchor: boolean;
|
|
16
|
-
displayWidth: import('@signe/reactive').WritableSignal<number>;
|
|
17
|
-
displayHeight: import('@signe/reactive').WritableSignal<number>;
|
|
18
|
-
overrideProps: string[];
|
|
19
|
-
layout: any;
|
|
20
|
-
onBeforeDestroy: import('./DisplayObject').OnHook | null;
|
|
21
|
-
onAfterMount: import('./DisplayObject').OnHook | null;
|
|
22
|
-
subjectInit: import('rxjs').BehaviorSubject<any>;
|
|
23
|
-
disableLayout: boolean;
|
|
24
|
-
"__#1@#registeredEvents": Map<string, Function>;
|
|
25
|
-
"__#1@#computedLayoutBox": {
|
|
26
|
-
width?: number;
|
|
27
|
-
height?: number;
|
|
28
|
-
} | null;
|
|
29
|
-
readonly deltaRatio: any;
|
|
30
|
-
readonly parentIsFlex: any;
|
|
31
|
-
onInit(props: import('..').Props): void;
|
|
32
|
-
onMount({ parent, props }: Element</*elided*/ any>, index?: number): Promise<void>;
|
|
33
|
-
onUpdate(props: import('..').Props): void;
|
|
34
|
-
onDestroy(parent: Element, afterDestroy?: () => void): Promise<void>;
|
|
35
|
-
setFlexDirection(direction: import('./types/DisplayObject').FlexDirection): void;
|
|
36
|
-
setFlexWrap(wrap: "wrap" | "nowrap" | "wrap-reverse"): void;
|
|
37
|
-
setAlignContent(align: import('./types/DisplayObject').AlignContent): void;
|
|
38
|
-
setAlignSelf(align: import('./types/DisplayObject').AlignContent): void;
|
|
39
|
-
setAlignItems(align: import('./types/DisplayObject').AlignContent): void;
|
|
40
|
-
setJustifyContent(justifyContent: "flex-start" | "flex-end" | "center" | "space-between" | "space-around"): void;
|
|
41
|
-
setPosition(position: import('./types/DisplayObject').EdgeSize): void;
|
|
42
|
-
setX(x: number): void;
|
|
43
|
-
setY(y: number): void;
|
|
44
|
-
setPadding(padding: import('./types/DisplayObject').EdgeSize): void;
|
|
45
|
-
setMargin(margin: import('./types/DisplayObject').EdgeSize): void;
|
|
46
|
-
setGap(gap: import('./types/DisplayObject').EdgeSize): void;
|
|
47
|
-
setBorder(border: import('./types/DisplayObject').EdgeSize): void;
|
|
48
|
-
setPositionType(positionType: "relative" | "absolute"): void;
|
|
49
|
-
setWidth(width: number): void;
|
|
50
|
-
setHeight(height: number): void;
|
|
51
|
-
getWidth(): number;
|
|
52
|
-
getHeight(): number;
|
|
53
|
-
setMinWidth(minWidth: number | string): void;
|
|
54
|
-
setMinHeight(minHeight: number | string): void;
|
|
55
|
-
setMaxWidth(maxWidth: number | string): void;
|
|
56
|
-
setMaxHeight(maxHeight: number | string): void;
|
|
57
|
-
setAspectRatio(aspectRatio: number): void;
|
|
58
|
-
setFlexGrow(flexGrow: number): void;
|
|
59
|
-
setFlexShrink(flexShrink: number): void;
|
|
60
|
-
setFlexBasis(flexBasis: number | string): void;
|
|
61
|
-
setRowGap(rowGap: number): void;
|
|
62
|
-
setColumnGap(columnGap: number): void;
|
|
63
|
-
setTop(top: number | string): void;
|
|
64
|
-
setLeft(left: number | string): void;
|
|
65
|
-
setRight(right: number | string): void;
|
|
66
|
-
setBottom(bottom: number | string): void;
|
|
67
|
-
setObjectFit(objectFit: import('./types/DisplayObject').ObjectFit): void;
|
|
68
|
-
setObjectPosition(objectPosition: import('./types/DisplayObject').ObjectPosition): void;
|
|
69
|
-
setTransformOrigin(transformOrigin: import('./types/DisplayObject').TransformOrigin): void;
|
|
70
|
-
};
|
|
71
|
-
[x: string]: any;
|
|
72
|
-
};
|
|
73
|
-
export declare class CanvasDOMContainer extends CanvasDOMContainer_base {
|
|
74
|
-
disableLayout: boolean;
|
|
75
|
-
onInit(props: any): void;
|
|
76
|
-
}
|
|
77
|
-
export interface CanvasDOMContainer extends DisplayObjectProps {
|
|
78
|
-
}
|
|
79
|
-
export declare const DOMContainer: ComponentFunction<any>;
|
|
80
|
-
export {};
|
|
81
|
-
//# sourceMappingURL=DOMContainer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DOMContainer.d.ts","sourceRoot":"","sources":["../../src/components/DOMContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EAER,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAK,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;;;;;;;;;;;;;;;;;;;;;;iBAiHlC,CAAC;kBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAd3C,qBAAa,kBAAmB,SAAQ,uBAA+B;IACrE,aAAa,UAAQ;IAErB,MAAM,CAAC,KAAK,EAAE,GAAG;CAIlB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;CAAG;AAIjE,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAE/C,CAAC"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { Element, Props } from '../engine/reactive';
|
|
2
|
-
import { AlignContent, EdgeSize, FlexDirection, ObjectFit, ObjectPosition, TransformOrigin } from './types/DisplayObject';
|
|
3
|
-
import { ObservablePoint } from 'pixi.js';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
|
|
6
|
-
export interface ComponentInstance extends PixiMixins.ContainerOptions {
|
|
7
|
-
id?: string;
|
|
8
|
-
children?: ComponentInstance[];
|
|
9
|
-
onInit?(props: Props): void;
|
|
10
|
-
onUpdate?(props: Props): void;
|
|
11
|
-
onDestroy?(parent: Element, afterDestroy: () => void): void;
|
|
12
|
-
onMount?(context: Element, index?: number): void;
|
|
13
|
-
setWidth(width: number): void;
|
|
14
|
-
setHeight(height: number): void;
|
|
15
|
-
}
|
|
16
|
-
export declare const EVENTS: string[];
|
|
17
|
-
export type OnHook = (() => void) | (() => Promise<void> | void);
|
|
18
|
-
export declare function DisplayObject(extendClass: any): {
|
|
19
|
-
new (): {
|
|
20
|
-
[x: string]: any;
|
|
21
|
-
"__#1@#canvasContext": {
|
|
22
|
-
[key: string]: any;
|
|
23
|
-
} | null;
|
|
24
|
-
isFlex: boolean;
|
|
25
|
-
fullProps: Props;
|
|
26
|
-
isMounted: boolean;
|
|
27
|
-
_anchorPoints: ObservablePoint;
|
|
28
|
-
isCustomAnchor: boolean;
|
|
29
|
-
displayWidth: import('@signe/reactive').WritableSignal<number>;
|
|
30
|
-
displayHeight: import('@signe/reactive').WritableSignal<number>;
|
|
31
|
-
overrideProps: string[];
|
|
32
|
-
layout: any;
|
|
33
|
-
onBeforeDestroy: OnHook | null;
|
|
34
|
-
onAfterMount: OnHook | null;
|
|
35
|
-
subjectInit: BehaviorSubject<any>;
|
|
36
|
-
disableLayout: boolean;
|
|
37
|
-
"__#1@#registeredEvents": Map<string, Function>;
|
|
38
|
-
"__#1@#computedLayoutBox": {
|
|
39
|
-
width?: number;
|
|
40
|
-
height?: number;
|
|
41
|
-
} | null;
|
|
42
|
-
readonly deltaRatio: any;
|
|
43
|
-
readonly parentIsFlex: any;
|
|
44
|
-
onInit(props: Props): void;
|
|
45
|
-
onMount({ parent, props }: Element</*elided*/ any>, index?: number): Promise<void>;
|
|
46
|
-
onUpdate(props: Props): void;
|
|
47
|
-
onDestroy(parent: Element, afterDestroy?: () => void): Promise<void>;
|
|
48
|
-
setFlexDirection(direction: FlexDirection): void;
|
|
49
|
-
setFlexWrap(wrap: "wrap" | "nowrap" | "wrap-reverse"): void;
|
|
50
|
-
setAlignContent(align: AlignContent): void;
|
|
51
|
-
setAlignSelf(align: AlignContent): void;
|
|
52
|
-
setAlignItems(align: AlignContent): void;
|
|
53
|
-
setJustifyContent(justifyContent: "flex-start" | "flex-end" | "center" | "space-between" | "space-around"): void;
|
|
54
|
-
setPosition(position: EdgeSize): void;
|
|
55
|
-
setX(x: number): void;
|
|
56
|
-
setY(y: number): void;
|
|
57
|
-
setPadding(padding: EdgeSize): void;
|
|
58
|
-
setMargin(margin: EdgeSize): void;
|
|
59
|
-
setGap(gap: EdgeSize): void;
|
|
60
|
-
setBorder(border: EdgeSize): void;
|
|
61
|
-
setPositionType(positionType: "relative" | "absolute"): void;
|
|
62
|
-
setWidth(width: number): void;
|
|
63
|
-
setHeight(height: number): void;
|
|
64
|
-
getWidth(): number;
|
|
65
|
-
getHeight(): number;
|
|
66
|
-
setMinWidth(minWidth: number | string): void;
|
|
67
|
-
setMinHeight(minHeight: number | string): void;
|
|
68
|
-
setMaxWidth(maxWidth: number | string): void;
|
|
69
|
-
setMaxHeight(maxHeight: number | string): void;
|
|
70
|
-
setAspectRatio(aspectRatio: number): void;
|
|
71
|
-
setFlexGrow(flexGrow: number): void;
|
|
72
|
-
setFlexShrink(flexShrink: number): void;
|
|
73
|
-
setFlexBasis(flexBasis: number | string): void;
|
|
74
|
-
setRowGap(rowGap: number): void;
|
|
75
|
-
setColumnGap(columnGap: number): void;
|
|
76
|
-
setTop(top: number | string): void;
|
|
77
|
-
setLeft(left: number | string): void;
|
|
78
|
-
setRight(right: number | string): void;
|
|
79
|
-
setBottom(bottom: number | string): void;
|
|
80
|
-
setObjectFit(objectFit: ObjectFit): void;
|
|
81
|
-
setObjectPosition(objectPosition: ObjectPosition): void;
|
|
82
|
-
setTransformOrigin(transformOrigin: TransformOrigin): void;
|
|
83
|
-
};
|
|
84
|
-
[x: string]: any;
|
|
85
|
-
};
|
|
86
|
-
//# sourceMappingURL=DisplayObject.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayObject.d.ts","sourceRoot":"","sources":["../../src/components/DisplayObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAc,eAAe,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAmB,MAAM,MAAM,CAAC;AAExD,MAAM,WAAW,iBAAkB,SAAQ,UAAU,CAAC,gBAAgB;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,UAqElB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAEjE,wBAAgB,aAAa,CAAC,WAAW,KAAA;;;+BAErB;YACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;SACpB,GAAG,IAAI;gBACA,OAAO;mBACJ,KAAK;mBACL,OAAO;;wBAEF,OAAO;;;uBAGR,MAAM,EAAE;;yBAEN,MAAM,GAAG,IAAI;sBAChB,MAAM,GAAG,IAAI;;uBAEZ,OAAO;kCAEH,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;mCAEpB;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI;;;sBAWhD,KAAK;mCAyCc,OAAO,gBAAe,UAAU,MAAM;wBAsCvD,KAAK;0BAqGG,OAAO,iBAAiB,MAAM,IAAI;oCAc9B,aAAa;0BAIvB,MAAM,GAAG,QAAQ,GAAG,cAAc;+BAI7B,YAAY;4BAIf,YAAY;6BAIX,YAAY;0CAM3B,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,eAAe,GACf,cAAc;8BAKE,QAAQ;gBAoBtB,MAAM;gBAUN,MAAM;4BAUM,QAAQ;0BAoBV,QAAQ;oBAoBd,QAAQ;0BAIF,QAAQ;sCAoBI,UAAU,GAAG,UAAU;wBAIrC,MAAM;0BASJ,MAAM;oBASZ,MAAM;qBAgBL,MAAM;8BAiBG,MAAM,GAAG,MAAM;gCAIb,MAAM,GAAG,MAAM;8BAIjB,MAAM,GAAG,MAAM;gCAIb,MAAM,GAAG,MAAM;oCAKX,MAAM;8BAKZ,MAAM;kCAIF,MAAM;gCAIR,MAAM,GAAG,MAAM;0BAKrB,MAAM;gCAIA,MAAM;oBAKlB,MAAM,GAAG,MAAM;sBAIb,MAAM,GAAG,MAAM;wBAIb,MAAM,GAAG,MAAM;0BAIb,MAAM,GAAG,MAAM;gCAKT,SAAS;0CAIC,cAAc;4CAIZ,eAAe;;;EAItD"}
|