@rafaelaugusto/jolt 0.1.0-beta.12 → 0.1.0-beta.14

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.
Files changed (151) hide show
  1. package/README.md +9 -6
  2. package/dist/animate.d.ts +6 -4
  3. package/dist/animate.d.ts.map +1 -1
  4. package/dist/animate.js +3 -1
  5. package/dist/animate.js.map +1 -1
  6. package/dist/drag.js +3 -3
  7. package/dist/drag.js.map +1 -1
  8. package/dist/driver/android-gradient.d.ts.map +1 -1
  9. package/dist/driver/android-gradient.js +11 -1
  10. package/dist/driver/android-gradient.js.map +1 -1
  11. package/dist/driver/android-particles.d.ts +6 -0
  12. package/dist/driver/android-particles.d.ts.map +1 -0
  13. package/dist/driver/android-particles.js +93 -0
  14. package/dist/driver/android-particles.js.map +1 -0
  15. package/dist/driver/android.d.ts.map +1 -1
  16. package/dist/driver/android.js +2 -0
  17. package/dist/driver/android.js.map +1 -1
  18. package/dist/driver/frame.d.ts +3 -0
  19. package/dist/driver/frame.d.ts.map +1 -0
  20. package/dist/driver/frame.js +7 -0
  21. package/dist/driver/frame.js.map +1 -0
  22. package/dist/driver/index.d.ts +2 -0
  23. package/dist/driver/index.d.ts.map +1 -1
  24. package/dist/driver/index.js.map +1 -1
  25. package/dist/driver/ios-gradient.d.ts.map +1 -1
  26. package/dist/driver/ios-gradient.js +24 -2
  27. package/dist/driver/ios-gradient.js.map +1 -1
  28. package/dist/driver/ios.d.ts.map +1 -1
  29. package/dist/driver/ios.js +2 -0
  30. package/dist/driver/ios.js.map +1 -1
  31. package/dist/engine.d.ts +2 -1
  32. package/dist/engine.d.ts.map +1 -1
  33. package/dist/engine.js +32 -5
  34. package/dist/engine.js.map +1 -1
  35. package/dist/gradient-binding.d.ts +38 -0
  36. package/dist/gradient-binding.d.ts.map +1 -0
  37. package/dist/gradient-binding.js +128 -0
  38. package/dist/gradient-binding.js.map +1 -0
  39. package/dist/gradient.d.ts +19 -4
  40. package/dist/gradient.d.ts.map +1 -1
  41. package/dist/gradient.js +331 -70
  42. package/dist/gradient.js.map +1 -1
  43. package/dist/haptics.d.ts.map +1 -1
  44. package/dist/haptics.js +101 -28
  45. package/dist/haptics.js.map +1 -1
  46. package/dist/image-effect.d.ts +1 -0
  47. package/dist/image-effect.d.ts.map +1 -1
  48. package/dist/image-effect.js +10 -2
  49. package/dist/image-effect.js.map +1 -1
  50. package/dist/index.d.ts +6 -2
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +2 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/motion-scope.d.ts +3 -2
  55. package/dist/motion-scope.d.ts.map +1 -1
  56. package/dist/motion-scope.js +12 -2
  57. package/dist/motion-scope.js.map +1 -1
  58. package/dist/motion-value.d.ts +62 -8
  59. package/dist/motion-value.d.ts.map +1 -1
  60. package/dist/motion-value.js +327 -91
  61. package/dist/motion-value.js.map +1 -1
  62. package/dist/native/index.d.ts +7 -0
  63. package/dist/native/index.d.ts.map +1 -0
  64. package/dist/native/index.js +4 -0
  65. package/dist/native/index.js.map +1 -0
  66. package/dist/native-properties.d.ts +28 -0
  67. package/dist/native-properties.d.ts.map +1 -0
  68. package/dist/native-properties.js +154 -0
  69. package/dist/native-properties.js.map +1 -0
  70. package/dist/native-property-driver.d.ts +19 -0
  71. package/dist/native-property-driver.d.ts.map +1 -0
  72. package/dist/native-property-driver.js +69 -0
  73. package/dist/native-property-driver.js.map +1 -0
  74. package/dist/native-property.d.ts +35 -0
  75. package/dist/native-property.d.ts.map +1 -0
  76. package/dist/native-property.js +277 -0
  77. package/dist/native-property.js.map +1 -0
  78. package/dist/particles.d.ts +5 -2
  79. package/dist/particles.d.ts.map +1 -1
  80. package/dist/particles.js +16 -10
  81. package/dist/particles.js.map +1 -1
  82. package/dist/playback-group.d.ts.map +1 -1
  83. package/dist/playback-group.js +17 -1
  84. package/dist/playback-group.js.map +1 -1
  85. package/dist/playback.d.ts +15 -0
  86. package/dist/playback.d.ts.map +1 -1
  87. package/dist/playback.js +23 -0
  88. package/dist/playback.js.map +1 -1
  89. package/dist/scene-appearance.d.ts +14 -0
  90. package/dist/scene-appearance.d.ts.map +1 -0
  91. package/dist/scene-appearance.js +68 -0
  92. package/dist/scene-appearance.js.map +1 -0
  93. package/dist/sequence.d.ts +24 -0
  94. package/dist/sequence.d.ts.map +1 -1
  95. package/dist/sequence.js +181 -19
  96. package/dist/sequence.js.map +1 -1
  97. package/dist/timed-animation.d.ts +38 -0
  98. package/dist/timed-animation.d.ts.map +1 -0
  99. package/dist/timed-animation.js +177 -0
  100. package/dist/timed-animation.js.map +1 -0
  101. package/dist/types.d.ts +1 -1
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/value-observers.d.ts +19 -0
  104. package/dist/value-observers.d.ts.map +1 -0
  105. package/dist/value-observers.js +111 -0
  106. package/dist/value-observers.js.map +1 -0
  107. package/dist/value-track.d.ts +13 -0
  108. package/dist/value-track.d.ts.map +1 -0
  109. package/dist/value-track.js +59 -0
  110. package/dist/value-track.js.map +1 -0
  111. package/dist/vue/index.d.ts.map +1 -1
  112. package/dist/vue/index.js +28 -5
  113. package/dist/vue/index.js.map +1 -1
  114. package/package.json +6 -2
  115. package/platforms/android/java/org/rafaelaugusto/jolt/GradientLayer.java +30 -1
  116. package/platforms/android/java/org/rafaelaugusto/jolt/ParticleEmitter.java +192 -0
  117. package/platforms/android/java/org/rafaelaugusto/jolt/ParticleSimulation.java +114 -0
  118. package/platforms/android/proguard-rules.pro +2 -0
  119. package/src/android-plugin.d.ts +93 -0
  120. package/src/animate.ts +13 -7
  121. package/src/drag.ts +3 -3
  122. package/src/driver/android-gradient.ts +8 -1
  123. package/src/driver/android-particles.ts +118 -0
  124. package/src/driver/android.ts +2 -0
  125. package/src/driver/frame.ts +10 -0
  126. package/src/driver/index.ts +2 -0
  127. package/src/driver/ios-gradient.ts +24 -2
  128. package/src/driver/ios.ts +2 -0
  129. package/src/engine.ts +33 -6
  130. package/src/gradient-binding.ts +158 -0
  131. package/src/gradient.ts +376 -91
  132. package/src/haptics.ts +106 -28
  133. package/src/image-effect.ts +10 -2
  134. package/src/index.ts +6 -0
  135. package/src/ios-plugin.d.ts +40 -0
  136. package/src/motion-scope.ts +14 -3
  137. package/src/motion-value.ts +374 -99
  138. package/src/native/index.ts +23 -0
  139. package/src/native-properties.ts +188 -0
  140. package/src/native-property-driver.ts +123 -0
  141. package/src/native-property.ts +353 -0
  142. package/src/particles.ts +18 -17
  143. package/src/playback-group.ts +17 -1
  144. package/src/playback.ts +41 -0
  145. package/src/scene-appearance.ts +92 -0
  146. package/src/sequence.ts +209 -20
  147. package/src/timed-animation.ts +192 -0
  148. package/src/types.ts +1 -1
  149. package/src/value-observers.ts +133 -0
  150. package/src/value-track.ts +71 -0
  151. package/src/vue/index.ts +29 -5
@@ -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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"}
@@ -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,EAUL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,MAAM,EAEX,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,eAAe,EACpB,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAGpB,KAAK,IAAI,GAAG,UAAU,CAAA;AACtB,KAAK,OAAO,GAAG,cAAc,GAAG,UAAU,CAAA;AAE1C,qEAAqE;AACrE,MAAM,MAAM,YAAY,GACtB,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAE1F,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,CAAA;AAE9E,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AAErF,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CACvC;AAiDD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,EAAE,eAAe,CAAC,IAAI,EAAE,YAAY,CAQxD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAahE,CAAA;AAqBD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,eAAe,CAAC,IAAI,EAAE,aAAa,CAW1D,CAAA;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAuBjF;AAOD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;;cAbQ,QAAQ,CAAC,YAAY,CAAC;;;;;;;;;QAmB7C,IAAI,EAAY,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;yFAUpE,CAAA;AAEF,sFAAsF;AACtF,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,QAK/B;;;;;AAID,qFAAqF;AACrF,wBAAgB,cAAc,IAAI,WAAW,CAM5C;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAKzD;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAM1D;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,SAAI,GAAG,WAAW,CAIvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAc/E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,GAAG,WAAW,CAI1E"}
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,5 +1,7 @@
1
1
  import { BaseTransition, defineComponent, h, onUnmounted, onActivated, onDeactivated, readonly, shallowRef, } from 'nativescript-vue';
2
2
  import { gradient, press, motionScope, bind, motionValue, scrollValue, onKeyboard, onReducedMotion, stop, reducedMotion, } from '../index.js';
3
+ import { isDerived } from '../motion-value.js';
4
+ import { prepareGradient } from '../gradient.js';
3
5
  import { currentKeyboard } from '../keyboard.js';
4
6
  const animations = new WeakMap();
5
7
  const scopes = new WeakMap();
@@ -13,6 +15,8 @@ function split(value) {
13
15
  function same(a, b) {
14
16
  if (Object.is(a, b))
15
17
  return true;
18
+ if (isDerived(a) || isDerived(b))
19
+ return false;
16
20
  if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null)
17
21
  return false;
18
22
  if (Array.isArray(a) !== Array.isArray(b))
@@ -83,18 +87,37 @@ export const vPress = {
83
87
  function paint(el, value, animated) {
84
88
  const [options, transition] = (Array.isArray(value) ? value : [value]);
85
89
  const current = gradients.get(el);
90
+ prepareGradient(options);
86
91
  const colors = options.colors.length;
92
+ const hasBindings = [
93
+ options.angle,
94
+ options.radius,
95
+ options.center?.x,
96
+ options.center?.y,
97
+ ...options.colors,
98
+ ...(options.stops ?? []),
99
+ ].some(isDerived);
87
100
  if (current && current.gradient.type === options.type) {
88
101
  const { type, ...values } = options;
89
- if (animated && current.colors === colors)
90
- current.gradient.animate(values, transition);
91
- else
92
- current.gradient.set(values);
102
+ const previous = current.release;
103
+ if (hasBindings)
104
+ current.release = current.gradient.bind(values);
105
+ else {
106
+ if (animated && current.colors === colors)
107
+ current.gradient.animate(values, transition);
108
+ else
109
+ current.gradient.set(values);
110
+ current.release = undefined;
111
+ }
112
+ previous?.();
93
113
  current.colors = colors;
94
114
  return;
95
115
  }
96
116
  current?.gradient.remove();
97
- gradients.set(el, { gradient: gradient(el, options), colors });
117
+ // Track directive ownership explicitly, including bindings omitted on a later update.
118
+ const made = gradient(el, options);
119
+ const release = hasBindings ? made.bind(options) : undefined;
120
+ gradients.set(el, { gradient: made, colors, release });
98
121
  }
99
122
  /**
100
123
  * Paints a native gradient behind the element, and animates to the new values when they change.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"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"}
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.12",
3
+ "version": "0.1.0-beta.14",
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",
@@ -108,11 +108,40 @@ public final class GradientLayer extends android.graphics.drawable.Drawable {
108
108
  animation.start();
109
109
  }
110
110
 
111
+ /** Rejoin the source position. Binding windows include delays in their frames. */
112
+ public void control(long elapsed, boolean paused) {
113
+ if (animator == null) return;
114
+ animator.setCurrentPlayTime(Math.max(0, elapsed - animator.getStartDelay()));
115
+ if (paused) animator.pause(); else animator.resume();
116
+ }
117
+
118
+ public boolean isPlaying() { return animator != null; }
119
+ public float getCorner() { return corner; }
120
+ public float[] getGeometry() { return geometry.clone(); }
121
+ public float[] getStops() { return stops.clone(); }
122
+ public int[] getColors() { return colors.clone(); }
123
+ public int getSampleCount() { return times == null ? 0 : times.length; }
124
+
125
+ public void dispose() {
126
+ cancel();
127
+ colors = new int[0];
128
+ stops = new float[0];
129
+ setCallback(null);
130
+ }
131
+
111
132
  public void cancel() {
112
133
  ValueAnimator running = animator;
113
134
  animator = null;
114
135
  listener = null;
115
- if (running != null) running.cancel();
136
+ if (running != null) {
137
+ running.removeAllUpdateListeners();
138
+ running.removeAllListeners();
139
+ running.cancel();
140
+ }
141
+ times = null;
142
+ frameColors = null;
143
+ frameStops = null;
144
+ frameGeometry = null;
116
145
  }
117
146
 
118
147
  private void apply(float fraction) {
@@ -0,0 +1,192 @@
1
+ package org.rafaelaugusto.jolt;
2
+
3
+ import android.database.ContentObserver;
4
+ import android.graphics.Canvas;
5
+ import android.graphics.ColorFilter;
6
+ import android.graphics.Paint;
7
+ import android.graphics.PixelFormat;
8
+ import android.graphics.drawable.Drawable;
9
+ import android.os.Handler;
10
+ import android.os.Looper;
11
+ import android.os.SystemClock;
12
+ import android.provider.Settings;
13
+ import android.view.Choreographer;
14
+ import android.view.View;
15
+ import android.view.ViewParent;
16
+
17
+ /** A visual-only ViewOverlay drawable: all integration, deadlines and drawing stay in Java. */
18
+ public final class ParticleEmitter extends Drawable implements Choreographer.FrameCallback, View.OnAttachStateChangeListener {
19
+ public interface Listener { void onEnd(); }
20
+ private static int activeCount;
21
+ private View target, host;
22
+ private final boolean overlay;
23
+ private final float density;
24
+ private final ParticleSimulation simulation;
25
+ private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
26
+ private final Choreographer choreographer = Choreographer.getInstance();
27
+ private final Handler handler = new Handler(Looper.getMainLooper());
28
+ private final float[] point = new float[2];
29
+ private final int[] location = new int[2];
30
+ private final long[] intervals = new long[512];
31
+ private final ContentObserver scaleObserver = new ContentObserver(handler) {
32
+ @Override public void onChange(boolean selfChange) { if (disabled()) stop(); }
33
+ };
34
+ private Listener listener;
35
+ private boolean started, stopped, observing;
36
+ private long began, lastFrame, frames, draws, workNanos, drawNanos;
37
+ private float originX, originY, corner;
38
+ private final Runnable expire = new Runnable() { @Override public void run() { stop(); } };
39
+ private final long deadline;
40
+
41
+ public ParticleEmitter(View target, boolean overlay, int[] colors, int shape, int source,
42
+ double rate, double lifetimeMs, float size, float velocity, float velocityRange,
43
+ float angle, float spread, float gravity, float spin, float spinRange,
44
+ boolean fade, double durationMs, Listener listener) {
45
+ this.target = target; this.host = overlay ? target.getRootView() : target; this.overlay = overlay;
46
+ this.listener = listener;
47
+ density = target.getResources().getDisplayMetrics().density;
48
+ simulation = new ParticleSimulation(colors, shape, source, rate, lifetimeMs, size,
49
+ velocity, velocityRange, angle, spread, gravity, spin, spinRange, fade, durationMs, System.nanoTime());
50
+ deadline = durationMs < 0 ? -1 : (long)Math.ceil(durationMs + lifetimeMs);
51
+ }
52
+
53
+ private boolean disabled() {
54
+ return target != null && Settings.Global.getFloat(target.getContext().getContentResolver(),
55
+ Settings.Global.ANIMATOR_DURATION_SCALE, 1) == 0;
56
+ }
57
+ private boolean valid() {
58
+ return target != null && target.isAttachedToWindow() && target.getWindowVisibility() == View.VISIBLE
59
+ && target.isShown() && target.getWidth() > 0 && target.getHeight() > 0
60
+ && host.getWindowToken() != null && host.getWindowToken() == target.getWindowToken()
61
+ && (!overlay || host == target.getRootView());
62
+ }
63
+ public void start() {
64
+ if (started || stopped) return;
65
+ if (!valid() || disabled()) { stop(); return; }
66
+ started = true; activeCount++;
67
+ began = SystemClock.uptimeMillis();
68
+ if (overlay) {
69
+ // Convert the center through transforms and parent scrolling into root-overlay coordinates.
70
+ point[0] = target.getWidth() * .5f; point[1] = target.getHeight() * .5f;
71
+ View current = target;
72
+ while (current != host) {
73
+ current.getMatrix().mapPoints(point);
74
+ point[0] += current.getLeft(); point[1] += current.getTop();
75
+ ViewParent parent = current.getParent();
76
+ if (!(parent instanceof View)) { stop(); return; }
77
+ current = (View)parent;
78
+ point[0] -= current.getScrollX(); point[1] -= current.getScrollY();
79
+ }
80
+ originX = point[0]; originY = point[1];
81
+ }
82
+ target.addOnAttachStateChangeListener(this);
83
+ target.getContext().getContentResolver().registerContentObserver(
84
+ Settings.Global.getUriFor(Settings.Global.ANIMATOR_DURATION_SCALE), false, scaleObserver);
85
+ observing = true;
86
+ setBounds(0, 0, host.getWidth(), host.getHeight());
87
+ host.getOverlay().add(this);
88
+ if (deadline >= 0) handler.postDelayed(expire, deadline);
89
+ choreographer.postFrameCallback(this);
90
+ }
91
+
92
+ /** Layout/identity checks at JS boundaries; moving views otherwise stay in their native overlay. */
93
+ public void refresh(float cornerPixels) {
94
+ corner = Math.max(0, cornerPixels);
95
+ if (!stopped && started && !valid()) stop();
96
+ }
97
+ @Override public void doFrame(long frameTimeNanos) {
98
+ if (stopped) return;
99
+ long workStart = System.nanoTime();
100
+ if (!valid()) { stop(); return; }
101
+ if (lastFrame != 0) intervals[(int)((frames - 1) % intervals.length)] = frameTimeNanos - lastFrame;
102
+ lastFrame = frameTimeNanos; frames++;
103
+ // Deliberately use monotonic wall time: UI stalls cannot extend emission/lifetime deadlines.
104
+ simulation.advance((SystemClock.uptimeMillis() - began) / 1000d,
105
+ overlay ? 0 : target.getWidth() / density, overlay ? 0 : target.getHeight() / density);
106
+ if (simulation.finished()) { stop(); return; }
107
+ if (getBounds().width() != host.getWidth() || getBounds().height() != host.getHeight())
108
+ setBounds(0, 0, host.getWidth(), host.getHeight());
109
+ invalidateSelf();
110
+ workNanos += System.nanoTime() - workStart;
111
+ choreographer.postFrameCallback(this);
112
+ }
113
+
114
+ @Override public void draw(Canvas canvas) {
115
+ if (stopped) return;
116
+ long drawStart = System.nanoTime(); draws++;
117
+ int save = canvas.save();
118
+ // The overlay is above this host's content, bounded by the host/window viewport.
119
+ canvas.clipRect(getBounds());
120
+ if (!overlay && corner > 0) {
121
+ // A retained path avoids allocating rounded clips per frame.
122
+ clip.rewind();
123
+ rect.set(getBounds());
124
+ clip.addRoundRect(rect, corner, corner, android.graphics.Path.Direction.CW);
125
+ canvas.clipPath(clip);
126
+ }
127
+ if (overlay) canvas.translate(originX, originY);
128
+ canvas.scale(density, density);
129
+ float size = simulation.size, radius = size * .5f;
130
+ paint.setStyle(simulation.shape == 2 ? Paint.Style.STROKE : Paint.Style.FILL);
131
+ paint.setStrokeWidth(size * (3f / 32));
132
+ for (int i = 0, count = simulation.live(); i < count; i++) {
133
+ paint.setColor(simulation.color(i));
134
+ float x = simulation.x(i), y = simulation.y(i);
135
+ if (simulation.shape == 1) {
136
+ int particleSave = canvas.save();
137
+ canvas.rotate(simulation.rotation(i), x, y);
138
+ canvas.drawRect(x - radius, y - size * (9f / 32), x + radius, y + size * (9f / 32), paint);
139
+ canvas.restoreToCount(particleSave);
140
+ } else canvas.drawCircle(x, y, simulation.shape == 2 ? size * (14f / 32) : radius, paint);
141
+ }
142
+ canvas.restoreToCount(save);
143
+ drawNanos += System.nanoTime() - drawStart;
144
+ }
145
+ private final android.graphics.Path clip = new android.graphics.Path();
146
+ private final android.graphics.RectF rect = new android.graphics.RectF();
147
+
148
+ public void stop() {
149
+ if (stopped) return;
150
+ stopped = true;
151
+ choreographer.removeFrameCallback(this);
152
+ handler.removeCallbacks(expire);
153
+ if (observing) target.getContext().getContentResolver().unregisterContentObserver(scaleObserver);
154
+ observing = false;
155
+ if (started) { activeCount--; target.removeOnAttachStateChangeListener(this); host.getOverlay().remove(this); }
156
+ simulation.clear();
157
+ setCallback(null);
158
+ target = host = null;
159
+ Listener done = listener; listener = null;
160
+ if (done != null) done.onEnd();
161
+ }
162
+ @Override public void onViewAttachedToWindow(View view) { }
163
+ @Override public void onViewDetachedFromWindow(View view) { stop(); }
164
+ @Override public void setAlpha(int alpha) { }
165
+ @Override public void setColorFilter(ColorFilter filter) { paint.setColorFilter(filter); }
166
+ @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; }
167
+
168
+ // Native conformance/diagnostics. Reads allocate only when explicitly requested, never per frame.
169
+ public static int getActiveCount() { return activeCount; }
170
+ public boolean isStopped() { return stopped; }
171
+ public int getLiveCount() { return simulation.live(); }
172
+ public int getPeakCount() { return simulation.peak(); }
173
+ public int getCapacity() { return simulation.capacity(); }
174
+ public long getEmittedCount() { return simulation.emitted(); }
175
+ public long getSkippedCount() { return simulation.skipped(); }
176
+ public long getFrameCount() { return frames; }
177
+ public long getDrawCount() { return draws; }
178
+ public long getWorkNanos() { return workNanos; }
179
+ public long getDrawNanos() { return drawNanos; }
180
+ public float getDensity() { return density; }
181
+ public double getTimeSeconds() { return simulation.time(); }
182
+ public boolean isObserving() { return observing; }
183
+ public float[] getOriginInWindow() {
184
+ if (host != null) host.getLocationInWindow(location);
185
+ return new float[] { originX + location[0], originY + location[1] };
186
+ }
187
+ public float[] getParticle(int index) { return new float[] { simulation.x(index), simulation.y(index), simulation.rotation(index), simulation.color(index) }; }
188
+ public long[] getFrameIntervals() {
189
+ int count = (int)Math.min(Math.max(0, frames - 1), intervals.length);
190
+ return java.util.Arrays.copyOf(intervals, count);
191
+ }
192
+ }