@rafaelaugusto/jolt 0.1.0-beta.15 → 0.1.0-beta.17
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 +9 -2
- package/dist/bottom-sheet/geometry.d.ts +18 -0
- package/dist/bottom-sheet/geometry.d.ts.map +1 -0
- package/dist/bottom-sheet/geometry.js +51 -0
- package/dist/bottom-sheet/geometry.js.map +1 -0
- package/dist/bottom-sheet/index.d.ts +56 -0
- package/dist/bottom-sheet/index.d.ts.map +1 -0
- package/dist/bottom-sheet/index.js +462 -0
- package/dist/bottom-sheet/index.js.map +1 -0
- package/dist/bottom-sheet/native.d.ts +11 -0
- package/dist/bottom-sheet/native.d.ts.map +1 -0
- package/dist/bottom-sheet/native.js +173 -0
- package/dist/bottom-sheet/native.js.map +1 -0
- package/dist/drag.js +1 -1
- package/dist/drag.js.map +1 -1
- package/dist/driver/android.d.ts.map +1 -1
- package/dist/driver/android.js +2 -0
- package/dist/driver/android.js.map +1 -1
- package/dist/driver/ios-scroll-delegate.d.ts +4 -0
- package/dist/driver/ios-scroll-delegate.d.ts.map +1 -0
- package/dist/driver/ios-scroll-delegate.js +26 -0
- package/dist/driver/ios-scroll-delegate.js.map +1 -0
- package/dist/driver/ios.d.ts.map +1 -1
- package/dist/driver/ios.js +2 -0
- package/dist/driver/ios.js.map +1 -1
- package/dist/gesture-native.d.ts +28 -0
- package/dist/gesture-native.d.ts.map +1 -0
- package/dist/gesture-native.js +61 -0
- package/dist/gesture-native.js.map +1 -0
- package/dist/gestures/index.d.ts +69 -0
- package/dist/gestures/index.d.ts.map +1 -0
- package/dist/gestures/index.js +262 -0
- package/dist/gestures/index.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/live-spring-driver.d.ts +52 -0
- package/dist/live-spring-driver.d.ts.map +1 -0
- package/dist/live-spring-driver.js +104 -0
- package/dist/live-spring-driver.js.map +1 -0
- package/dist/mixer.d.ts +6 -0
- package/dist/mixer.d.ts.map +1 -1
- package/dist/mixer.js +41 -1
- package/dist/mixer.js.map +1 -1
- package/dist/motion-value.d.ts +34 -2
- package/dist/motion-value.d.ts.map +1 -1
- package/dist/motion-value.js +277 -10
- package/dist/motion-value.js.map +1 -1
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +1 -0
- package/dist/native/index.js.map +1 -1
- package/dist/native-property.d.ts +2 -0
- package/dist/native-property.d.ts.map +1 -1
- package/dist/native-property.js +12 -4
- package/dist/native-property.js.map +1 -1
- package/dist/reorder/handle.d.ts +6 -0
- package/dist/reorder/handle.d.ts.map +1 -0
- package/dist/reorder/handle.js +10 -0
- package/dist/reorder/handle.js.map +1 -0
- package/dist/reorder/index.d.ts +10 -0
- package/dist/reorder/index.d.ts.map +1 -0
- package/dist/reorder/index.js +233 -0
- package/dist/reorder/index.js.map +1 -0
- package/dist/reorder/list-view.d.ts +5 -0
- package/dist/reorder/list-view.d.ts.map +1 -0
- package/dist/reorder/list-view.js +238 -0
- package/dist/reorder/list-view.js.map +1 -0
- package/dist/reorder/model.d.ts +6 -0
- package/dist/reorder/model.d.ts.map +1 -0
- package/dist/reorder/model.js +30 -0
- package/dist/reorder/model.js.map +1 -0
- package/dist/reorder/surface.d.ts +6 -0
- package/dist/reorder/surface.d.ts.map +1 -0
- package/dist/reorder/surface.js +10 -0
- package/dist/reorder/surface.js.map +1 -0
- package/dist/reorder/types.d.ts +92 -0
- package/dist/reorder/types.d.ts.map +1 -0
- package/dist/reorder/types.js +2 -0
- package/dist/reorder/types.js.map +1 -0
- package/dist/scene-shader.d.ts +18 -0
- package/dist/scene-shader.d.ts.map +1 -0
- package/dist/scene-shader.js +76 -0
- package/dist/scene-shader.js.map +1 -0
- package/dist/value-observers.d.ts +3 -1
- package/dist/value-observers.d.ts.map +1 -1
- package/dist/value-observers.js +10 -2
- package/dist/value-observers.js.map +1 -1
- package/package.json +13 -1
- package/platforms/android/include.gradle +9 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSession.java +198 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSurface.java +53 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/LiveSpring.java +270 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderHandle.java +25 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSession.java +213 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ReorderSurface.java +27 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SpringState.java +39 -0
- package/platforms/android/proguard-rules.pro +5 -0
- package/platforms/ios/src/JoltGestureSession.h +18 -0
- package/platforms/ios/src/JoltGestureSession.m +222 -0
- package/platforms/ios/src/JoltLiveSpring.h +28 -0
- package/platforms/ios/src/JoltLiveSpring.m +236 -0
- package/platforms/ios/src/JoltReorderSession.h +15 -0
- package/platforms/ios/src/JoltReorderSession.m +205 -0
- package/platforms/ios/src/JoltSpringState.h +35 -0
- package/platforms/ios/src/module.modulemap +3 -0
- package/src/android-plugin.d.ts +93 -0
- package/src/bottom-sheet/geometry.ts +84 -0
- package/src/bottom-sheet/index.ts +536 -0
- package/src/bottom-sheet/native.ts +214 -0
- package/src/drag.ts +1 -1
- package/src/driver/android.ts +2 -0
- package/src/driver/ios-scroll-delegate.ts +23 -0
- package/src/driver/ios.ts +2 -0
- package/src/gesture-native.ts +139 -0
- package/src/gestures/index.ts +365 -0
- package/src/index.ts +3 -1
- package/src/ios-plugin.d.ts +90 -0
- package/src/live-spring-driver.ts +181 -0
- package/src/mixer.ts +43 -1
- package/src/motion-value.ts +318 -11
- package/src/native/index.ts +6 -0
- package/src/native-property.ts +17 -4
- package/src/reorder/handle.ts +9 -0
- package/src/reorder/index.ts +243 -0
- package/src/reorder/list-view.ts +262 -0
- package/src/reorder/model.ts +47 -0
- package/src/reorder/surface.ts +10 -0
- package/src/reorder/types.ts +87 -0
- package/src/scene-shader.ts +139 -0
- package/src/value-observers.ts +12 -2
package/dist/mixer.js
CHANGED
|
@@ -51,6 +51,7 @@ export function mixFor(view, property) {
|
|
|
51
51
|
export class Mix {
|
|
52
52
|
view;
|
|
53
53
|
property;
|
|
54
|
+
live;
|
|
54
55
|
rests = new Map();
|
|
55
56
|
channels = new Map();
|
|
56
57
|
native;
|
|
@@ -61,9 +62,22 @@ export class Mix {
|
|
|
61
62
|
this.rests.set(BASE, readValue(view, property));
|
|
62
63
|
}
|
|
63
64
|
rest(key) {
|
|
65
|
+
if (key === BASE && this.live)
|
|
66
|
+
return this.live.read();
|
|
64
67
|
return (this.rests.get(key) ??
|
|
65
68
|
(key === BASE ? readValue(this.view, this.property) : identity(this.property)));
|
|
66
69
|
}
|
|
70
|
+
attachLive(base) {
|
|
71
|
+
this.live = base;
|
|
72
|
+
this.compose();
|
|
73
|
+
return () => {
|
|
74
|
+
if (this.live !== base)
|
|
75
|
+
return;
|
|
76
|
+
this.rests.set(BASE, base.read());
|
|
77
|
+
this.live = undefined;
|
|
78
|
+
this.compose();
|
|
79
|
+
};
|
|
80
|
+
}
|
|
67
81
|
setRest(key, value) {
|
|
68
82
|
this.rests.set(key, value);
|
|
69
83
|
this.compose();
|
|
@@ -163,6 +177,32 @@ export class Mix {
|
|
|
163
177
|
const instance = ++this.generation;
|
|
164
178
|
const previous = this.native;
|
|
165
179
|
this.native = undefined;
|
|
180
|
+
if (this.live) {
|
|
181
|
+
if (previous !== undefined)
|
|
182
|
+
driver.stop(this.view, previous);
|
|
183
|
+
const layers = [];
|
|
184
|
+
for (const key of new Set([...this.rests.keys(), ...this.channels.keys()])) {
|
|
185
|
+
if (key === BASE)
|
|
186
|
+
continue;
|
|
187
|
+
const channel = this.channels.get(key);
|
|
188
|
+
const value = this.part(key, now, now);
|
|
189
|
+
const track = channel?.track;
|
|
190
|
+
layers.push({
|
|
191
|
+
value,
|
|
192
|
+
running: !!channel && !channel.paused,
|
|
193
|
+
elapsed: this.elapsed(key, now),
|
|
194
|
+
duration: track?.duration ?? 0,
|
|
195
|
+
delay: track?.delay ?? 0,
|
|
196
|
+
repeat: track ? (Number.isFinite(track.repeat) ? track.repeat : -1) : 0,
|
|
197
|
+
reverse: track?.reverse ?? false,
|
|
198
|
+
to: track?.to ?? value,
|
|
199
|
+
times: track?.times ?? [],
|
|
200
|
+
values: track?.values ?? [],
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
this.live.layers(layers);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
166
206
|
let finite = 0;
|
|
167
207
|
const periods = [];
|
|
168
208
|
for (const [key, channel] of this.channels) {
|
|
@@ -215,7 +255,7 @@ export class Mix {
|
|
|
215
255
|
});
|
|
216
256
|
}
|
|
217
257
|
dissolve() {
|
|
218
|
-
if (this.channels.size)
|
|
258
|
+
if (this.live || this.channels.size)
|
|
219
259
|
return;
|
|
220
260
|
for (const [key, value] of this.rests)
|
|
221
261
|
if (key !== BASE && value !== identity(this.property))
|
package/dist/mixer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixer.js","sourceRoot":"","sources":["../src/mixer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mixer.js","sourceRoot":"","sources":["../src/mixer.ts"],"names":[],"mappings":"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"}
|
package/dist/motion-value.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Color, type View } from '@nativescript/core';
|
|
2
2
|
import { type ColorValue } from './color.js';
|
|
3
|
+
import { type SpringParams } from './spring.js';
|
|
4
|
+
import { type LiveNode, type LiveMapping } from './live-spring-driver.js';
|
|
3
5
|
import { ViewAnimation, type Animation, type Plan } from './engine.js';
|
|
4
6
|
import { type Property } from './properties.js';
|
|
5
7
|
import { type Track } from './track.js';
|
|
@@ -48,13 +50,15 @@ interface Binding {
|
|
|
48
50
|
readonly root: Root;
|
|
49
51
|
readonly read: (value: number) => number;
|
|
50
52
|
animation?: ViewAnimation;
|
|
53
|
+
cleanup?: () => void;
|
|
51
54
|
sync(): void;
|
|
52
55
|
}
|
|
53
56
|
declare class Derived {
|
|
54
57
|
private readonly source;
|
|
55
58
|
readonly read: (value: number) => number;
|
|
56
59
|
readonly color: boolean;
|
|
57
|
-
|
|
60
|
+
readonly mappings: readonly LiveMapping[];
|
|
61
|
+
constructor(source: Root | undefined, read: (value: number) => number, color: boolean, mappings?: readonly LiveMapping[]);
|
|
58
62
|
get root(): Root;
|
|
59
63
|
get(): number | Color;
|
|
60
64
|
subscribe(listener: ValueListener<number | Color>, options?: SubscribeOptions): () => void;
|
|
@@ -77,7 +81,7 @@ declare class Root extends Derived {
|
|
|
77
81
|
private velocity;
|
|
78
82
|
animate(target: number | readonly (number | null)[], transition?: ValueAnimationOptions | SpringName): PlaybackAnimation;
|
|
79
83
|
/** Plays a track sampled in the value's own units, such as a drag release. */
|
|
80
|
-
|
|
84
|
+
playTrack(track: Track): PlaybackAnimation;
|
|
81
85
|
private jump;
|
|
82
86
|
private start;
|
|
83
87
|
set(value: number): void;
|
|
@@ -96,6 +100,34 @@ declare class Root extends Derived {
|
|
|
96
100
|
get running(): boolean;
|
|
97
101
|
private halt;
|
|
98
102
|
}
|
|
103
|
+
export interface SpringValueOptions extends SpringParams {
|
|
104
|
+
/** Initial follower position. Defaults to the source's current value. */
|
|
105
|
+
initial?: number;
|
|
106
|
+
/** Absolute source units. Defaults to 0.001. */
|
|
107
|
+
restDelta?: number;
|
|
108
|
+
/** Source units per second. Defaults to 0.01. */
|
|
109
|
+
restSpeed?: number;
|
|
110
|
+
}
|
|
111
|
+
/** A retained native follower. Settling does not dispose its source subscription. */
|
|
112
|
+
export interface SpringValue extends DerivedValue {
|
|
113
|
+
readonly disposed: boolean;
|
|
114
|
+
readonly moving: boolean;
|
|
115
|
+
readonly paused: boolean;
|
|
116
|
+
/** Hold position and velocity while retaining the current source target. */
|
|
117
|
+
pause(): void;
|
|
118
|
+
/** Resume from the held state toward the current source. */
|
|
119
|
+
play(): void;
|
|
120
|
+
/** Current velocity in source units per second. */
|
|
121
|
+
getVelocity(): number;
|
|
122
|
+
dispose(): void;
|
|
123
|
+
}
|
|
124
|
+
/** Follow changing targets without rebuilding sampled animation tracks. Dispose with the owning scope. */
|
|
125
|
+
export declare function springValue(source: DerivedValue, options?: SpringValueOptions): SpringValue;
|
|
126
|
+
/** Internal boundary notification for values driven directly by native input. */
|
|
127
|
+
export declare function liveValueInput(value: DerivedValue): {
|
|
128
|
+
node: LiveNode;
|
|
129
|
+
changed: () => void;
|
|
130
|
+
};
|
|
99
131
|
/**
|
|
100
132
|
* A number that animates natively and drives the view properties bound to it.
|
|
101
133
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion-value.d.ts","sourceRoot":"","sources":["../src/motion-value.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"motion-value.d.ts","sourceRoot":"","sources":["../src/motion-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIL,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAE9D,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAA;AAOhC,OAAO,EAAqB,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,aAAa,CAAA;AAEzF,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACjF,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAClE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAkB,KAAK,iBAAiB,EAAsB,MAAM,eAAe,CAAA;AAG1F,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,4EAA4E;AAC5E,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnE,OAAO,CAAC,MAAM,gBAAgB,EAAE,OAAO,MAAM,CAAA;AAE7C,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,GAAG,IAAI,MAAM,CAAA;IACb,0FAA0F;IAC1F,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAA;IAClF,4FAA4F;IAC5F,EAAE,CACA,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,UAAU,GACnB,YAAY,CAAA;IACf,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,YAAY,CAAA;CAC1E;AAED,4FAA4F;AAC5F,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,KAAK,CAAA;IACZ,4EAA4E;IAC5E,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAAA;CAClF;AAED,kFAAkF;AAClF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAA;CAClC;AAED,KAAK,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,OAAO,CAAA;AAC3D,MAAM,MAAM,QAAQ,GAAG;KACpB,CAAC,IAAI,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY;CAC1D,GAAG;KAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY;CAAE,CAAA;AAEtC,UAAU,OAAO;IACf,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACxC,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,IAAI,IAAI,CAAA;CACb;AAeD,cAAM,OAAO;IAET,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE;IAJ3C,YACmB,MAAM,EAAE,IAAI,GAAG,SAAS,EAChC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,SAAS,WAAW,EAAO,EAC5C;IAEJ,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,GAAG,IAAI,MAAM,GAAG,KAAK,CAGpB;IAED,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,cAE5E;IAED,EAAE,CACA,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,EACxC,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAuBT;CACF;AAED,cAAM,IAAK,SAAQ,OAAO;IACxB,QAAQ,CAAC,QAAQ,eAAqB;IACtC,QAAQ,CAAC,SAAS,YAAiB,IAAI,EAAG;IAC1C,QAAQ,CAAC,SAAS,iBAGjB;IACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAyB;IAC9C,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,YAAY,OAAO,EAAE,MAAM,EAK1B;IAED,GAAG,CAAC,IAAI,SAAoB,GAAG,MAAM,CAKpC;IAED,gFAAgF;IAChF,IAAI,IAAI,MAAM,CAEb;IAED,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAMhB,OAAO,CACL,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAC3C,UAAU,GAAE,qBAAqB,GAAG,UAAe,GAClD,iBAAiB,CA+BnB;IAED,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAGzC;IAED,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,KAAK;IAkCb,GAAG,CAAC,KAAK,EAAE,MAAM,QAOhB;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,QAMpB;IAED,QAAQ,SAEP;IAED,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,QAQlB;IAED,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,IAAI;IAqCZ,SAAS,CAAC,OAAO,SAIhB;IAED,2EAA2E;IAC3E,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD3B;IAED,0FAA0F;IAC1F,WAAW,IAAI,MAAM,MAAM,CAG1B;IAED,OAAO,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,IAAI;CAMb;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,4EAA4E;IAC5E,KAAK,IAAI,IAAI,CAAA;IACb,4DAA4D;IAC5D,IAAI,IAAI,IAAI,CAAA;IACZ,mDAAmD;IACnD,WAAW,IAAI,MAAM,CAAA;IACrB,OAAO,IAAI,IAAI,CAAA;CAChB;AA8JD,0GAA0G;AAC1G,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAMb;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY;IAIvC,IAAI;IAAa,OAAO;EAClC;AAeD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,SAAI,GAAG,WAAW,CAEpD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAEpE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI,CA2CvF;AAkHD,+FAA+F;AAC/F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAMnE;AAoFD,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO;;kBAv0BpD,MAAM,KAAK,MAAM;;QAk1BpC,KAAK;QAEL,OAAO;QACP,IAAI,QAjhBW,MAAM;QAkhBrB,OAAO;QACP,KAAK;;wBAGW,MAAM,IAAI;EAOjC;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,GAAG,YAAY,CAE9E;AAED,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY;IAK9C,QAAQ;QAEJ,KAAK;QACL,OAAO;QACP,MAAM;QACN,OAAO;QACP,KAAK;;IAGT,SAAS,WAAW,MAAM,IAAI;EAOjC;AAUD,iGAAiG;AACjG,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,QAAQ,EAAE,QAOzE;AA2DD,iFAAiF;AACjF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,oGAAoG;IACpG,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IACjD,wDAAwD;IACxD,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,EAC1B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAO,GACjC,WAAW,CAiCb"}
|
package/dist/motion-value.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { Color, ScrollView, } from '@nativescript/core';
|
|
1
|
+
import { Application, Color, ScrollView, } from '@nativescript/core';
|
|
2
2
|
import { toViews } from './animate.js';
|
|
3
3
|
import { colorMixer, isColorProperty, parseColor, validateColorTarget, } from './color.js';
|
|
4
|
-
import { reducedMotion } from './config.js';
|
|
4
|
+
import { onReducedMotion, reducedMotion, timeScale } from './config.js';
|
|
5
|
+
import { springPhysics } from './spring.js';
|
|
6
|
+
import { mixFor } from './mixer.js';
|
|
7
|
+
import { liveSpringDriver, syncLiveSprings, } from './live-spring-driver.js';
|
|
5
8
|
import { clampDecoration, isDecorationProperty, validateDecorationTarget, } from './decoration.js';
|
|
6
9
|
import { getDriver } from './driver/index.js';
|
|
7
10
|
import { setBase, stopBase, ViewAnimation } from './engine.js';
|
|
@@ -18,10 +21,12 @@ class Derived {
|
|
|
18
21
|
source;
|
|
19
22
|
read;
|
|
20
23
|
color;
|
|
21
|
-
|
|
24
|
+
mappings;
|
|
25
|
+
constructor(source, read, color, mappings = []) {
|
|
22
26
|
this.source = source;
|
|
23
27
|
this.read = read;
|
|
24
28
|
this.color = color;
|
|
29
|
+
this.mappings = mappings;
|
|
25
30
|
}
|
|
26
31
|
get root() {
|
|
27
32
|
return this.source ?? this;
|
|
@@ -37,14 +42,25 @@ class Derived {
|
|
|
37
42
|
if (this.color)
|
|
38
43
|
throw new TypeError('A color cannot be mapped again.');
|
|
39
44
|
const map = mapping(input, output, options);
|
|
45
|
+
if (this.root instanceof SpringRoot && map.color)
|
|
46
|
+
throw new TypeError('Live spring bindings currently support numeric transforms and opacity.');
|
|
40
47
|
const read = this.read;
|
|
41
|
-
return new Derived(this.root, (value) => map.read(read(value)), map.color
|
|
48
|
+
return new Derived(this.root, (value) => map.read(read(value)), map.color, map.color
|
|
49
|
+
? []
|
|
50
|
+
: [
|
|
51
|
+
...this.mappings,
|
|
52
|
+
{
|
|
53
|
+
input: [...map.input],
|
|
54
|
+
output: [...map.numbers],
|
|
55
|
+
clamp: options?.clamp !== false,
|
|
56
|
+
},
|
|
57
|
+
]);
|
|
42
58
|
}
|
|
43
59
|
}
|
|
44
60
|
class Root extends Derived {
|
|
45
61
|
bindings = new Set();
|
|
46
62
|
listeners = new Set();
|
|
47
|
-
observers = new ValueObservers((time) => this.raw(time));
|
|
63
|
+
observers = new ValueObservers((time) => this.raw(time), () => this.running);
|
|
48
64
|
rests = new Map();
|
|
49
65
|
runs = new Map();
|
|
50
66
|
presentation;
|
|
@@ -105,7 +121,7 @@ class Root extends Derived {
|
|
|
105
121
|
: this.start(track, base, span, key);
|
|
106
122
|
}
|
|
107
123
|
/** Plays a track sampled in the value's own units, such as a drag release. */
|
|
108
|
-
|
|
124
|
+
playTrack(track) {
|
|
109
125
|
this.halt('');
|
|
110
126
|
return track.end === 0 ? this.jump(track.to, '') : this.start(track, 0, 1, '');
|
|
111
127
|
}
|
|
@@ -303,6 +319,178 @@ class Root extends Derived {
|
|
|
303
319
|
run.animation.stop();
|
|
304
320
|
}
|
|
305
321
|
}
|
|
322
|
+
class SpringRoot extends Root {
|
|
323
|
+
node;
|
|
324
|
+
releaseSource = () => { };
|
|
325
|
+
releaseReduced = () => { };
|
|
326
|
+
ended = false;
|
|
327
|
+
held = false;
|
|
328
|
+
background = false;
|
|
329
|
+
suspend = () => {
|
|
330
|
+
this.background = true;
|
|
331
|
+
this.updatePause();
|
|
332
|
+
};
|
|
333
|
+
resume = () => {
|
|
334
|
+
this.background = false;
|
|
335
|
+
this.updatePause();
|
|
336
|
+
};
|
|
337
|
+
constructor(source, options) {
|
|
338
|
+
const initial = options.initial ?? source.get();
|
|
339
|
+
const instant = options.duration === 0;
|
|
340
|
+
const params = springPhysics(instant ? { ...options, duration: undefined } : options);
|
|
341
|
+
const speed = timeScale();
|
|
342
|
+
const physics = {
|
|
343
|
+
stiffness: params.stiffness * speed * speed,
|
|
344
|
+
damping: params.damping * speed,
|
|
345
|
+
mass: params.mass,
|
|
346
|
+
restDelta: options.restDelta ?? 0.001,
|
|
347
|
+
restSpeed: options.restSpeed ?? 0.01,
|
|
348
|
+
};
|
|
349
|
+
for (const [key, value] of Object.entries(physics))
|
|
350
|
+
if (!Number.isFinite(value) || (key === 'damping' ? value < 0 : value <= 0))
|
|
351
|
+
throw new RangeError(`Invalid springValue ${key}: ${value}.`);
|
|
352
|
+
if (options.duration !== undefined &&
|
|
353
|
+
(!Number.isFinite(options.duration) || options.duration < 0))
|
|
354
|
+
throw new RangeError('springValue duration must be finite and nonnegative.');
|
|
355
|
+
if (options.bounce !== undefined && !Number.isFinite(options.bounce))
|
|
356
|
+
throw new RangeError('springValue bounce must be finite.');
|
|
357
|
+
super(initial);
|
|
358
|
+
this.node = liveSpringDriver().create(initial, physics, instant || reducedMotion());
|
|
359
|
+
const root = source.root;
|
|
360
|
+
try {
|
|
361
|
+
let update;
|
|
362
|
+
if (root instanceof SpringRoot) {
|
|
363
|
+
if (root.disposed)
|
|
364
|
+
throw new Error('Cannot follow a disposed spring value.');
|
|
365
|
+
this.node.follow(root.node, source.mappings);
|
|
366
|
+
update = () => this.notify();
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
const playback = valuePlayback(source);
|
|
370
|
+
update = () => {
|
|
371
|
+
if (!root.running) {
|
|
372
|
+
this.node.update({
|
|
373
|
+
value: source.get(),
|
|
374
|
+
running: false,
|
|
375
|
+
elapsed: 0,
|
|
376
|
+
duration: 0,
|
|
377
|
+
delay: 0,
|
|
378
|
+
repeat: 0,
|
|
379
|
+
reverse: false,
|
|
380
|
+
to: 0,
|
|
381
|
+
times: [],
|
|
382
|
+
values: [],
|
|
383
|
+
});
|
|
384
|
+
this.notify();
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
const { track, elapsed, running, value } = playback.snapshot();
|
|
388
|
+
this.node.update({
|
|
389
|
+
value,
|
|
390
|
+
elapsed,
|
|
391
|
+
running,
|
|
392
|
+
duration: track.duration,
|
|
393
|
+
delay: track.delay,
|
|
394
|
+
repeat: Number.isFinite(track.repeat) ? track.repeat : -1,
|
|
395
|
+
reverse: track.reverse,
|
|
396
|
+
to: track.to,
|
|
397
|
+
times: track.times,
|
|
398
|
+
values: track.values,
|
|
399
|
+
});
|
|
400
|
+
this.notify();
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
root.listeners.add(update);
|
|
404
|
+
this.releaseSource = () => {
|
|
405
|
+
root.listeners.delete(update);
|
|
406
|
+
};
|
|
407
|
+
this.releaseReduced = onReducedMotion((reduced) => {
|
|
408
|
+
this.node.reduced(instant || reduced);
|
|
409
|
+
this.notify();
|
|
410
|
+
});
|
|
411
|
+
Application.on(Application.suspendEvent, this.suspend);
|
|
412
|
+
Application.on(Application.resumeEvent, this.resume);
|
|
413
|
+
update();
|
|
414
|
+
}
|
|
415
|
+
catch (error) {
|
|
416
|
+
this.dispose();
|
|
417
|
+
throw error;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
raw() {
|
|
421
|
+
return this.node?.position() ?? super.raw();
|
|
422
|
+
}
|
|
423
|
+
get running() {
|
|
424
|
+
return !this.ended && (this.node?.moving() ?? false);
|
|
425
|
+
}
|
|
426
|
+
get moving() {
|
|
427
|
+
return this.running;
|
|
428
|
+
}
|
|
429
|
+
get disposed() {
|
|
430
|
+
return this.ended;
|
|
431
|
+
}
|
|
432
|
+
get paused() {
|
|
433
|
+
return this.held;
|
|
434
|
+
}
|
|
435
|
+
pause() {
|
|
436
|
+
if (!this.ended) {
|
|
437
|
+
this.held = true;
|
|
438
|
+
this.updatePause();
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
play() {
|
|
442
|
+
if (!this.ended) {
|
|
443
|
+
this.held = false;
|
|
444
|
+
this.updatePause();
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
updatePause() {
|
|
448
|
+
this.node.paused(this.held || this.background);
|
|
449
|
+
this.notify();
|
|
450
|
+
}
|
|
451
|
+
getVelocity() {
|
|
452
|
+
return this.ended ? 0 : this.node.velocity();
|
|
453
|
+
}
|
|
454
|
+
plan() {
|
|
455
|
+
throw new TypeError('A live spring cannot be sampled as a fixed track. Bind it to transforms or opacity.');
|
|
456
|
+
}
|
|
457
|
+
notify() {
|
|
458
|
+
this.observers.changed(this.running);
|
|
459
|
+
for (const listener of [...this.listeners])
|
|
460
|
+
listener();
|
|
461
|
+
}
|
|
462
|
+
dispose() {
|
|
463
|
+
if (this.ended)
|
|
464
|
+
return;
|
|
465
|
+
this.ended = true;
|
|
466
|
+
this.releaseSource();
|
|
467
|
+
this.releaseReduced();
|
|
468
|
+
Application.off(Application.suspendEvent, this.suspend);
|
|
469
|
+
Application.off(Application.resumeEvent, this.resume);
|
|
470
|
+
for (const binding of [...this.bindings])
|
|
471
|
+
release(binding);
|
|
472
|
+
this.node.dispose();
|
|
473
|
+
this.observers.clear();
|
|
474
|
+
for (const listener of [...this.listeners])
|
|
475
|
+
listener();
|
|
476
|
+
this.listeners.clear();
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
/** Follow changing targets without rebuilding sampled animation tracks. Dispose with the owning scope. */
|
|
480
|
+
export function springValue(source, options = {}) {
|
|
481
|
+
if (!(source instanceof Derived) || source.color)
|
|
482
|
+
throw new TypeError('springValue() needs a numeric Jolt motion value.');
|
|
483
|
+
if (!options || typeof options !== 'object')
|
|
484
|
+
throw new TypeError('springValue() options must be an object.');
|
|
485
|
+
return new SpringRoot(source, options);
|
|
486
|
+
}
|
|
487
|
+
/** Internal boundary notification for values driven directly by native input. */
|
|
488
|
+
export function liveValueInput(value) {
|
|
489
|
+
if (!(value instanceof Derived) || !(value.root instanceof SpringRoot))
|
|
490
|
+
throw new TypeError('Native input requires a live value.');
|
|
491
|
+
const root = value.root;
|
|
492
|
+
return { node: root.node, changed: () => root.notify() };
|
|
493
|
+
}
|
|
306
494
|
function layerName(name) {
|
|
307
495
|
if (typeof name !== 'string' || !name.length)
|
|
308
496
|
throw new TypeError('A layer is named by a nonempty string.');
|
|
@@ -327,7 +515,7 @@ export function motionValue(initial = 0) {
|
|
|
327
515
|
return new Root(initial);
|
|
328
516
|
}
|
|
329
517
|
export function isMotionValue(target) {
|
|
330
|
-
return target instanceof Root;
|
|
518
|
+
return target instanceof Root && !(target instanceof SpringRoot);
|
|
331
519
|
}
|
|
332
520
|
export function asRoot(value) {
|
|
333
521
|
return value;
|
|
@@ -354,6 +542,12 @@ export function bind(target, bindings) {
|
|
|
354
542
|
if (!properties.length)
|
|
355
543
|
throw new Error(`Can't bind "${key}".`);
|
|
356
544
|
for (const property of properties) {
|
|
545
|
+
if (source.root instanceof SpringRoot) {
|
|
546
|
+
if (source.root.disposed)
|
|
547
|
+
throw new Error('Cannot bind a disposed spring value.');
|
|
548
|
+
if (isColorProperty(property) || isDecorationProperty(property))
|
|
549
|
+
throw new TypeError('Live spring bindings currently support numeric transforms and opacity.');
|
|
550
|
+
}
|
|
357
551
|
if (isColorProperty(property) !== source.color)
|
|
358
552
|
throw new TypeError(source.color
|
|
359
553
|
? `"${key}" takes numbers; map the value to numbers.`
|
|
@@ -367,7 +561,17 @@ export function bind(target, bindings) {
|
|
|
367
561
|
validateColorTarget(view, property);
|
|
368
562
|
else if (isDecorationProperty(property))
|
|
369
563
|
validateDecorationTarget(view, property);
|
|
370
|
-
const made =
|
|
564
|
+
const made = [];
|
|
565
|
+
try {
|
|
566
|
+
for (const view of views)
|
|
567
|
+
for (const [property, source] of entries)
|
|
568
|
+
made.push(attach(view, property, source));
|
|
569
|
+
}
|
|
570
|
+
catch (error) {
|
|
571
|
+
for (const cleanup of made.reverse())
|
|
572
|
+
cleanup();
|
|
573
|
+
throw error;
|
|
574
|
+
}
|
|
371
575
|
return () => made.forEach((release) => release());
|
|
372
576
|
}
|
|
373
577
|
function attach(view, property, source) {
|
|
@@ -375,6 +579,8 @@ function attach(view, property, source) {
|
|
|
375
579
|
if (existing)
|
|
376
580
|
release(existing);
|
|
377
581
|
const root = source.root;
|
|
582
|
+
if (root instanceof SpringRoot)
|
|
583
|
+
return attachSpring(view, property, source, root);
|
|
378
584
|
const binding = {
|
|
379
585
|
view,
|
|
380
586
|
property,
|
|
@@ -411,7 +617,13 @@ function attach(view, property, source) {
|
|
|
411
617
|
properties.set(property, binding);
|
|
412
618
|
root.bindings.add(binding);
|
|
413
619
|
view.on('loaded', binding.sync);
|
|
414
|
-
|
|
620
|
+
try {
|
|
621
|
+
binding.sync();
|
|
622
|
+
}
|
|
623
|
+
catch (error) {
|
|
624
|
+
release(binding);
|
|
625
|
+
throw error;
|
|
626
|
+
}
|
|
415
627
|
return () => {
|
|
416
628
|
if (root.bindings.has(binding)) {
|
|
417
629
|
release(binding);
|
|
@@ -419,6 +631,60 @@ function attach(view, property, source) {
|
|
|
419
631
|
}
|
|
420
632
|
};
|
|
421
633
|
}
|
|
634
|
+
function attachSpring(view, property, source, root) {
|
|
635
|
+
let native;
|
|
636
|
+
let releaseMix;
|
|
637
|
+
const detach = () => {
|
|
638
|
+
if (!native)
|
|
639
|
+
return;
|
|
640
|
+
native.cancel();
|
|
641
|
+
releaseMix?.();
|
|
642
|
+
releaseMix = undefined;
|
|
643
|
+
native = undefined;
|
|
644
|
+
syncLiveSprings(view);
|
|
645
|
+
};
|
|
646
|
+
const binding = {
|
|
647
|
+
view,
|
|
648
|
+
property,
|
|
649
|
+
root,
|
|
650
|
+
read: source.read,
|
|
651
|
+
sync() {
|
|
652
|
+
if (!view.isLoaded || !view.nativeViewProtected || root.disposed)
|
|
653
|
+
return;
|
|
654
|
+
detach();
|
|
655
|
+
stopBase(view, [property]);
|
|
656
|
+
native = root.node.bind(view, property, source.mappings);
|
|
657
|
+
const handle = native;
|
|
658
|
+
releaseMix = mixFor(view, property).attachLive({
|
|
659
|
+
read: () => handle.value(),
|
|
660
|
+
layers: (layers) => handle.layers(layers),
|
|
661
|
+
});
|
|
662
|
+
syncLiveSprings(view);
|
|
663
|
+
},
|
|
664
|
+
cleanup() {
|
|
665
|
+
view.off('unloaded', detach);
|
|
666
|
+
detach();
|
|
667
|
+
},
|
|
668
|
+
};
|
|
669
|
+
let properties = bound.get(view);
|
|
670
|
+
if (!properties)
|
|
671
|
+
bound.set(view, (properties = new Map()));
|
|
672
|
+
properties.set(property, binding);
|
|
673
|
+
root.bindings.add(binding);
|
|
674
|
+
view.on('loaded', binding.sync);
|
|
675
|
+
view.on('unloaded', detach);
|
|
676
|
+
try {
|
|
677
|
+
binding.sync();
|
|
678
|
+
}
|
|
679
|
+
catch (error) {
|
|
680
|
+
release(binding);
|
|
681
|
+
throw error;
|
|
682
|
+
}
|
|
683
|
+
return () => {
|
|
684
|
+
if (root.bindings.has(binding))
|
|
685
|
+
release(binding);
|
|
686
|
+
};
|
|
687
|
+
}
|
|
422
688
|
/** A read-only value on an existing finite animation's clock. No second animation or timer. */
|
|
423
689
|
export function playbackProgress(animation) {
|
|
424
690
|
const source = playbackSource(animation);
|
|
@@ -564,6 +830,7 @@ function release(binding) {
|
|
|
564
830
|
const properties = bound.get(binding.view);
|
|
565
831
|
if (properties?.get(binding.property) === binding)
|
|
566
832
|
properties.delete(binding.property);
|
|
833
|
+
binding.cleanup?.();
|
|
567
834
|
}
|
|
568
835
|
/** A regular animation on a bound property takes it over; the value keeps its other bindings. */
|
|
569
836
|
export function detachBindings(view, properties) {
|
|
@@ -615,7 +882,7 @@ function mapping(input, output, options = {}) {
|
|
|
615
882
|
return mixers[i](Math.min(1, Math.max(0, t)));
|
|
616
883
|
return numbers[i] + (numbers[i + 1] - numbers[i]) * t;
|
|
617
884
|
};
|
|
618
|
-
return { read, color };
|
|
885
|
+
return { read, color, input, numbers };
|
|
619
886
|
}
|
|
620
887
|
function springOf(name) {
|
|
621
888
|
if (!Object.hasOwn(springs, name))
|