@flighthq/tween 0.5.1-next.704.19c91ec → 0.5.1-next.730.f29a5aa

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/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/tween`. The `@flight
13
13
  This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
14
14
 
15
15
  - [Flight project](https://github.com/flighthq/flight)
16
- - [Source for @flighthq/tween@0.5.1-next.704.19c91ec](https://github.com/flighthq/flight/tree/19c91ec3e569d6b3b471682726465a79fba9f8cb/packages/tween)
17
- - [License](https://github.com/flighthq/flight/blob/19c91ec3e569d6b3b471682726465a79fba9f8cb/LICENSE.md)
16
+ - [Source for @flighthq/tween@0.5.1-next.730.f29a5aa](https://github.com/flighthq/flight/tree/f29a5aab5db192284ce5cadf08ffae2649a598ea/packages/tween)
17
+ - [License](https://github.com/flighthq/flight/blob/f29a5aab5db192284ce5cadf08ffae2649a598ea/LICENSE.md)
@@ -1 +1 @@
1
- {"version":3,"file":"colorTween.d.ts","sourceRoot":"","sources":["../src/colorTween.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlF,KAAK,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,eAAe,CAAC,CAyBxB"}
1
+ {"version":3,"file":"colorTween.d.ts","sourceRoot":"","sources":["../src/colorTween.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlF,KAAK,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,eAAe,CAAC,CA0BxB"}
@@ -1,5 +1,5 @@
1
1
  import { connectSignal } from '@flighthq/signals/contract';
2
- import { createTween } from './tween';
2
+ import { addTweenToManager, makeTween } from './internal';
3
3
  /**
4
4
  * Tween a packed 0xRRGGBB color property on target.
5
5
  * Components are interpolated in float space; the composed value written on each
@@ -12,11 +12,12 @@ export function createColorTween(manager, target, property, duration, toColor, o
12
12
  g: (fromColor >> 8) & 0xff,
13
13
  r: (fromColor >> 16) & 0xff,
14
14
  };
15
- const tween = createTween(manager, components, duration, {
15
+ const tween = makeTween(components, duration, {
16
16
  b: toColor & 0xff,
17
17
  g: (toColor >> 8) & 0xff,
18
18
  r: (toColor >> 16) & 0xff,
19
- }, options);
19
+ }, options, manager.defaultEase);
20
+ addTweenToManager(manager, tween, options?.overwrite ?? true, target, [property]);
20
21
  connectSignal(tween.onUpdate, () => {
21
22
  target[property] =
22
23
  ((Math.round(components.r) & 0xff) << 16) |
@@ -1 +1 @@
1
- {"version":3,"file":"colorTween.js","sourceRoot":"","sources":["../src/colorTween.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAqB,EACrB,MAA8B,EAC9B,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,OAAgC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAoB;QAClC,CAAC,EAAE,SAAS,GAAG,IAAI;QACnB,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;KAC5B,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CACvB,OAAO,EACP,UAAU,EACV,QAAQ,EACR;QACE,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI;QACxB,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI;KAC1B,EACD,OAAO,CACR,CAAC;IACF,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,QAAQ,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"colorTween.js","sourceRoot":"","sources":["../src/colorTween.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI1D;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAqB,EACrB,MAA8B,EAC9B,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,OAAgC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAoB;QAClC,CAAC,EAAE,SAAS,GAAG,IAAI;QACnB,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI;QAC1B,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;KAC5B,CAAC;IACF,MAAM,KAAK,GAAG,SAAS,CACrB,UAAU,EACV,QAAQ,EACR;QACE,CAAC,EAAE,OAAO,GAAG,IAAI;QACjB,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI;QACxB,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,IAAI;KAC1B,EACD,OAAO,EACP,OAAO,CAAC,WAAW,CACpB,CAAC;IACF,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,QAAQ,CAAC;YACd,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +1,6 @@
1
- import type { Tween } from '@flighthq/types/contract';
1
+ import type { EasingFunction, NumericProps, Tween, TweenManager, TweenOptions } from '@flighthq/types/contract';
2
+ export declare function addTweenToManager<T extends object>(manager: TweenManager, tween: Tween<T>, overwrite: boolean, registrationTarget?: object, registrationPropertyKeys?: readonly string[]): void;
3
+ export declare function hasTweenProperty<T extends object>(tween: Tween<T>, key: string): boolean;
2
4
  export declare function initializeTween<T extends object>(tween: Tween<T>): void;
5
+ export declare function makeTween<T extends object>(target: T, duration: number, propertyMap: Readonly<NumericProps<T>>, options: Readonly<TweenOptions> | undefined, defaultEase: EasingFunction): Tween<T>;
3
6
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAevE"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,SAAS,EAAE,OAAO,EAClB,kBAAkB,GAAE,MAAqB,EACzC,wBAAwB,CAAC,EAAE,SAAS,MAAM,EAAE,GAC3C,IAAI,CAiCN;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIxF;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAevE;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACxC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,EAC3C,WAAW,EAAE,cAAc,GAC1B,KAAK,CAAC,CAAC,CAAC,CAwBV"}
package/dist/internal.js CHANGED
@@ -1,3 +1,45 @@
1
+ import { createSignal } from '@flighthq/signals/contract';
2
+ export function addTweenToManager(manager, tween, overwrite, registrationTarget = tween.target, registrationPropertyKeys) {
3
+ if (registrationPropertyKeys !== undefined) {
4
+ _registrationPropertyKeys.set(tween, registrationPropertyKeys);
5
+ }
6
+ let list = manager.tweens.get(registrationTarget);
7
+ if (list === undefined) {
8
+ list = [];
9
+ manager.tweens.set(registrationTarget, list);
10
+ }
11
+ if (overwrite) {
12
+ for (let i = list.length - 1; i >= 0; i--) {
13
+ const existing = list[i];
14
+ let overlaps = false;
15
+ if (registrationPropertyKeys === undefined) {
16
+ for (const detail of tween.properties) {
17
+ if (hasTweenProperty(existing, detail.key)) {
18
+ overlaps = true;
19
+ break;
20
+ }
21
+ }
22
+ }
23
+ else {
24
+ for (const key of registrationPropertyKeys) {
25
+ if (hasTweenProperty(existing, key)) {
26
+ overlaps = true;
27
+ break;
28
+ }
29
+ }
30
+ }
31
+ if (overlaps)
32
+ existing.complete = true;
33
+ }
34
+ }
35
+ list.push(tween);
36
+ }
37
+ export function hasTweenProperty(tween, key) {
38
+ const registrationPropertyKeys = _registrationPropertyKeys.get(tween);
39
+ if (registrationPropertyKeys !== undefined)
40
+ return registrationPropertyKeys.includes(key);
41
+ return key in tween.propertyMap;
42
+ }
1
43
  export function initializeTween(tween) {
2
44
  const target = tween.target;
3
45
  const propertyMap = tween.propertyMap;
@@ -15,4 +57,33 @@ export function initializeTween(tween) {
15
57
  }
16
58
  tween.initialized = true;
17
59
  }
60
+ export function makeTween(target, duration, propertyMap, options, defaultEase) {
61
+ const keys = Object.keys(propertyMap);
62
+ const properties = keys.map((key) => ({ change: 0, key, start: 0 }));
63
+ return {
64
+ complete: false,
65
+ delay: options?.delay ?? 0,
66
+ duration,
67
+ ease: options?.ease ?? defaultEase,
68
+ elapsed: 0,
69
+ initialized: false,
70
+ onComplete: createSignal(),
71
+ onRepeat: createSignal(),
72
+ onUpdate: createSignal(),
73
+ onYoyo: createSignal(),
74
+ paused: false,
75
+ properties,
76
+ propertyMap,
77
+ reflect: options?.reflect ?? false,
78
+ repeat: options?.repeat ?? 0,
79
+ reverse: options?.reverse ?? false,
80
+ smartRotation: options?.smartRotation ?? false,
81
+ snapping: options?.snapping ?? false,
82
+ target,
83
+ };
84
+ }
85
+ // Proxy-backed tweens interpolate against their private target while manager operations address the
86
+ // caller's property. The weak key keeps that registration identity attached to the tween without
87
+ // widening the public Tween shape or retaining completed tweens.
88
+ const _registrationPropertyKeys = new WeakMap();
18
89
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAmB,KAAe;IAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAgC,CAAC;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAqC,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YACjD,IAAI,MAAM,GAAG,GAAG;gBAAE,MAAM,IAAI,GAAG,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../src/tween.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,YAAY,EACZ,gBAAgB,EAChB,KAAK,EACL,YAAY,EACZ,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAKlC,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI,CAQN;AAMD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,CAAC,CAAC,CAAC;AACZ,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,CAAC,CAAC,CAAC;AAiCZ,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAIjE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAExF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG1E;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAO7E;AAkCD,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAI1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAElD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIvE;AAyBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAI3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAEnD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAI/F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAkBvF;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,IAAI,CAoBN"}
1
+ {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../src/tween.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI,CAQN;AAMD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,CAAC,CAAC,CAAC;AACZ,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACtC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC/B,KAAK,CAAC,CAAC,CAAC,CAAC;AAiCZ,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAIjE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,CAExF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG1E;AAMD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAM7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAI1D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAElD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIvE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAI3D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAEnD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAI/F;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAkBvF;AAED,wBAAgB,UAAU,CACxB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,IAAI,CAmBN"}
package/dist/tween.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { createSignal, emitSignal } from '@flighthq/signals/contract';
3
- import { initializeTween } from './internal';
2
+ import { emitSignal } from '@flighthq/signals/contract';
3
+ import { addTweenToManager, hasTweenProperty, initializeTween, makeTween } from './internal';
4
4
  import { defaultManager } from './tweenManager';
5
5
  export function applyTween(manager, target, propertyMap) {
6
6
  stopTweens(manager, target, propertyMap);
@@ -33,7 +33,7 @@ export function createTween(managerOrTarget, targetOrDuration, durationOrProps,
33
33
  options = propsOrOptions;
34
34
  }
35
35
  const tween = makeTween(target, duration, propertyMap, options, manager.defaultEase);
36
- registerTween(manager, tween, options?.overwrite ?? true);
36
+ addTweenToManager(manager, tween, options?.overwrite ?? true);
37
37
  return tween;
38
38
  }
39
39
  export function getActiveTweenCount(manager) {
@@ -55,37 +55,11 @@ function isTweenManager(value) {
55
55
  export function killTweensOfProperty(manager, key) {
56
56
  for (const list of manager.tweens.values()) {
57
57
  for (const tween of list) {
58
- const p = tween.propertyMap;
59
- if (key in p)
58
+ if (hasTweenProperty(tween, key))
60
59
  tween.complete = true;
61
60
  }
62
61
  }
63
62
  }
64
- function makeTween(target, duration, propertyMap, options, defaultEase) {
65
- const keys = Object.keys(propertyMap);
66
- const properties = keys.map((key) => ({ change: 0, key, start: 0 }));
67
- return {
68
- complete: false,
69
- delay: options?.delay ?? 0,
70
- duration,
71
- ease: options?.ease ?? defaultEase,
72
- elapsed: 0,
73
- initialized: false,
74
- onComplete: createSignal(),
75
- onRepeat: createSignal(),
76
- onUpdate: createSignal(),
77
- onYoyo: createSignal(),
78
- paused: false,
79
- properties,
80
- propertyMap,
81
- reflect: options?.reflect ?? false,
82
- repeat: options?.repeat ?? 0,
83
- reverse: options?.reverse ?? false,
84
- smartRotation: options?.smartRotation ?? false,
85
- snapping: options?.snapping ?? false,
86
- target,
87
- };
88
- }
89
63
  export function pauseAllTweens(manager) {
90
64
  for (const list of manager.tweens.values()) {
91
65
  for (const tween of list)
@@ -102,29 +76,6 @@ export function pauseTweens(manager, target) {
102
76
  for (const tween of list)
103
77
  tween.paused = true;
104
78
  }
105
- function registerTween(manager, tween, overwrite) {
106
- let list = manager.tweens.get(tween.target);
107
- if (list === undefined) {
108
- list = [];
109
- manager.tweens.set(tween.target, list);
110
- }
111
- if (overwrite) {
112
- for (let i = list.length - 1; i >= 0; i--) {
113
- const existing = list[i];
114
- const existingMap = existing.propertyMap;
115
- let overlaps = false;
116
- for (const detail of tween.properties) {
117
- if (detail.key in existingMap) {
118
- overlaps = true;
119
- break;
120
- }
121
- }
122
- if (overlaps)
123
- existing.complete = true;
124
- }
125
- }
126
- list.push(tween);
127
- }
128
79
  export function resetAllTweens(manager) {
129
80
  manager.tweens.clear();
130
81
  }
@@ -177,10 +128,9 @@ export function stopTweens(manager, target, propertyMap, options) {
177
128
  for (const tween of list) {
178
129
  if (propertyMap !== undefined) {
179
130
  const p = propertyMap;
180
- const tweenMap = tween.propertyMap;
181
131
  let overlaps = false;
182
132
  for (const key of Object.keys(p)) {
183
- if (key in tweenMap) {
133
+ if (hasTweenProperty(tween, key)) {
184
134
  overlaps = true;
185
135
  break;
186
136
  }
package/dist/tween.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tween.js","sourceRoot":"","sources":["../src/tween.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tween.js","sourceRoot":"","sources":["../src/tween.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/tween",
3
- "version": "0.5.1-next.704.19c91ec",
3
+ "version": "0.5.1-next.730.f29a5aa",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,9 +38,9 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/easing": "0.5.1-next.704.19c91ec",
42
- "@flighthq/signals": "0.5.1-next.704.19c91ec",
43
- "@flighthq/types": "0.5.1-next.704.19c91ec"
41
+ "@flighthq/easing": "0.5.1-next.730.f29a5aa",
42
+ "@flighthq/signals": "0.5.1-next.730.f29a5aa",
43
+ "@flighthq/types": "0.5.1-next.730.f29a5aa"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.3.0"
@@ -1,4 +1,5 @@
1
1
  import { createColorTween } from './colorTween';
2
+ import { createTween, getTweensOf, hasTweensOf, killTweensOfProperty, stopTweens } from './tween';
2
3
  import { createTweenManager } from './tweenManager';
3
4
  import { updateTweens } from './updateTweens';
4
5
 
@@ -39,6 +40,34 @@ describe('createColorTween', () => {
39
40
  expect(b).toBeCloseTo(128, 0);
40
41
  });
41
42
 
43
+ it('registers the component proxy against the user target for manager queries and stops', () => {
44
+ const manager = createTweenManager();
45
+ const target = { color: 0xff0000 };
46
+ const tween = createColorTween(manager, target, 'color', 1000, 0x0000ff);
47
+
48
+ expect(getTweensOf(manager, target)).toContain(tween);
49
+ expect(hasTweensOf(manager, target)).toBe(true);
50
+
51
+ stopTweens(manager, target);
52
+ expect(tween.complete).toBe(true);
53
+ });
54
+
55
+ it('registers the user property for overwrite, targeted stop, and property kill', () => {
56
+ const manager = createTweenManager();
57
+ const target = { color: 0xff0000 };
58
+ const numericTween = createTween(manager, target, 1000, { color: 0x00ff00 });
59
+ const colorTween = createColorTween(manager, target, 'color', 1000, 0x0000ff);
60
+
61
+ expect(numericTween.complete).toBe(true);
62
+
63
+ stopTweens(manager, target, { color: 0 });
64
+ expect(colorTween.complete).toBe(true);
65
+
66
+ const nextColorTween = createColorTween(manager, target, 'color', 1000, 0xffffff);
67
+ killTweensOfProperty(manager, 'color');
68
+ expect(nextColorTween.complete).toBe(true);
69
+ });
70
+
42
71
  it('does not affect the target before any update', () => {
43
72
  const manager = createTweenManager();
44
73
  const target = { color: 0xabcdef };