@rafaelaugusto/jolt 0.1.0-beta.11 → 0.1.0-beta.13
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 +42 -8
- package/dist/animate.d.ts +15 -3
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +52 -34
- package/dist/animate.js.map +1 -1
- package/dist/drag.d.ts +17 -3
- package/dist/drag.d.ts.map +1 -1
- package/dist/drag.js +34 -11
- 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/frame.d.ts +3 -0
- package/dist/driver/frame.d.ts.map +1 -0
- package/dist/driver/frame.js +7 -0
- package/dist/driver/frame.js.map +1 -0
- package/dist/driver/index.d.ts +2 -0
- package/dist/driver/index.d.ts.map +1 -1
- package/dist/driver/index.js.map +1 -1
- 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/easing.d.ts +1 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +11 -0
- package/dist/easing.js.map +1 -1
- package/dist/engine.d.ts +20 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +166 -38
- package/dist/engine.js.map +1 -1
- package/dist/gradient.d.ts.map +1 -1
- package/dist/gradient.js +10 -4
- package/dist/gradient.js.map +1 -1
- package/dist/image-effect.d.ts +1 -0
- package/dist/image-effect.d.ts.map +1 -1
- package/dist/image-effect.js +10 -2
- package/dist/image-effect.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +63 -10
- package/dist/keyboard.js.map +1 -1
- package/dist/mixer.d.ts +49 -0
- package/dist/mixer.d.ts.map +1 -0
- package/dist/mixer.js +238 -0
- package/dist/mixer.js.map +1 -0
- package/dist/motion-scope.d.ts +6 -2
- package/dist/motion-scope.d.ts.map +1 -1
- package/dist/motion-scope.js +12 -4
- package/dist/motion-scope.js.map +1 -1
- package/dist/motion-states.d.ts +10 -5
- package/dist/motion-states.d.ts.map +1 -1
- package/dist/motion-states.js +55 -22
- package/dist/motion-states.js.map +1 -1
- package/dist/motion-value.d.ts +152 -0
- package/dist/motion-value.d.ts.map +1 -0
- package/dist/motion-value.js +635 -0
- package/dist/motion-value.js.map +1 -0
- package/dist/native/index.d.ts +6 -0
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +3 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native-properties.d.ts +28 -0
- package/dist/native-properties.d.ts.map +1 -0
- package/dist/native-properties.js +154 -0
- package/dist/native-properties.js.map +1 -0
- package/dist/native-property-driver.d.ts +19 -0
- package/dist/native-property-driver.d.ts.map +1 -0
- package/dist/native-property-driver.js +69 -0
- package/dist/native-property-driver.js.map +1 -0
- package/dist/native-property.d.ts +35 -0
- package/dist/native-property.d.ts.map +1 -0
- package/dist/native-property.js +277 -0
- package/dist/native-property.js.map +1 -0
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +2 -2
- package/dist/path.js.map +1 -1
- package/dist/playback-group.d.ts.map +1 -1
- package/dist/playback-group.js +17 -1
- package/dist/playback-group.js.map +1 -1
- package/dist/playback.d.ts +15 -0
- package/dist/playback.d.ts.map +1 -1
- package/dist/playback.js +23 -0
- package/dist/playback.js.map +1 -1
- package/dist/sequence.d.ts +24 -0
- package/dist/sequence.d.ts.map +1 -1
- package/dist/sequence.js +181 -19
- package/dist/sequence.js.map +1 -1
- package/dist/timed-animation.d.ts +38 -0
- package/dist/timed-animation.d.ts.map +1 -0
- package/dist/timed-animation.js +177 -0
- package/dist/timed-animation.js.map +1 -0
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +31 -12
- package/dist/track.js.map +1 -1
- package/dist/transition.d.ts +15 -4
- package/dist/transition.d.ts.map +1 -1
- package/dist/transition.js +46 -7
- package/dist/transition.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/value-observers.d.ts +19 -0
- package/dist/value-observers.d.ts.map +1 -0
- package/dist/value-observers.js +111 -0
- package/dist/value-observers.js.map +1 -0
- package/dist/value-track.d.ts +13 -0
- package/dist/value-track.d.ts.map +1 -0
- package/dist/value-track.js +59 -0
- package/dist/value-track.js.map +1 -0
- package/dist/vue/index.d.ts +28 -2
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +78 -2
- package/dist/vue/index.js.map +1 -1
- package/package.json +6 -2
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrame.java +53 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrameFollower.java +57 -0
- package/src/android-plugin.d.ts +64 -0
- package/src/animate.ts +106 -17
- package/src/drag.ts +67 -21
- package/src/driver/android.ts +2 -0
- package/src/driver/frame.ts +10 -0
- package/src/driver/index.ts +2 -0
- package/src/driver/ios.ts +2 -0
- package/src/easing.ts +14 -0
- package/src/engine.ts +181 -55
- package/src/gradient.ts +10 -4
- package/src/image-effect.ts +10 -2
- package/src/index.ts +23 -1
- package/src/ios-plugin.d.ts +33 -0
- package/src/keyboard.ts +83 -18
- package/src/mixer.ts +264 -0
- package/src/motion-scope.ts +17 -5
- package/src/motion-states.ts +79 -29
- package/src/motion-value.ts +795 -0
- package/src/native/index.ts +16 -0
- package/src/native-properties.ts +188 -0
- package/src/native-property-driver.ts +123 -0
- package/src/native-property.ts +353 -0
- package/src/path.ts +2 -1
- package/src/playback-group.ts +17 -1
- package/src/playback.ts +41 -0
- package/src/sequence.ts +209 -20
- package/src/timed-animation.ts +192 -0
- package/src/track.ts +37 -12
- package/src/transition.ts +69 -10
- package/src/types.ts +5 -0
- package/src/value-observers.ts +133 -0
- package/src/value-track.ts +71 -0
- package/src/vue/index.ts +98 -1
package/dist/transition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../src/transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAoC,MAAM,aAAa,CAAA;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"transition.js","sourceRoot":"","sources":["../src/transition.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -83,5 +83,10 @@ export type AnimateOptions = Transition & {
|
|
|
83
83
|
stagger?: number | Stagger;
|
|
84
84
|
/** iOS impact feedback at arrival, or at explicit points in a finite animation. */
|
|
85
85
|
haptic?: Haptic;
|
|
86
|
+
/**
|
|
87
|
+
* Plays on a named layer, on top of the property's other animations instead of replacing
|
|
88
|
+
* them. Translations and rotations add; scale and opacity multiply.
|
|
89
|
+
*/
|
|
90
|
+
layer?: string;
|
|
86
91
|
};
|
|
87
92
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Color } from '@nativescript/core';
|
|
2
|
+
export interface SubscribeOptions {
|
|
3
|
+
/** Deliver the current value synchronously when subscribing. Defaults to true. */
|
|
4
|
+
immediate?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** `time` is milliseconds on the native animation clock, shared by a notification batch. */
|
|
7
|
+
export type ValueListener<T> = (value: T, time: number) => void;
|
|
8
|
+
/** Root-owned subscriptions; mappings are evaluated only for consumers that opted in. */
|
|
9
|
+
export declare class ValueObservers {
|
|
10
|
+
private readonly read;
|
|
11
|
+
private readonly observers;
|
|
12
|
+
private running;
|
|
13
|
+
constructor(read: (time: number) => number);
|
|
14
|
+
get active(): boolean;
|
|
15
|
+
subscribe(read: (value: number) => number, color: boolean, listener: ValueListener<number | Color>, options?: SubscribeOptions): () => void;
|
|
16
|
+
changed(running: boolean): void;
|
|
17
|
+
snapshot(time: number): () => void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=value-observers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-observers.d.ts","sourceRoot":"","sources":["../src/value-observers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,EAAS,MAAM,oBAAoB,CAAA;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,4FAA4F;AAC5F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;AAqE/D,yFAAyF;AACzF,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,OAAO,CAAQ;IAEvB,YAA6B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAI;IAE/D,IAAI,MAAM,YAET;IAED,SAAS,CACP,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAC/B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,MAAM,GAAG,KAAK,CAAC,EACvC,OAAO,GAAE,gBAAqB,GAC7B,MAAM,IAAI,CAeZ;IAED,OAAO,CAAC,OAAO,EAAE,OAAO,QAMvB;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,IAAI,CAYjC;CACF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { Application, Color, Trace } from '@nativescript/core';
|
|
2
|
+
import { getDriver } from './driver/index.js';
|
|
3
|
+
// Only sources that need a frame live here. Idle subscriptions retain no global root reference.
|
|
4
|
+
const pending = new Set();
|
|
5
|
+
let cancelFrame;
|
|
6
|
+
let listening = false;
|
|
7
|
+
let suspended = false;
|
|
8
|
+
function suspend() {
|
|
9
|
+
suspended = true;
|
|
10
|
+
cancelFrame?.();
|
|
11
|
+
cancelFrame = undefined;
|
|
12
|
+
}
|
|
13
|
+
function resume() {
|
|
14
|
+
suspended = false;
|
|
15
|
+
schedule();
|
|
16
|
+
}
|
|
17
|
+
function schedule() {
|
|
18
|
+
if (!pending.size) {
|
|
19
|
+
cancelFrame?.();
|
|
20
|
+
cancelFrame = undefined;
|
|
21
|
+
if (listening && !suspended) {
|
|
22
|
+
Application.off(Application.suspendEvent, suspend);
|
|
23
|
+
Application.off(Application.resumeEvent, resume);
|
|
24
|
+
listening = false;
|
|
25
|
+
}
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (!listening) {
|
|
29
|
+
Application.on(Application.suspendEvent, suspend);
|
|
30
|
+
Application.on(Application.resumeEvent, resume);
|
|
31
|
+
listening = true;
|
|
32
|
+
}
|
|
33
|
+
if (cancelFrame || suspended)
|
|
34
|
+
return;
|
|
35
|
+
cancelFrame = getDriver().frame(() => {
|
|
36
|
+
cancelFrame = undefined;
|
|
37
|
+
const time = getDriver().now();
|
|
38
|
+
const sources = [...pending];
|
|
39
|
+
pending.clear();
|
|
40
|
+
// Capture every source before calling any listener: reentrant writes belong to the next batch.
|
|
41
|
+
const deliveries = sources.map((source) => source.snapshot(time));
|
|
42
|
+
for (const source of sources)
|
|
43
|
+
if (source.active)
|
|
44
|
+
pending.add(source);
|
|
45
|
+
for (const deliver of deliveries)
|
|
46
|
+
deliver();
|
|
47
|
+
schedule();
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function deliver(observer, value, time) {
|
|
51
|
+
try {
|
|
52
|
+
observer.listener(observer.color ? new Color(value) : value, time);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// A consumer failure must not interrupt other consumers or strand the shared frame source.
|
|
56
|
+
Trace.write(`Jolt motion value subscriber failed: ${error instanceof Error ? error.stack : String(error)}`, Trace.categories.Error, Trace.messageType.error);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Root-owned subscriptions; mappings are evaluated only for consumers that opted in. */
|
|
60
|
+
export class ValueObservers {
|
|
61
|
+
read;
|
|
62
|
+
observers = new Set();
|
|
63
|
+
running = false;
|
|
64
|
+
constructor(read) {
|
|
65
|
+
this.read = read;
|
|
66
|
+
}
|
|
67
|
+
get active() {
|
|
68
|
+
return this.running && this.observers.size > 0;
|
|
69
|
+
}
|
|
70
|
+
subscribe(read, color, listener, options = {}) {
|
|
71
|
+
if (typeof listener !== 'function')
|
|
72
|
+
throw new TypeError('subscribe() needs a listener function.');
|
|
73
|
+
const time = getDriver().now();
|
|
74
|
+
const observer = { read, color, listener, previous: read(this.read(time)) };
|
|
75
|
+
this.observers.add(observer);
|
|
76
|
+
if (options.immediate !== false)
|
|
77
|
+
deliver(observer, observer.previous, time);
|
|
78
|
+
if (this.active)
|
|
79
|
+
this.changed(true);
|
|
80
|
+
return () => {
|
|
81
|
+
this.observers.delete(observer);
|
|
82
|
+
if (!this.observers.size) {
|
|
83
|
+
pending.delete(this);
|
|
84
|
+
schedule();
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
changed(running) {
|
|
89
|
+
this.running = running;
|
|
90
|
+
if (this.observers.size) {
|
|
91
|
+
pending.add(this);
|
|
92
|
+
schedule();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
snapshot(time) {
|
|
96
|
+
const value = this.read(time);
|
|
97
|
+
const deliveries = [...this.observers].flatMap((observer) => {
|
|
98
|
+
const next = observer.read(value);
|
|
99
|
+
if (Object.is(next, observer.previous))
|
|
100
|
+
return [];
|
|
101
|
+
observer.previous = next;
|
|
102
|
+
return [{ observer, next }];
|
|
103
|
+
});
|
|
104
|
+
return () => {
|
|
105
|
+
for (const { observer, next } of deliveries)
|
|
106
|
+
if (this.observers.has(observer))
|
|
107
|
+
deliver(observer, next, time);
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=value-observers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-observers.js","sourceRoot":"","sources":["../src/value-observers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Track } from './track.js';
|
|
2
|
+
export interface ValuePart {
|
|
3
|
+
readonly track: Track;
|
|
4
|
+
readonly elapsed: number;
|
|
5
|
+
readonly base: number;
|
|
6
|
+
readonly span: number;
|
|
7
|
+
}
|
|
8
|
+
/** Compile scalar addition before any binding's mapping. The snapshot is independent of later edits. */
|
|
9
|
+
export declare function valueTrack(parts: readonly ValuePart[], rest: number): {
|
|
10
|
+
track: Track;
|
|
11
|
+
windowed: boolean;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=value-track.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-track.d.ts","sourceRoot":"","sources":["../src/value-track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAErD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM;;;EAiDnE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { instantTrack } from './track.js';
|
|
2
|
+
/** Compile scalar addition before any binding's mapping. The snapshot is independent of later edits. */
|
|
3
|
+
export function valueTrack(parts, rest) {
|
|
4
|
+
const value = (time) => parts.reduce((sum, part) => sum + part.base + part.span * part.track.valueAt(part.elapsed + time), rest);
|
|
5
|
+
let finite = 0;
|
|
6
|
+
const periods = [];
|
|
7
|
+
for (const { track, elapsed } of parts) {
|
|
8
|
+
if (Number.isFinite(track.end))
|
|
9
|
+
finite = Math.max(finite, track.end - elapsed);
|
|
10
|
+
else if (elapsed < track.delay)
|
|
11
|
+
finite = Math.max(finite, track.delay - elapsed);
|
|
12
|
+
else
|
|
13
|
+
periods.push(Math.max(1, track.duration * (track.reverse ? 2 : 1)));
|
|
14
|
+
}
|
|
15
|
+
if (finite <= 0 && !periods.length)
|
|
16
|
+
return { track: instantTrack('x', value(0)), windowed: false };
|
|
17
|
+
const loop = finite <= 0 && periods.length ? commonPeriod(periods) : undefined;
|
|
18
|
+
// Bound finite compositions too: a minutes-long base must not undersample a short pulse.
|
|
19
|
+
const duration = finite > 0 ? Math.min(finite, 4000) : (loop ?? 4000);
|
|
20
|
+
const steps = Math.max(1, Math.min(6000, Math.ceil((duration * 60) / 1000)));
|
|
21
|
+
const times = Array.from({ length: steps + 1 }, (_, i) => i / steps);
|
|
22
|
+
const values = times.map((time) => value(time * duration));
|
|
23
|
+
const endless = loop !== undefined;
|
|
24
|
+
const at = (time) => value(endless
|
|
25
|
+
? ((time % duration) + duration) % duration
|
|
26
|
+
: Math.min(duration, Math.max(0, time)));
|
|
27
|
+
const track = {
|
|
28
|
+
property: 'x',
|
|
29
|
+
delay: 0,
|
|
30
|
+
duration,
|
|
31
|
+
repeat: endless ? Infinity : 0,
|
|
32
|
+
reverse: false,
|
|
33
|
+
times,
|
|
34
|
+
values,
|
|
35
|
+
to: endless ? values[0] : values[steps],
|
|
36
|
+
end: endless ? Infinity : duration,
|
|
37
|
+
arrival: endless ? Infinity : duration,
|
|
38
|
+
valueAt: at,
|
|
39
|
+
velocityAt: (time) => (at(time + 0.5) - at(time - 0.5)) * 1000,
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
track,
|
|
43
|
+
windowed: finite > duration ||
|
|
44
|
+
(!endless && parts.some(({ track }) => !Number.isFinite(track.end))),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function commonPeriod(periods) {
|
|
48
|
+
const gcd = (a, b) => (b ? gcd(b, a % b) : a);
|
|
49
|
+
let total = 1;
|
|
50
|
+
for (const period of periods) {
|
|
51
|
+
if (!Number.isInteger(period))
|
|
52
|
+
return undefined;
|
|
53
|
+
total = (total / gcd(total, period)) * period;
|
|
54
|
+
if (total > 30000)
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
return total;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=value-track.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-track.js","sourceRoot":"","sources":["../src/value-track.ts"],"names":[],"mappings":"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"}
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type App, type BaseTransitionProps, type NSVElement, type ObjectDirective, type PropType, type Ref } from 'nativescript-vue';
|
|
2
|
-
import { type KeyboardState, type MotionScope, type AnimateOptions, type Keyframes, type PresetName, type SpringName } from '../index.js';
|
|
2
|
+
import { type Bindings, type MotionValue, type ScrollValue, type Target, type KeyboardState, type MotionScope, type AnimateOptions, type Keyframes, type PresetName, type SpringName, type GradientOptions, type Transition } from '../index.js';
|
|
3
3
|
type Host = NSVElement;
|
|
4
4
|
type Options = AnimateOptions | SpringName;
|
|
5
5
|
/** A preset name or keyframes, alone or paired with a transition. */
|
|
6
6
|
export type AnimateValue = PresetName | Keyframes | readonly [animation: PresetName | Keyframes, options?: Options];
|
|
7
|
+
/** The gradient, alone or paired with the transition for later changes. */
|
|
8
|
+
export type GradientValue = GradientOptions | readonly [gradient: GradientOptions, transition?: Transition | SpringName];
|
|
7
9
|
/** The pressed keyframes, alone or paired with a transition. */
|
|
8
10
|
export type PressValue = Keyframes | readonly [pressed: Keyframes, options?: Options];
|
|
9
11
|
export interface TransitionProps {
|
|
@@ -33,6 +35,16 @@ export declare const vAnimate: ObjectDirective<Host, AnimateValue>;
|
|
|
33
35
|
* ```
|
|
34
36
|
*/
|
|
35
37
|
export declare const vPress: ObjectDirective<Host, PressValue | undefined>;
|
|
38
|
+
/**
|
|
39
|
+
* Paints a native gradient behind the element, and animates to the new values when they change.
|
|
40
|
+
* A change of type, or of the number of colors, applies at once.
|
|
41
|
+
*
|
|
42
|
+
* ```vue
|
|
43
|
+
* <GridLayout v-gradient="{ type: 'linear', colors: ['#18181B', '#3F3F46'], angle: 135 }" />
|
|
44
|
+
* <GridLayout v-gradient="[{ type: 'linear', colors: active ? hot : cold }, 'snappy']" />
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare const vGradient: ObjectDirective<Host, GradientValue>;
|
|
36
48
|
/** The hooks `JoltTransition` hands to Vue's `BaseTransition`. */
|
|
37
49
|
export declare function transitionHooks(props: TransitionProps): BaseTransitionProps<Host>;
|
|
38
50
|
/**
|
|
@@ -80,7 +92,7 @@ export declare const JoltTransition: import("nativescript-vue").DefineComponent<
|
|
|
80
92
|
appear: boolean;
|
|
81
93
|
mode: "default" | "in-out" | "out-in" | undefined;
|
|
82
94
|
}, {}, {}, {}, string, import("nativescript-vue").ComponentProvideOptions, true, {}, any>;
|
|
83
|
-
/** Registers `v-animate`, `v-press` and `JoltTransition` on the app. */
|
|
95
|
+
/** Registers `v-animate`, `v-press`, `v-gradient` and `JoltTransition` on the app. */
|
|
84
96
|
export declare function install(app: App): void;
|
|
85
97
|
declare const _default: {
|
|
86
98
|
install: typeof install;
|
|
@@ -92,4 +104,18 @@ export declare function useMotionScope(): MotionScope;
|
|
|
92
104
|
export declare function useReducedMotion(): Readonly<Ref<boolean>>;
|
|
93
105
|
/** Call in setup(): the keyboard's state, kept up to date until the component unmounts. */
|
|
94
106
|
export declare function useKeyboard(): Readonly<Ref<KeyboardState>>;
|
|
107
|
+
/** Call in setup(): a motion value that stops when the component unmounts. */
|
|
108
|
+
export declare function useMotionValue(initial?: number): MotionValue;
|
|
109
|
+
/**
|
|
110
|
+
* Call in setup(): a template ref that binds motion values to the element on mount
|
|
111
|
+
* and releases them on unmount. A recreated element picks the values up again.
|
|
112
|
+
*/
|
|
113
|
+
export declare function useBinding(bindings: Bindings): (element: Target | null) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Call in setup(): a scroll offset as a value. Pass its `ref` to the ScrollView's
|
|
116
|
+
* template ref; it stops following when the component unmounts.
|
|
117
|
+
*/
|
|
118
|
+
export declare function useScrollValue(options?: {
|
|
119
|
+
axis?: 'x' | 'y';
|
|
120
|
+
}): ScrollValue;
|
|
95
121
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/vue/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,GAAG,EACR,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,GAAG,EACT,MAAM,kBAAkB,CAAA;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"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"}
|
package/dist/vue/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BaseTransition, defineComponent, h, onUnmounted, onActivated, onDeactivated, readonly, shallowRef, } from 'nativescript-vue';
|
|
2
|
-
import { press, motionScope, onKeyboard, onReducedMotion, reducedMotion, } from '../index.js';
|
|
2
|
+
import { gradient, press, motionScope, bind, motionValue, scrollValue, onKeyboard, onReducedMotion, stop, reducedMotion, } from '../index.js';
|
|
3
3
|
import { currentKeyboard } from '../keyboard.js';
|
|
4
4
|
const animations = new WeakMap();
|
|
5
5
|
const scopes = new WeakMap();
|
|
6
6
|
const removers = new WeakMap();
|
|
7
|
+
const gradients = new WeakMap();
|
|
7
8
|
function split(value) {
|
|
8
9
|
return Array.isArray(value)
|
|
9
10
|
? [value[0], value[1]]
|
|
@@ -79,6 +80,44 @@ export const vPress = {
|
|
|
79
80
|
removers.delete(el);
|
|
80
81
|
},
|
|
81
82
|
};
|
|
83
|
+
function paint(el, value, animated) {
|
|
84
|
+
const [options, transition] = (Array.isArray(value) ? value : [value]);
|
|
85
|
+
const current = gradients.get(el);
|
|
86
|
+
const colors = options.colors.length;
|
|
87
|
+
if (current && current.gradient.type === options.type) {
|
|
88
|
+
const { type, ...values } = options;
|
|
89
|
+
if (animated && current.colors === colors)
|
|
90
|
+
current.gradient.animate(values, transition);
|
|
91
|
+
else
|
|
92
|
+
current.gradient.set(values);
|
|
93
|
+
current.colors = colors;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
current?.gradient.remove();
|
|
97
|
+
gradients.set(el, { gradient: gradient(el, options), colors });
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Paints a native gradient behind the element, and animates to the new values when they change.
|
|
101
|
+
* A change of type, or of the number of colors, applies at once.
|
|
102
|
+
*
|
|
103
|
+
* ```vue
|
|
104
|
+
* <GridLayout v-gradient="{ type: 'linear', colors: ['#18181B', '#3F3F46'], angle: 135 }" />
|
|
105
|
+
* <GridLayout v-gradient="[{ type: 'linear', colors: active ? hot : cold }, 'snappy']" />
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export const vGradient = {
|
|
109
|
+
mounted(el, { value }) {
|
|
110
|
+
paint(el, value, false);
|
|
111
|
+
},
|
|
112
|
+
updated(el, { value, oldValue }) {
|
|
113
|
+
if (!same(value, oldValue))
|
|
114
|
+
paint(el, value, true);
|
|
115
|
+
},
|
|
116
|
+
unmounted(el) {
|
|
117
|
+
gradients.get(el)?.gradient.remove();
|
|
118
|
+
gradients.delete(el);
|
|
119
|
+
},
|
|
120
|
+
};
|
|
82
121
|
/** The hooks `JoltTransition` hands to Vue's `BaseTransition`. */
|
|
83
122
|
export function transitionHooks(props) {
|
|
84
123
|
const run = (value) => (el, done) => {
|
|
@@ -130,10 +169,11 @@ export const JoltTransition = defineComponent({
|
|
|
130
169
|
return () => h(BaseTransition, { ...transitionHooks(props), mode: props.mode, appear: props.appear }, slots);
|
|
131
170
|
},
|
|
132
171
|
});
|
|
133
|
-
/** Registers `v-animate`, `v-press` and `JoltTransition` on the app. */
|
|
172
|
+
/** Registers `v-animate`, `v-press`, `v-gradient` and `JoltTransition` on the app. */
|
|
134
173
|
export function install(app) {
|
|
135
174
|
app.directive('animate', vAnimate);
|
|
136
175
|
app.directive('press', vPress);
|
|
176
|
+
app.directive('gradient', vGradient);
|
|
137
177
|
app.component('JoltTransition', JoltTransition);
|
|
138
178
|
}
|
|
139
179
|
export default { install };
|
|
@@ -160,4 +200,40 @@ export function useKeyboard() {
|
|
|
160
200
|
onUnmounted(off);
|
|
161
201
|
return readonly(keyboard);
|
|
162
202
|
}
|
|
203
|
+
/** Call in setup(): a motion value that stops when the component unmounts. */
|
|
204
|
+
export function useMotionValue(initial = 0) {
|
|
205
|
+
const value = motionValue(initial);
|
|
206
|
+
onUnmounted(() => stop(value));
|
|
207
|
+
return value;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Call in setup(): a template ref that binds motion values to the element on mount
|
|
211
|
+
* and releases them on unmount. A recreated element picks the values up again.
|
|
212
|
+
*/
|
|
213
|
+
export function useBinding(bindings) {
|
|
214
|
+
let element = null;
|
|
215
|
+
let release;
|
|
216
|
+
onUnmounted(() => {
|
|
217
|
+
release?.();
|
|
218
|
+
release = undefined;
|
|
219
|
+
});
|
|
220
|
+
return (next) => {
|
|
221
|
+
if (next === element)
|
|
222
|
+
return;
|
|
223
|
+
release?.();
|
|
224
|
+
release = undefined;
|
|
225
|
+
element = next;
|
|
226
|
+
if (next)
|
|
227
|
+
release = bind(next, bindings);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Call in setup(): a scroll offset as a value. Pass its `ref` to the ScrollView's
|
|
232
|
+
* template ref; it stops following when the component unmounts.
|
|
233
|
+
*/
|
|
234
|
+
export function useScrollValue(options) {
|
|
235
|
+
const value = scrollValue(null, options);
|
|
236
|
+
onUnmounted(() => value.dispose());
|
|
237
|
+
return value;
|
|
238
|
+
}
|
|
163
239
|
//# sourceMappingURL=index.js.map
|
package/dist/vue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,eAAe,EACf,CAAC,EACD,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,GAOX,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,KAAK,EACL,WAAW,EACX,UAAU,EACV,eAAe,EACf,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rafaelaugusto/jolt",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.13",
|
|
4
4
|
"description": "Native animations for NativeScript: presets, springs, keyframes and stagger in one call.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nativescript",
|
|
@@ -33,7 +33,11 @@
|
|
|
33
33
|
"types": "./dist/vue/index.d.ts",
|
|
34
34
|
"default": "./dist/vue/index.js"
|
|
35
35
|
},
|
|
36
|
-
"./package.json": "./package.json"
|
|
36
|
+
"./package.json": "./package.json",
|
|
37
|
+
"./native": {
|
|
38
|
+
"types": "./dist/native/index.d.ts",
|
|
39
|
+
"default": "./dist/native/index.js"
|
|
40
|
+
}
|
|
37
41
|
},
|
|
38
42
|
"files": [
|
|
39
43
|
"dist",
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
import android.graphics.Rect;
|
|
4
|
+
import android.view.View;
|
|
5
|
+
import android.view.ViewTreeObserver;
|
|
6
|
+
import android.view.WindowInsets;
|
|
7
|
+
|
|
8
|
+
/** Before Android 11: how much of the window the keyboard covers, read from the visible frame on each layout. */
|
|
9
|
+
public final class KeyboardFrame implements ViewTreeObserver.OnGlobalLayoutListener {
|
|
10
|
+
public interface Listener {
|
|
11
|
+
void onChange(int height);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
private final View root;
|
|
15
|
+
private final Listener listener;
|
|
16
|
+
private int height;
|
|
17
|
+
|
|
18
|
+
public KeyboardFrame(View root, Listener listener) {
|
|
19
|
+
this.root = root;
|
|
20
|
+
this.listener = listener;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public void attach() {
|
|
24
|
+
height = covered(root);
|
|
25
|
+
root.getViewTreeObserver().addOnGlobalLayoutListener(this);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public void detach() {
|
|
29
|
+
root.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public int height() {
|
|
33
|
+
return height;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Pixels of the window below the visible frame, when that is more than the navigation bar. */
|
|
37
|
+
static int covered(View root) {
|
|
38
|
+
Rect frame = new Rect();
|
|
39
|
+
root.getWindowVisibleDisplayFrame(frame);
|
|
40
|
+
int below = root.getHeight() - frame.bottom;
|
|
41
|
+
WindowInsets insets = root.getRootWindowInsets();
|
|
42
|
+
int bars = insets == null ? 0 : insets.getStableInsetBottom();
|
|
43
|
+
return below > bars ? below : 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
public void onGlobalLayout() {
|
|
48
|
+
int next = covered(root);
|
|
49
|
+
if (next == height) return;
|
|
50
|
+
height = next;
|
|
51
|
+
listener.onChange(next);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
package org.rafaelaugusto.jolt;
|
|
2
|
+
|
|
3
|
+
import android.view.View;
|
|
4
|
+
import android.view.ViewTreeObserver;
|
|
5
|
+
|
|
6
|
+
/** Before Android 11: catches the view where it was when a keyboard layout moves it, and says where it should end up. */
|
|
7
|
+
public final class KeyboardFrameFollower implements ViewTreeObserver.OnGlobalLayoutListener {
|
|
8
|
+
public interface Listener {
|
|
9
|
+
void onMove(float from, float to, int keyboard);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
private final View view;
|
|
13
|
+
private final float offset;
|
|
14
|
+
private final Listener listener;
|
|
15
|
+
private int keyboard;
|
|
16
|
+
private float visualBottom;
|
|
17
|
+
|
|
18
|
+
public KeyboardFrameFollower(View view, float offset, Listener listener) {
|
|
19
|
+
this.view = view;
|
|
20
|
+
this.offset = offset;
|
|
21
|
+
this.listener = listener;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public void attach() {
|
|
25
|
+
keyboard = KeyboardFrame.covered(view.getRootView());
|
|
26
|
+
visualBottom = bottom();
|
|
27
|
+
view.getViewTreeObserver().addOnGlobalLayoutListener(this);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public void detach() {
|
|
31
|
+
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
private float bottom() {
|
|
35
|
+
int[] location = new int[2];
|
|
36
|
+
view.getLocationInWindow(location);
|
|
37
|
+
return location[1] + view.getHeight();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@Override
|
|
41
|
+
public void onGlobalLayout() {
|
|
42
|
+
int next = KeyboardFrame.covered(view.getRootView());
|
|
43
|
+
if (next == keyboard) {
|
|
44
|
+
visualBottom = bottom();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
keyboard = next;
|
|
48
|
+
// The layout for the keyboard is done; the view may already have jumped with it.
|
|
49
|
+
float untranslated = bottom() - view.getTranslationY();
|
|
50
|
+
float top = view.getRootView().getHeight() - next;
|
|
51
|
+
float to = next > 0 ? -Math.max(0, untranslated + offset - top) : 0;
|
|
52
|
+
float from = visualBottom - untranslated;
|
|
53
|
+
view.setTranslationY(from);
|
|
54
|
+
visualBottom = untranslated + to;
|
|
55
|
+
listener.onMove(from, to, next);
|
|
56
|
+
}
|
|
57
|
+
}
|