@rafaelaugusto/jolt 0.1.0-beta.9 → 0.1.0-rc.2
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 +167 -21
- package/dist/animate.d.ts +25 -4
- package/dist/animate.d.ts.map +1 -1
- package/dist/animate.js +67 -26
- package/dist/animate.js.map +1 -1
- package/dist/blur/index.d.ts +6 -0
- package/dist/blur/index.d.ts.map +1 -0
- package/dist/blur/index.js +196 -0
- package/dist/blur/index.js.map +1 -0
- package/dist/blur/native.d.ts +17 -0
- package/dist/blur/native.d.ts.map +1 -0
- package/dist/blur/native.js +44 -0
- package/dist/blur/native.js.map +1 -0
- package/dist/blur/types.d.ts +32 -0
- package/dist/blur/types.d.ts.map +1 -0
- package/dist/blur/types.js +2 -0
- package/dist/blur/types.js.map +1 -0
- 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/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +40 -1
- package/dist/config.js.map +1 -1
- package/dist/decay.d.ts +1 -0
- package/dist/decay.d.ts.map +1 -1
- package/dist/decay.js +7 -0
- package/dist/decay.js.map +1 -1
- package/dist/drag-physics.d.ts +6 -1
- package/dist/drag-physics.d.ts.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-gradient.d.ts +5 -0
- package/dist/driver/android-gradient.d.ts.map +1 -0
- package/dist/driver/android-gradient.js +99 -0
- package/dist/driver/android-gradient.js.map +1 -0
- package/dist/driver/android-particles.d.ts +6 -0
- package/dist/driver/android-particles.d.ts.map +1 -0
- package/dist/driver/android-particles.js +93 -0
- package/dist/driver/android-particles.js.map +1 -0
- package/dist/driver/android.d.ts.map +1 -1
- package/dist/driver/android.js +27 -1
- 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 +4 -0
- package/dist/driver/index.d.ts.map +1 -1
- package/dist/driver/index.js.map +1 -1
- package/dist/driver/ios-gradient.d.ts +5 -0
- package/dist/driver/ios-gradient.d.ts.map +1 -0
- package/dist/driver/ios-gradient.js +131 -0
- package/dist/driver/ios-gradient.js.map +1 -0
- 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 +9 -0
- package/dist/driver/ios.js.map +1 -1
- package/dist/easing.d.ts +3 -1
- package/dist/easing.d.ts.map +1 -1
- package/dist/easing.js +18 -1
- package/dist/easing.js.map +1 -1
- package/dist/engine.d.ts +31 -2
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +194 -42
- package/dist/engine.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/glass/index.d.ts +55 -0
- package/dist/glass/index.d.ts.map +1 -0
- package/dist/glass/index.js +205 -0
- package/dist/glass/index.js.map +1 -0
- package/dist/gradient-binding.d.ts +38 -0
- package/dist/gradient-binding.d.ts.map +1 -0
- package/dist/gradient-binding.js +128 -0
- package/dist/gradient-binding.js.map +1 -0
- package/dist/gradient.d.ts +105 -0
- package/dist/gradient.d.ts.map +1 -0
- package/dist/gradient.js +514 -0
- package/dist/gradient.js.map +1 -0
- package/dist/gravity.d.ts +13 -0
- package/dist/gravity.d.ts.map +1 -0
- package/dist/gravity.js +84 -0
- package/dist/gravity.js.map +1 -0
- package/dist/haptics.d.ts.map +1 -1
- package/dist/haptics.js +101 -28
- package/dist/haptics.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 +19 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/inspector/index.d.ts +86 -0
- package/dist/inspector/index.d.ts.map +1 -0
- package/dist/inspector/index.js +419 -0
- package/dist/inspector/index.js.map +1 -0
- package/dist/inspector/plot.d.ts +4 -0
- package/dist/inspector/plot.d.ts.map +1 -0
- package/dist/inspector/plot.js +23 -0
- package/dist/inspector/plot.js.map +1 -0
- package/dist/inspector/probe.d.ts +19 -0
- package/dist/inspector/probe.d.ts.map +1 -0
- package/dist/inspector/probe.js +37 -0
- package/dist/inspector/probe.js.map +1 -0
- package/dist/inspector/tuning.d.ts +19 -0
- package/dist/inspector/tuning.d.ts.map +1 -0
- package/dist/inspector/tuning.js +37 -0
- package/dist/inspector/tuning.js.map +1 -0
- package/dist/interactive-navigation/index.d.ts +44 -0
- package/dist/interactive-navigation/index.d.ts.map +1 -0
- package/dist/interactive-navigation/index.js +350 -0
- package/dist/interactive-navigation/index.js.map +1 -0
- package/dist/keyboard.d.ts +24 -0
- package/dist/keyboard.d.ts.map +1 -1
- package/dist/keyboard.js +199 -6
- package/dist/keyboard.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 +55 -0
- package/dist/mixer.d.ts.map +1 -0
- package/dist/mixer.js +286 -0
- package/dist/mixer.js.map +1 -0
- package/dist/motion-scope.d.ts +8 -2
- package/dist/motion-scope.d.ts.map +1 -1
- package/dist/motion-scope.js +24 -3
- package/dist/motion-scope.js.map +1 -1
- package/dist/motion-states.d.ts +19 -7
- package/dist/motion-states.d.ts.map +1 -1
- package/dist/motion-states.js +116 -26
- package/dist/motion-states.js.map +1 -1
- package/dist/motion-value.d.ts +227 -0
- package/dist/motion-value.d.ts.map +1 -0
- package/dist/motion-value.js +1074 -0
- package/dist/motion-value.js.map +1 -0
- package/dist/native/index.d.ts +10 -0
- package/dist/native/index.d.ts.map +1 -0
- package/dist/native/index.js +6 -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 +37 -0
- package/dist/native-property.d.ts.map +1 -0
- package/dist/native-property.js +285 -0
- package/dist/native-property.js.map +1 -0
- package/dist/particles.d.ts +5 -2
- package/dist/particles.d.ts.map +1 -1
- package/dist/particles.js +16 -10
- package/dist/particles.js.map +1 -1
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +2 -2
- package/dist/path.js.map +1 -1
- package/dist/physics/index.d.ts +139 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/physics/index.js +316 -0
- package/dist/physics/index.js.map +1 -0
- package/dist/physics/native.d.ts +54 -0
- package/dist/physics/native.d.ts.map +1 -0
- package/dist/physics/native.js +64 -0
- package/dist/physics/native.js.map +1 -0
- 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/predictive-back/index.d.ts +45 -0
- package/dist/predictive-back/index.d.ts.map +1 -0
- package/dist/predictive-back/index.js +220 -0
- package/dist/predictive-back/index.js.map +1 -0
- package/dist/predictive-back/presentation.d.ts +4 -0
- package/dist/predictive-back/presentation.d.ts.map +1 -0
- package/dist/predictive-back/presentation.js +3 -0
- package/dist/predictive-back/presentation.js.map +1 -0
- package/dist/press.d.ts.map +1 -1
- package/dist/press.js +11 -2
- package/dist/press.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/sampling.d.ts +35 -0
- package/dist/sampling.d.ts.map +1 -0
- package/dist/sampling.js +123 -0
- package/dist/sampling.js.map +1 -0
- package/dist/scene-appearance.d.ts +14 -0
- package/dist/scene-appearance.d.ts.map +1 -0
- package/dist/scene-appearance.js +68 -0
- package/dist/scene-appearance.js.map +1 -0
- package/dist/scene-camera.d.ts +5 -0
- package/dist/scene-camera.d.ts.map +1 -0
- package/dist/scene-camera.js +23 -0
- package/dist/scene-camera.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/scroll-header/geometry.d.ts +18 -0
- package/dist/scroll-header/geometry.d.ts.map +1 -0
- package/dist/scroll-header/geometry.js +46 -0
- package/dist/scroll-header/geometry.js.map +1 -0
- package/dist/scroll-header/index.d.ts +48 -0
- package/dist/scroll-header/index.d.ts.map +1 -0
- package/dist/scroll-header/index.js +399 -0
- package/dist/scroll-header/index.js.map +1 -0
- package/dist/scroll-header/native.d.ts +28 -0
- package/dist/scroll-header/native.d.ts.map +1 -0
- package/dist/scroll-header/native.js +43 -0
- package/dist/scroll-header/native.js.map +1 -0
- package/dist/sensors/index.d.ts +69 -0
- package/dist/sensors/index.d.ts.map +1 -0
- package/dist/sensors/index.js +149 -0
- package/dist/sensors/index.js.map +1 -0
- package/dist/sensors/native.d.ts +20 -0
- package/dist/sensors/native.d.ts.map +1 -0
- package/dist/sensors/native.js +48 -0
- package/dist/sensors/native.js.map +1 -0
- 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/shapes/android.d.ts +3 -0
- package/dist/shapes/android.d.ts.map +1 -0
- package/dist/shapes/android.js +51 -0
- package/dist/shapes/android.js.map +1 -0
- package/dist/shapes/index.d.ts +6 -0
- package/dist/shapes/index.d.ts.map +1 -0
- package/dist/shapes/index.js +238 -0
- package/dist/shapes/index.js.map +1 -0
- package/dist/shapes/ios.d.ts +3 -0
- package/dist/shapes/ios.d.ts.map +1 -0
- package/dist/shapes/ios.js +164 -0
- package/dist/shapes/ios.js.map +1 -0
- package/dist/shapes/native.d.ts +18 -0
- package/dist/shapes/native.d.ts.map +1 -0
- package/dist/shapes/native.js +10 -0
- package/dist/shapes/native.js.map +1 -0
- package/dist/shapes/path.d.ts +10 -0
- package/dist/shapes/path.d.ts.map +1 -0
- package/dist/shapes/path.js +106 -0
- package/dist/shapes/path.js.map +1 -0
- package/dist/shapes/types.d.ts +55 -0
- package/dist/shapes/types.d.ts.map +1 -0
- package/dist/shapes/types.js +11 -0
- package/dist/shapes/types.js.map +1 -0
- package/dist/shared-layout/index.d.ts +40 -0
- package/dist/shared-layout/index.d.ts.map +1 -0
- package/dist/shared-layout/index.js +267 -0
- package/dist/shared-layout/index.js.map +1 -0
- package/dist/shared-layout/native.d.ts +15 -0
- package/dist/shared-layout/native.d.ts.map +1 -0
- package/dist/shared-layout/native.js +79 -0
- package/dist/shared-layout/native.js.map +1 -0
- package/dist/shared-layout/timing.d.ts +9 -0
- package/dist/shared-layout/timing.d.ts.map +1 -0
- package/dist/shared-layout/timing.js +68 -0
- package/dist/shared-layout/timing.js.map +1 -0
- package/dist/shared-navigation/entry.d.ts +51 -0
- package/dist/shared-navigation/entry.d.ts.map +1 -0
- package/dist/shared-navigation/entry.js +619 -0
- package/dist/shared-navigation/entry.js.map +1 -0
- package/dist/shared-navigation/index.d.ts +58 -0
- package/dist/shared-navigation/index.d.ts.map +1 -0
- package/dist/shared-navigation/index.js +318 -0
- package/dist/shared-navigation/index.js.map +1 -0
- package/dist/shared-navigation/return-signal.d.ts +16 -0
- package/dist/shared-navigation/return-signal.d.ts.map +1 -0
- package/dist/shared-navigation/return-signal.js +35 -0
- package/dist/shared-navigation/return-signal.js.map +1 -0
- package/dist/shared-navigation/return-target.d.ts +32 -0
- package/dist/shared-navigation/return-target.d.ts.map +1 -0
- package/dist/shared-navigation/return-target.js +168 -0
- package/dist/shared-navigation/return-target.js.map +1 -0
- package/dist/shared-navigation/scope.d.ts +4 -0
- package/dist/shared-navigation/scope.d.ts.map +1 -0
- package/dist/shared-navigation/scope.js +2 -0
- package/dist/shared-navigation/scope.js.map +1 -0
- package/dist/shared-navigation/targets.d.ts +6 -0
- package/dist/shared-navigation/targets.d.ts.map +1 -0
- package/dist/shared-navigation/targets.js +36 -0
- package/dist/shared-navigation/targets.js.map +1 -0
- package/dist/size-layout.d.ts +19 -0
- package/dist/size-layout.d.ts.map +1 -0
- package/dist/size-layout.js +216 -0
- package/dist/size-layout.js.map +1 -0
- package/dist/size.d.ts +19 -0
- package/dist/size.d.ts.map +1 -0
- package/dist/size.js +251 -0
- package/dist/size.js.map +1 -0
- package/dist/spring.d.ts +2 -0
- package/dist/spring.d.ts.map +1 -1
- package/dist/spring.js +11 -0
- package/dist/spring.js.map +1 -1
- package/dist/svg-path.d.ts +18 -0
- package/dist/svg-path.d.ts.map +1 -1
- package/dist/svg-path.js +3 -2
- package/dist/svg-path.js.map +1 -1
- package/dist/testing/clock.d.ts +40 -0
- package/dist/testing/clock.d.ts.map +1 -0
- package/dist/testing/clock.js +116 -0
- package/dist/testing/clock.js.map +1 -0
- package/dist/testing/handoff-recorder.d.ts +8 -0
- package/dist/testing/handoff-recorder.d.ts.map +1 -0
- package/dist/testing/handoff-recorder.js +77 -0
- package/dist/testing/handoff-recorder.js.map +1 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/native.d.ts +46 -0
- package/dist/testing/native.d.ts.map +1 -0
- package/dist/testing/native.js +313 -0
- package/dist/testing/native.js.map +1 -0
- package/dist/testing/presentation.d.ts +11 -0
- package/dist/testing/presentation.d.ts.map +1 -0
- package/dist/testing/presentation.js +45 -0
- package/dist/testing/presentation.js.map +1 -0
- package/dist/testing/replay.d.ts +39 -0
- package/dist/testing/replay.d.ts.map +1 -0
- package/dist/testing/replay.js +99 -0
- package/dist/testing/replay.js.map +1 -0
- package/dist/testing/scroll-handoff-native.d.ts +10 -0
- package/dist/testing/scroll-handoff-native.d.ts.map +1 -0
- package/dist/testing/scroll-handoff-native.js +151 -0
- package/dist/testing/scroll-handoff-native.js.map +1 -0
- package/dist/testing/scroll-handoff.d.ts +25 -0
- package/dist/testing/scroll-handoff.d.ts.map +1 -0
- package/dist/testing/scroll-handoff.js +127 -0
- package/dist/testing/scroll-handoff.js.map +1 -0
- package/dist/testing/sensors.d.ts +13 -0
- package/dist/testing/sensors.d.ts.map +1 -0
- package/dist/testing/sensors.js +26 -0
- package/dist/testing/sensors.js.map +1 -0
- package/dist/testing/trace.d.ts +101 -0
- package/dist/testing/trace.d.ts.map +1 -0
- package/dist/testing/trace.js +263 -0
- package/dist/testing/trace.js.map +1 -0
- 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 +3 -0
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +281 -40
- package/dist/track.js.map +1 -1
- package/dist/transition.d.ts +54 -2
- package/dist/transition.d.ts.map +1 -1
- package/dist/transition.js +128 -8
- package/dist/transition.js.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/value-observers.d.ts +22 -0
- package/dist/value-observers.d.ts.map +1 -0
- package/dist/value-observers.js +122 -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 +33 -3
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +118 -3
- package/dist/vue/index.js.map +1 -1
- package/dist/zoomable.d.ts +1 -1
- package/dist/zoomable.d.ts.map +1 -1
- package/package.json +68 -3
- package/platforms/android/include.gradle +10 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/BlurEffect.java +89 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleMath.java +158 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/CircleWorld.java +221 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSession.java +227 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GestureSurface.java +54 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/GradientLayer.java +224 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrame.java +53 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardFrameFollower.java +57 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/KeyboardObserver.java +97 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/LiveSpring.java +277 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/MotionProbe.java +70 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ParticleEmitter.java +192 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ParticleSimulation.java +114 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/PredictiveBackSession.java +212 -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/ScrollHeader.java +84 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SensorMath.java +28 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SensorSource.java +217 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/ShapeLayer.java +120 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SharedLayoutFlight.java +287 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SharedNavigationScene.java +115 -0
- package/platforms/android/java/org/rafaelaugusto/jolt/SpringState.java +39 -0
- package/platforms/android/proguard-rules.pro +20 -0
- package/platforms/ios/build.xcconfig +1 -1
- package/platforms/ios/src/JoltBlur.h +14 -0
- package/platforms/ios/src/JoltBlur.m +86 -0
- package/platforms/ios/src/JoltCircleMath.h +191 -0
- package/platforms/ios/src/JoltCircleWorld.h +18 -0
- package/platforms/ios/src/JoltCircleWorld.m +218 -0
- package/platforms/ios/src/JoltGestureSession.h +23 -0
- package/platforms/ios/src/JoltGestureSession.m +251 -0
- package/platforms/ios/src/JoltInteractiveNavigation.h +23 -0
- package/platforms/ios/src/JoltInteractiveNavigation.m +255 -0
- package/platforms/ios/src/JoltLiveSpring.h +29 -0
- package/platforms/ios/src/JoltLiveSpring.m +243 -0
- package/platforms/ios/src/JoltMotionProbe.h +9 -0
- package/platforms/ios/src/JoltMotionProbe.m +72 -0
- package/platforms/ios/src/JoltReorderSession.h +15 -0
- package/platforms/ios/src/JoltReorderSession.m +205 -0
- package/platforms/ios/src/JoltScrollHeader.h +13 -0
- package/platforms/ios/src/JoltScrollHeader.m +101 -0
- package/platforms/ios/src/JoltSensorMath.h +39 -0
- package/platforms/ios/src/JoltSensorSource.h +13 -0
- package/platforms/ios/src/JoltSensorSource.m +201 -0
- package/platforms/ios/src/JoltSharedLayoutFlight.h +19 -0
- package/platforms/ios/src/JoltSharedLayoutFlight.m +250 -0
- package/platforms/ios/src/JoltSpringState.h +35 -0
- package/platforms/ios/src/module.modulemap +10 -0
- package/src/android-plugin.d.ts +464 -0
- package/src/animate.ts +129 -15
- package/src/blur/index.ts +195 -0
- package/src/blur/native.ts +70 -0
- package/src/blur/types.ts +32 -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/config.ts +39 -1
- package/src/decay.ts +9 -0
- package/src/drag.ts +67 -21
- package/src/driver/android-gradient.ts +116 -0
- package/src/driver/android-particles.ts +118 -0
- package/src/driver/android.ts +31 -1
- package/src/driver/frame.ts +10 -0
- package/src/driver/index.ts +4 -0
- package/src/driver/ios-gradient.ts +136 -0
- package/src/driver/ios-scroll-delegate.ts +23 -0
- package/src/driver/ios.ts +10 -0
- package/src/easing.ts +21 -1
- package/src/engine.ts +209 -60
- package/src/gesture-native.ts +139 -0
- package/src/gestures/index.ts +365 -0
- package/src/glass/index.ts +218 -0
- package/src/gradient-binding.ts +158 -0
- package/src/gradient.ts +663 -0
- package/src/gravity.ts +107 -0
- package/src/haptics.ts +106 -28
- package/src/image-effect.ts +10 -2
- package/src/index.ts +56 -7
- package/src/inspector/index.ts +523 -0
- package/src/inspector/plot.ts +27 -0
- package/src/inspector/probe.ts +50 -0
- package/src/inspector/tuning.ts +51 -0
- package/src/interactive-navigation/index.ts +427 -0
- package/src/ios-plugin.d.ts +280 -0
- package/src/keyboard.ts +231 -7
- package/src/live-spring-driver.ts +181 -0
- package/src/mixer.ts +312 -0
- package/src/motion-scope.ts +39 -6
- package/src/motion-states.ts +149 -42
- package/src/motion-value.ts +1289 -0
- package/src/native/index.ts +30 -0
- package/src/native-properties.ts +188 -0
- package/src/native-property-driver.ts +123 -0
- package/src/native-property.ts +366 -0
- package/src/particles.ts +18 -17
- package/src/path.ts +2 -1
- package/src/physics/index.ts +476 -0
- package/src/physics/native.ts +121 -0
- package/src/playback-group.ts +17 -1
- package/src/playback.ts +41 -0
- package/src/predictive-back/index.ts +280 -0
- package/src/predictive-back/presentation.ts +6 -0
- package/src/press.ts +10 -2
- 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/sampling.ts +173 -0
- package/src/scene-appearance.ts +92 -0
- package/src/scene-camera.ts +30 -0
- package/src/scene-shader.ts +139 -0
- package/src/scroll-header/geometry.ts +88 -0
- package/src/scroll-header/index.ts +530 -0
- package/src/scroll-header/native.ts +89 -0
- package/src/sensors/index.ts +246 -0
- package/src/sensors/native.ts +72 -0
- package/src/sequence.ts +209 -20
- package/src/shapes/android.ts +63 -0
- package/src/shapes/index.ts +267 -0
- package/src/shapes/ios.ts +194 -0
- package/src/shapes/native.ts +27 -0
- package/src/shapes/path.ts +127 -0
- package/src/shapes/types.ts +63 -0
- package/src/shared-layout/index.ts +343 -0
- package/src/shared-layout/native.ts +138 -0
- package/src/shared-layout/timing.ts +87 -0
- package/src/shared-navigation/entry.ts +695 -0
- package/src/shared-navigation/index.ts +414 -0
- package/src/shared-navigation/return-signal.ts +41 -0
- package/src/shared-navigation/return-target.ts +197 -0
- package/src/shared-navigation/scope.ts +3 -0
- package/src/shared-navigation/targets.ts +38 -0
- package/src/size-layout.ts +237 -0
- package/src/size.ts +302 -0
- package/src/spring.ts +18 -0
- package/src/svg-path.ts +8 -3
- package/src/testing/clock.ts +128 -0
- package/src/testing/handoff-recorder.ts +98 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/native.ts +386 -0
- package/src/testing/presentation.ts +46 -0
- package/src/testing/replay.ts +149 -0
- package/src/testing/scroll-handoff-native.ts +201 -0
- package/src/testing/scroll-handoff.ts +140 -0
- package/src/testing/sensors.ts +41 -0
- package/src/testing/trace.ts +340 -0
- package/src/timed-animation.ts +192 -0
- package/src/track.ts +334 -38
- package/src/transition.ts +197 -9
- package/src/types.ts +11 -1
- package/src/value-observers.ts +147 -0
- package/src/value-track.ts +71 -0
- package/src/vue/index.ts +147 -1
- package/src/zoomable.ts +1 -1
package/dist/driver/ios.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { iosPlayback } from './ios-playback.js';
|
|
2
|
+
import { syncLiveSprings } from '../live-spring-driver.js';
|
|
2
3
|
import { isDecorationProperty } from '../decoration.js';
|
|
3
4
|
import { playIOSDecoration, presentedIOSDecoration, syncIOSDecoration, } from './ios-decoration.js';
|
|
4
5
|
import { Application } from '@nativescript/core';
|
|
@@ -8,6 +9,7 @@ import { playIOSColor, presentedIOSColor } from './ios-color.js';
|
|
|
8
9
|
import { after } from './index.js';
|
|
9
10
|
import { hasInteractionSurface } from '../interaction-surface.js';
|
|
10
11
|
import { retainInteractiveLayout } from './ios-layout.js';
|
|
12
|
+
import { frame } from './frame.js';
|
|
11
13
|
const keyPaths = {
|
|
12
14
|
opacity: 'opacity',
|
|
13
15
|
x: 'transform.translation.x',
|
|
@@ -41,6 +43,7 @@ function ensurePerspective(view, layers) {
|
|
|
41
43
|
export function createIOSDriver() {
|
|
42
44
|
return {
|
|
43
45
|
now: () => CACurrentMediaTime() * 1000,
|
|
46
|
+
frame,
|
|
44
47
|
play(view, track, startedAt, onEnd) {
|
|
45
48
|
if (isDecorationProperty(track.property))
|
|
46
49
|
return playIOSDecoration(view, track, startedAt, onEnd);
|
|
@@ -151,6 +154,7 @@ export function createIOSDriver() {
|
|
|
151
154
|
syncIOSDecoration(view, excluding);
|
|
152
155
|
if (view.nativeViewProtected && typeof JoltInteractiveAnimation !== 'undefined')
|
|
153
156
|
JoltInteractiveAnimation.syncViewExcluding(view.nativeViewProtected, excluding ? (keyPaths[excluding] ?? null) : null);
|
|
157
|
+
syncLiveSprings(view);
|
|
154
158
|
},
|
|
155
159
|
presented(view, property) {
|
|
156
160
|
if (isDecorationProperty(property))
|
|
@@ -202,6 +206,11 @@ export function createIOSDriver() {
|
|
|
202
206
|
},
|
|
203
207
|
after,
|
|
204
208
|
reducedMotion: () => UIAccessibilityIsReduceMotionEnabled(),
|
|
209
|
+
watchReducedMotion(callback) {
|
|
210
|
+
const name = UIAccessibilityReduceMotionStatusDidChangeNotification;
|
|
211
|
+
const observer = Application.ios.addNotificationObserver(name, callback);
|
|
212
|
+
return () => Application.ios.removeNotificationObserver(observer, name);
|
|
213
|
+
},
|
|
205
214
|
};
|
|
206
215
|
}
|
|
207
216
|
//# sourceMappingURL=ios.js.map
|
package/dist/driver/ios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/driver/ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAa,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,KAAK,EAAe,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"ios.js","sourceRoot":"","sources":["../../src/driver/ios.ts"],"names":[],"mappings":"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"}
|
package/dist/easing.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export type EasingFunction = (progress: number) => number;
|
|
2
2
|
export type CubicBezier = readonly [x1: number, y1: number, x2: number, y2: number];
|
|
3
|
-
export type EasingName = 'linear' | 'ease' | 'easeIn' | 'easeOut' | 'easeInOut' | 'circIn' | 'circOut' | 'circInOut' | 'backIn' | 'backOut' | 'backInOut' | 'anticipate'
|
|
3
|
+
export type EasingName = 'linear' | 'ease' | 'easeIn' | 'easeOut' | 'easeInOut' | 'circIn' | 'circOut' | 'circInOut' | 'backIn' | 'backOut' | 'backInOut' | 'anticipate' | `${'quad' | 'cubic' | 'quart' | 'quint' | 'sine' | 'expo'}${'In' | 'Out' | 'InOut'}`;
|
|
4
4
|
export type Easing = EasingName | CubicBezier | EasingFunction;
|
|
5
5
|
export declare const linear: EasingFunction;
|
|
6
|
+
/** Internal sampler hint. Arbitrary callbacks are never assumed to be band limited. */
|
|
7
|
+
export declare const isBuiltinEasing: (ease: EasingFunction) => boolean;
|
|
6
8
|
export declare function cubicBezier(x1: number, y1: number, x2: number, y2: number): EasingFunction;
|
|
7
9
|
export declare function resolveEasing(easing: Easing): EasingFunction;
|
|
8
10
|
//# sourceMappingURL=easing.d.ts.map
|
package/dist/easing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"easing.d.ts","sourceRoot":"","sources":["../src/easing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;AAEnF,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,GACX,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"easing.d.ts","sourceRoot":"","sources":["../src/easing.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;AAEnF,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,GACX,YAAY,GACZ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,EAAE,CAAA;AAExF,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAA;AAE9D,eAAO,MAAM,MAAM,EAAE,cAAyB,CAAA;AAE9C,uFAAuF;AACvF,eAAO,MAAM,eAAe,SAAU,cAAc,YAAuB,CAAA;AAE3E,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAwCzE;AA6CD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAQ5D"}
|
package/dist/easing.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export const linear = (p) => p;
|
|
2
|
+
const builtins = new WeakSet([linear]);
|
|
3
|
+
/** Internal sampler hint. Arbitrary callbacks are never assumed to be band limited. */
|
|
4
|
+
export const isBuiltinEasing = (ease) => builtins.has(ease);
|
|
2
5
|
export function cubicBezier(x1, y1, x2, y2) {
|
|
3
6
|
if (x1 === y1 && x2 === y2)
|
|
4
7
|
return linear;
|
|
@@ -37,12 +40,19 @@ export function cubicBezier(x1, y1, x2, y2) {
|
|
|
37
40
|
}
|
|
38
41
|
return t;
|
|
39
42
|
};
|
|
40
|
-
|
|
43
|
+
const result = (p) => (p <= 0 ? 0 : p >= 1 ? 1 : sampleY(solveX(p)));
|
|
44
|
+
builtins.add(result);
|
|
45
|
+
return result;
|
|
41
46
|
}
|
|
42
47
|
const backIn = cubicBezier(0.36, 0, 0.66, -0.56);
|
|
43
48
|
const circIn = (p) => 1 - Math.sqrt(1 - Math.min(p * p, 1));
|
|
44
49
|
const reverse = (easing) => (p) => 1 - easing(1 - p);
|
|
45
50
|
const mirror = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;
|
|
51
|
+
const family = (name, easeIn) => ({
|
|
52
|
+
[`${name}In`]: easeIn,
|
|
53
|
+
[`${name}Out`]: reverse(easeIn),
|
|
54
|
+
[`${name}InOut`]: mirror(easeIn),
|
|
55
|
+
});
|
|
46
56
|
const easings = {
|
|
47
57
|
linear,
|
|
48
58
|
ease: cubicBezier(0.25, 0.1, 0.25, 1),
|
|
@@ -56,7 +66,14 @@ const easings = {
|
|
|
56
66
|
backOut: reverse(backIn),
|
|
57
67
|
backInOut: mirror(backIn),
|
|
58
68
|
anticipate: (p) => p <= 0.5 ? backIn(2 * p) / 2 : p >= 1 ? 1 : 1 - Math.pow(2, 10 - 20 * p) / 2,
|
|
69
|
+
...family('quad', (p) => p ** 2),
|
|
70
|
+
...family('cubic', (p) => p ** 3),
|
|
71
|
+
...family('quart', (p) => p ** 4),
|
|
72
|
+
...family('quint', (p) => p ** 5),
|
|
73
|
+
...family('sine', (p) => (p >= 1 ? 1 : 1 - Math.cos((p * Math.PI) / 2))),
|
|
74
|
+
...family('expo', (p) => (p <= 0 ? 0 : 2 ** (10 * p - 10))),
|
|
59
75
|
};
|
|
76
|
+
Object.values(easings).forEach((ease) => builtins.add(ease));
|
|
60
77
|
export function resolveEasing(easing) {
|
|
61
78
|
if (typeof easing === 'function')
|
|
62
79
|
return easing;
|
package/dist/easing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"easing.js","sourceRoot":"","sources":["../src/easing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"easing.js","sourceRoot":"","sources":["../src/easing.ts"],"names":[],"mappings":"AAqBA,MAAM,CAAC,MAAM,MAAM,GAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAiB,CAAC,MAAM,CAAC,CAAC,CAAA;AACtD,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAoB,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAE3E,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;IACxE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,MAAM,CAAA;IAEzC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;IACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;IAC7B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;IACtB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;IACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;IAC7B,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;IAEtB,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;IAE5D,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;gBAAE,OAAO,CAAC,CAAA;YACpC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI;gBAAE,MAAK;YACjC,CAAC,IAAI,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,CAAC,GAAG,CAAC,CAAA;QACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI;gBAAE,MAAK;YACrC,IAAI,KAAK,GAAG,CAAC;gBAAE,GAAG,GAAG,CAAC,CAAA;;gBACjB,IAAI,GAAG,CAAC,CAAA;YACb,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5E,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;AAChD,MAAM,MAAM,GAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE3E,MAAM,OAAO,GACX,CAAC,MAAsB,EAAkB,EAAE,CAC3C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAErB,MAAM,MAAM,GACV,CAAC,MAAsB,EAAkB,EAAE,CAC3C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAEhE,MAAM,MAAM,GAAG,CAAmB,IAAO,EAAE,MAAsB,EAAE,EAAE,CACnE,CAAC;IACC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,MAAM;IACrB,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;CACjC,CAA4D,CAAA;AAE/D,MAAM,OAAO,GAAuC;IAClD,MAAM;IACN,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM;IACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;IACzB,MAAM;IACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAChB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;IAC9E,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAC5D,CAAA;AACD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAE5D,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAA;IAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,IAAI,CAAC,CAAA;QAC7D,OAAO,QAAQ,CAAA;IACjB,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,MAAM,CAAC,CAAA;AAC/B,CAAC"}
|
package/dist/engine.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PlaybackAnimation } from './playback.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type View } from '@nativescript/core';
|
|
3
3
|
import { type HapticOptions } from './haptics.js';
|
|
4
4
|
import { type Property } from './properties.js';
|
|
5
5
|
import { type Track } from './track.js';
|
|
@@ -22,9 +22,16 @@ export interface Plan {
|
|
|
22
22
|
transition: ResolvedTransition;
|
|
23
23
|
relative?: boolean;
|
|
24
24
|
path?: PreparedPath;
|
|
25
|
+
/** A track that is already sampled, like a motion value mapped onto a property. */
|
|
26
|
+
track?: () => Track;
|
|
27
|
+
/** A named layer composed with the property's base instead of replacing it. */
|
|
28
|
+
layer?: string;
|
|
25
29
|
}
|
|
26
30
|
interface Entry {
|
|
27
31
|
readonly track: Track;
|
|
32
|
+
/** The property, or the property and its layer. */
|
|
33
|
+
readonly key: string;
|
|
34
|
+
readonly layer?: string;
|
|
28
35
|
readonly startedAt: number;
|
|
29
36
|
readonly owner: ViewAnimation;
|
|
30
37
|
handle: unknown;
|
|
@@ -77,6 +84,7 @@ export declare class ViewAnimation implements PlaybackAnimation {
|
|
|
77
84
|
private readyListener;
|
|
78
85
|
private readonly endless;
|
|
79
86
|
private readonly timingListeners;
|
|
87
|
+
private readonly playbackChanged;
|
|
80
88
|
private timingChanged;
|
|
81
89
|
get paused(): boolean;
|
|
82
90
|
get duration(): number;
|
|
@@ -97,6 +105,8 @@ export declare class ViewAnimation implements PlaybackAnimation {
|
|
|
97
105
|
private scheduleArrival;
|
|
98
106
|
private becameIdle;
|
|
99
107
|
private playEntry;
|
|
108
|
+
/** Moves a natively playing entry into its property's mix, without restarting it. */
|
|
109
|
+
rehome(entry: Entry): void;
|
|
100
110
|
private unloaded;
|
|
101
111
|
constructor(view: View, plans: readonly Plan[], haptic?: HapticOptions | undefined, held?: boolean);
|
|
102
112
|
then<A = boolean, B = never>(onfulfilled?: ((finished: boolean) => A | PromiseLike<A>) | null, onrejected?: ((reason: unknown) => B | PromiseLike<B>) | null): Promise<A | B>;
|
|
@@ -110,9 +120,28 @@ export declare class ViewAnimation implements PlaybackAnimation {
|
|
|
110
120
|
export declare function currentValue(view: View, property: Property): number;
|
|
111
121
|
/** Internal property ownership marker; layout cleanup must preserve newer animations. */
|
|
112
122
|
export declare function propertyRevision(view: View, property: Property): symbol | undefined;
|
|
123
|
+
/** Internal read-only diagnostics. No observers or frame hooks are installed. */
|
|
124
|
+
export declare function inspectViewMotion(view: View): {
|
|
125
|
+
owner: ViewAnimation;
|
|
126
|
+
handle: unknown;
|
|
127
|
+
key: string;
|
|
128
|
+
property: Property;
|
|
129
|
+
layer: string | undefined;
|
|
130
|
+
track: Track;
|
|
131
|
+
elapsed: number;
|
|
132
|
+
paused: boolean;
|
|
133
|
+
}[];
|
|
113
134
|
/** Sample an existing owner at layout time, without stealing an animation started meanwhile. */
|
|
114
135
|
export declare function captureValue(view: View, property: Property): () => number | undefined;
|
|
115
|
-
/** Stops whatever is animating these properties of the view, or all of them. */
|
|
136
|
+
/** Stops whatever is animating these properties of the view, or all of them, layers included. */
|
|
116
137
|
export declare function stopView(view: View, properties?: readonly Property[]): void;
|
|
138
|
+
/** Stops the regular animations of these properties and leaves their layers running. */
|
|
139
|
+
export declare function stopBase(view: View, properties: readonly Property[]): void;
|
|
140
|
+
/** Stops one layer and takes away what it adds, also after it finished. */
|
|
141
|
+
export declare function stopLayer(view: View, layer: string, properties?: readonly Property[]): void;
|
|
142
|
+
/** Writes a property's base value, under its layers when it has any. */
|
|
143
|
+
export declare function setBase(view: View, property: Property, value: number): void;
|
|
144
|
+
/** A property's base value, without what its layers add. */
|
|
145
|
+
export declare function baseValue(view: View, property: Property): number;
|
|
117
146
|
export {};
|
|
118
147
|
//# sourceMappingURL=engine.d.ts.map
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { createClock, validateProgress, } from './playback.js';
|
|
1
|
+
import { createClock, registerPlayback, validateProgress, } from './playback.js';
|
|
2
|
+
import { Application } from '@nativescript/core';
|
|
2
3
|
import { getDriver } from './driver/index.js';
|
|
3
4
|
import { playHaptics } from './haptics.js';
|
|
4
5
|
import { readValue, writeValue } from './properties.js';
|
|
5
6
|
import { createTrack } from './track.js';
|
|
6
7
|
import { isColorProperty } from './color.js';
|
|
8
|
+
import { BASE, identity, MixHandle, mixFor, mixOf, mixesOf } from './mixer.js';
|
|
7
9
|
const revisions = new WeakMap();
|
|
8
10
|
const running = new WeakMap();
|
|
9
11
|
const arrivals = new WeakMap();
|
|
@@ -50,7 +52,9 @@ export class ViewAnimation {
|
|
|
50
52
|
readyListener;
|
|
51
53
|
endless;
|
|
52
54
|
timingListeners = new Set();
|
|
55
|
+
playbackChanged;
|
|
53
56
|
timingChanged() {
|
|
57
|
+
this.playbackChanged();
|
|
54
58
|
for (const callback of [...this.timingListeners])
|
|
55
59
|
callback();
|
|
56
60
|
}
|
|
@@ -83,6 +87,7 @@ export class ViewAnimation {
|
|
|
83
87
|
return;
|
|
84
88
|
if (!this.started) {
|
|
85
89
|
this.pendingProgress = value;
|
|
90
|
+
this.timingChanged();
|
|
86
91
|
return;
|
|
87
92
|
}
|
|
88
93
|
this.seekTime(this.duration * value);
|
|
@@ -141,7 +146,7 @@ export class ViewAnimation {
|
|
|
141
146
|
entry.done = false;
|
|
142
147
|
entry.finished = false;
|
|
143
148
|
this.pending++;
|
|
144
|
-
entriesOf(this.view).set(entry.
|
|
149
|
+
entriesOf(this.view).set(entry.key, entry);
|
|
145
150
|
this.playEntry(entry, position);
|
|
146
151
|
}
|
|
147
152
|
}
|
|
@@ -153,9 +158,11 @@ export class ViewAnimation {
|
|
|
153
158
|
this.timingChanged();
|
|
154
159
|
}
|
|
155
160
|
elapsed(entry, now) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
if (this.controlled)
|
|
162
|
+
return this.time();
|
|
163
|
+
if (entry.handle instanceof MixHandle)
|
|
164
|
+
return entry.handle.elapsed();
|
|
165
|
+
return getDriver().elapsed?.(entry.handle) ?? now - entry.startedAt;
|
|
159
166
|
}
|
|
160
167
|
time() {
|
|
161
168
|
return this.clock?.time() ?? 0;
|
|
@@ -163,7 +170,11 @@ export class ViewAnimation {
|
|
|
163
170
|
controlTracks(position, command = 'seek') {
|
|
164
171
|
const driver = getDriver();
|
|
165
172
|
for (const entry of this.entries)
|
|
166
|
-
if (
|
|
173
|
+
if (entry.done)
|
|
174
|
+
continue;
|
|
175
|
+
else if (entry.handle instanceof MixHandle)
|
|
176
|
+
entry.handle.control(position, this._paused);
|
|
177
|
+
else
|
|
167
178
|
driver.control?.(this.view, entry.handle, position, this._paused, command);
|
|
168
179
|
}
|
|
169
180
|
scheduleArrival() {
|
|
@@ -198,7 +209,8 @@ export class ViewAnimation {
|
|
|
198
209
|
const initial = entry.generation === 0;
|
|
199
210
|
const instance = ++entry.generation;
|
|
200
211
|
const driver = getDriver();
|
|
201
|
-
|
|
212
|
+
const startedAt = initial ? entry.startedAt : driver.now() - elapsed;
|
|
213
|
+
const onEnd = (finished = true) => {
|
|
202
214
|
if (entry.done || instance !== entry.generation)
|
|
203
215
|
return;
|
|
204
216
|
entry.done = true;
|
|
@@ -206,9 +218,30 @@ export class ViewAnimation {
|
|
|
206
218
|
entry.completedValue = readValue(this.view, entry.track.property);
|
|
207
219
|
forget(entry);
|
|
208
220
|
this.ended(finished);
|
|
209
|
-
}
|
|
221
|
+
};
|
|
222
|
+
const { property } = entry.track;
|
|
223
|
+
const mix = entry.layer !== undefined ? mixing(this.view, property) : mixOf(this.view, property);
|
|
224
|
+
entry.handle = mix
|
|
225
|
+
? mix.adopt(entry.layer ?? BASE, entry.track, startedAt, onEnd)
|
|
226
|
+
: driver.play(this.view, entry.track, startedAt, onEnd);
|
|
210
227
|
}
|
|
211
|
-
|
|
228
|
+
/** Moves a natively playing entry into its property's mix, without restarting it. */
|
|
229
|
+
rehome(entry) {
|
|
230
|
+
if (entry.done || entry.handle instanceof MixHandle)
|
|
231
|
+
return;
|
|
232
|
+
const elapsed = this.elapsed(entry, getDriver().now());
|
|
233
|
+
const handle = entry.handle;
|
|
234
|
+
entry.generation++;
|
|
235
|
+
getDriver().stop(this.view, handle);
|
|
236
|
+
this.playEntry(entry, elapsed);
|
|
237
|
+
}
|
|
238
|
+
unloaded = () => {
|
|
239
|
+
// NativeScript unloads the root view when iOS enters the background.
|
|
240
|
+
// An explicitly paused owner can resume after that temporary unload.
|
|
241
|
+
if (this._paused && Application.suspended)
|
|
242
|
+
return;
|
|
243
|
+
this.stop();
|
|
244
|
+
};
|
|
212
245
|
constructor(view, plans, haptic, held = false) {
|
|
213
246
|
this.view = view;
|
|
214
247
|
this.haptic = haptic;
|
|
@@ -217,6 +250,17 @@ export class ViewAnimation {
|
|
|
217
250
|
(plan.transition.curve.type === 'tween' &&
|
|
218
251
|
!Number.isFinite(plan.transition.curve.duration)));
|
|
219
252
|
this.finished = new Promise((resolve) => (this.resolve = resolve));
|
|
253
|
+
this.playbackChanged = registerPlayback(this, () => ({
|
|
254
|
+
position: this.pendingProgress,
|
|
255
|
+
time: this.pendingProgress === undefined
|
|
256
|
+
? this.time()
|
|
257
|
+
: this.pendingProgress * this.duration,
|
|
258
|
+
duration: this.duration,
|
|
259
|
+
paused: this._paused,
|
|
260
|
+
ready: this.ready,
|
|
261
|
+
settled: this.settled,
|
|
262
|
+
completed: this.settled && this.complete,
|
|
263
|
+
}));
|
|
220
264
|
setArrival(this, new Promise((resolve) => (this.arrive = resolve)));
|
|
221
265
|
setArrivalTiming(this, {
|
|
222
266
|
read: () => ({
|
|
@@ -263,15 +307,24 @@ export class ViewAnimation {
|
|
|
263
307
|
const driver = getDriver();
|
|
264
308
|
const now = driver.now();
|
|
265
309
|
const entries = entriesOf(this.view);
|
|
266
|
-
const
|
|
267
|
-
const
|
|
310
|
+
const made = plans.map((plan) => {
|
|
311
|
+
const { property, keyframes, transition, relative, path, layer } = plan;
|
|
312
|
+
const key = layer === undefined ? property : `${property}#${layer}`;
|
|
313
|
+
const mixed = layer !== undefined || mixOf(this.view, property) !== undefined;
|
|
314
|
+
const previous = entries.get(key);
|
|
268
315
|
let current;
|
|
269
316
|
let velocity = 0;
|
|
270
317
|
if (previous) {
|
|
271
318
|
const elapsed = elapsedOf(previous, now);
|
|
272
|
-
current =
|
|
319
|
+
current =
|
|
320
|
+
(mixed ? undefined : driver.presented(this.view, property)) ??
|
|
321
|
+
previous.track.valueAt(elapsed);
|
|
273
322
|
velocity = previous.owner.paused ? 0 : previous.track.velocityAt(elapsed);
|
|
274
|
-
|
|
323
|
+
}
|
|
324
|
+
else if (mixed) {
|
|
325
|
+
current =
|
|
326
|
+
mixOf(this.view, property)?.rest(layer ?? BASE) ??
|
|
327
|
+
(layer === undefined ? readValue(this.view, property) : identity(property));
|
|
275
328
|
}
|
|
276
329
|
else {
|
|
277
330
|
current =
|
|
@@ -279,31 +332,52 @@ export class ViewAnimation {
|
|
|
279
332
|
? driver.presented(this.view, property)
|
|
280
333
|
: undefined) ?? readValue(this.view, property);
|
|
281
334
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
if (
|
|
286
|
-
return current;
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
335
|
+
const build = () => {
|
|
336
|
+
if (plan.track)
|
|
337
|
+
return plan.track();
|
|
338
|
+
if (path)
|
|
339
|
+
return path.track(property, relative ? current : 0, transition.delay);
|
|
340
|
+
return createTrack(property, keyframes.map((value) => {
|
|
341
|
+
if (value === null)
|
|
342
|
+
return current;
|
|
343
|
+
if (layer !== undefined || !relative || isColorProperty(property))
|
|
344
|
+
return value;
|
|
345
|
+
return property === 'opacity' || property.startsWith('scale')
|
|
346
|
+
? current * value
|
|
347
|
+
: current + value;
|
|
348
|
+
}), transition, velocity);
|
|
349
|
+
};
|
|
350
|
+
return { track: build(), key, layer, previous };
|
|
293
351
|
});
|
|
294
|
-
|
|
295
|
-
|
|
352
|
+
// Validate every trajectory before interrupting any existing property owner.
|
|
353
|
+
for (const { previous } of made)
|
|
354
|
+
if (previous)
|
|
355
|
+
release(previous, now, false);
|
|
356
|
+
const tracks = made.map(({ track }) => track);
|
|
357
|
+
for (const { track, layer } of made) {
|
|
358
|
+
const mix = layer !== undefined
|
|
359
|
+
? mixing(this.view, track.property)
|
|
360
|
+
: mixOf(this.view, track.property);
|
|
361
|
+
if (!mix)
|
|
362
|
+
writeValue(this.view, track.property, track.to);
|
|
363
|
+
else if (track.end === 0)
|
|
364
|
+
mix.setRest(layer ?? BASE, track.to);
|
|
365
|
+
}
|
|
296
366
|
driver.sync?.(this.view);
|
|
297
|
-
for (const track of
|
|
298
|
-
let tokens = revisions.get(this.view);
|
|
299
|
-
if (!tokens)
|
|
300
|
-
revisions.set(this.view, (tokens = new Map()));
|
|
367
|
+
for (const { track, key, layer } of made) {
|
|
301
368
|
const token = Symbol(track.property);
|
|
302
|
-
|
|
369
|
+
if (layer === undefined) {
|
|
370
|
+
let tokens = revisions.get(this.view);
|
|
371
|
+
if (!tokens)
|
|
372
|
+
revisions.set(this.view, (tokens = new Map()));
|
|
373
|
+
tokens.set(track.property, token);
|
|
374
|
+
}
|
|
303
375
|
if (track.end === 0)
|
|
304
376
|
continue;
|
|
305
377
|
const entry = {
|
|
306
378
|
track,
|
|
379
|
+
key,
|
|
380
|
+
layer,
|
|
307
381
|
startedAt: now,
|
|
308
382
|
owner: this,
|
|
309
383
|
handle: undefined,
|
|
@@ -312,7 +386,7 @@ export class ViewAnimation {
|
|
|
312
386
|
generation: 0,
|
|
313
387
|
token,
|
|
314
388
|
};
|
|
315
|
-
entries.set(
|
|
389
|
+
entries.set(key, entry);
|
|
316
390
|
this.entries.push(entry);
|
|
317
391
|
this.pending++;
|
|
318
392
|
}
|
|
@@ -324,11 +398,17 @@ export class ViewAnimation {
|
|
|
324
398
|
if (this._paused)
|
|
325
399
|
this.clock.pause();
|
|
326
400
|
this.view.on('unloaded', this.unloaded);
|
|
327
|
-
this.haptics = playHaptics(this.view, tracks, this.haptic, driver, now, () => this.time());
|
|
328
|
-
if (this._paused)
|
|
329
|
-
this.haptics?.pause();
|
|
330
401
|
for (const entry of this.entries)
|
|
331
402
|
this.playEntry(entry);
|
|
403
|
+
// Register discrete feedback after the visual animators. Android dispatches
|
|
404
|
+
// these callbacks in registration order within a frame: feedback should see
|
|
405
|
+
// that frame's updated pose, not the preceding frame's position.
|
|
406
|
+
// Scale-zero native playback may already have completed synchronously.
|
|
407
|
+
if (!this.settled) {
|
|
408
|
+
this.haptics = playHaptics(this.view, tracks, this.haptic, driver, now, () => this.time());
|
|
409
|
+
if (this._paused)
|
|
410
|
+
this.haptics?.pause();
|
|
411
|
+
}
|
|
332
412
|
if (this.pendingProgress !== undefined) {
|
|
333
413
|
const progress = this.pendingProgress;
|
|
334
414
|
this.pendingProgress = undefined;
|
|
@@ -343,8 +423,8 @@ export class ViewAnimation {
|
|
|
343
423
|
this.becameIdle();
|
|
344
424
|
}
|
|
345
425
|
waitForLoad(plans) {
|
|
346
|
-
for (const { property, keyframes, relative } of plans) {
|
|
347
|
-
if (relative && !isColorProperty(property))
|
|
426
|
+
for (const { property, keyframes, relative, layer } of plans) {
|
|
427
|
+
if (layer !== undefined || (relative && !isColorProperty(property)))
|
|
348
428
|
continue;
|
|
349
429
|
const first = keyframes[0];
|
|
350
430
|
if (first !== null && first !== undefined)
|
|
@@ -379,6 +459,9 @@ export class ViewAnimation {
|
|
|
379
459
|
}
|
|
380
460
|
/** Current native presentation when available, otherwise the active curve or model. */
|
|
381
461
|
export function currentValue(view, property) {
|
|
462
|
+
const mix = mixOf(view, property);
|
|
463
|
+
if (mix)
|
|
464
|
+
return mix.value();
|
|
382
465
|
const entry = running.get(view)?.get(property);
|
|
383
466
|
if (!entry)
|
|
384
467
|
return readValue(view, property);
|
|
@@ -390,6 +473,21 @@ export function currentValue(view, property) {
|
|
|
390
473
|
export function propertyRevision(view, property) {
|
|
391
474
|
return revisions.get(view)?.get(property);
|
|
392
475
|
}
|
|
476
|
+
/** Internal read-only diagnostics. No observers or frame hooks are installed. */
|
|
477
|
+
export function inspectViewMotion(view) {
|
|
478
|
+
const now = getDriver().now();
|
|
479
|
+
return [...(running.get(view)?.values() ?? [])].map((entry) => ({
|
|
480
|
+
owner: entry.owner,
|
|
481
|
+
handle: entry.handle,
|
|
482
|
+
key: entry.key,
|
|
483
|
+
property: entry.track.property,
|
|
484
|
+
layer: entry.layer,
|
|
485
|
+
track: entry.track,
|
|
486
|
+
// A development hook may inspect while playEntry is still obtaining its handle.
|
|
487
|
+
elapsed: entry.handle === undefined ? 0 : elapsedOf(entry, now),
|
|
488
|
+
paused: entry.owner.paused,
|
|
489
|
+
}));
|
|
490
|
+
}
|
|
393
491
|
/** Sample an existing owner at layout time, without stealing an animation started meanwhile. */
|
|
394
492
|
export function captureValue(view, property) {
|
|
395
493
|
const token = propertyRevision(view, property);
|
|
@@ -403,20 +501,69 @@ export function captureValue(view, property) {
|
|
|
403
501
|
return entry?.finished ? entry.track.to : initial;
|
|
404
502
|
};
|
|
405
503
|
}
|
|
406
|
-
/** Stops whatever is animating these properties of the view, or all of them. */
|
|
504
|
+
/** Stops whatever is animating these properties of the view, or all of them, layers included. */
|
|
407
505
|
export function stopView(view, properties) {
|
|
408
506
|
const tokens = revisions.get(view);
|
|
409
507
|
for (const property of properties ?? tokens?.keys() ?? [])
|
|
410
508
|
tokens?.set(property, Symbol(property));
|
|
509
|
+
for (const mix of mixesOf(view))
|
|
510
|
+
if (!properties || properties.includes(mix.property))
|
|
511
|
+
mix.freeze();
|
|
411
512
|
const entries = running.get(view);
|
|
412
513
|
if (!entries)
|
|
413
514
|
return;
|
|
414
515
|
const now = getDriver().now();
|
|
415
|
-
for (const
|
|
416
|
-
if (!properties || properties.includes(property))
|
|
516
|
+
for (const entry of [...entries.values()]) {
|
|
517
|
+
if (!properties || properties.includes(entry.track.property))
|
|
518
|
+
release(entry, now, true);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
/** Stops the regular animations of these properties and leaves their layers running. */
|
|
522
|
+
export function stopBase(view, properties) {
|
|
523
|
+
const tokens = revisions.get(view);
|
|
524
|
+
for (const property of properties)
|
|
525
|
+
tokens?.set(property, Symbol(property));
|
|
526
|
+
const now = getDriver().now();
|
|
527
|
+
for (const property of properties) {
|
|
528
|
+
const entry = running.get(view)?.get(property);
|
|
529
|
+
if (entry)
|
|
417
530
|
release(entry, now, true);
|
|
418
531
|
}
|
|
419
532
|
}
|
|
533
|
+
/** Stops one layer and takes away what it adds, also after it finished. */
|
|
534
|
+
export function stopLayer(view, layer, properties) {
|
|
535
|
+
const now = getDriver().now();
|
|
536
|
+
for (const entry of [...(running.get(view)?.values() ?? [])])
|
|
537
|
+
if (entry.layer === layer &&
|
|
538
|
+
(!properties || properties.includes(entry.track.property)))
|
|
539
|
+
release(entry, now, true);
|
|
540
|
+
for (const mix of mixesOf(view))
|
|
541
|
+
if (!properties || properties.includes(mix.property))
|
|
542
|
+
mix.setRest(layer, identity(mix.property));
|
|
543
|
+
}
|
|
544
|
+
/** Writes a property's base value, under its layers when it has any. */
|
|
545
|
+
export function setBase(view, property, value) {
|
|
546
|
+
const mix = mixOf(view, property);
|
|
547
|
+
if (mix)
|
|
548
|
+
mix.setRest(BASE, value);
|
|
549
|
+
else
|
|
550
|
+
writeValue(view, property, value);
|
|
551
|
+
}
|
|
552
|
+
/** A property's base value, without what its layers add. */
|
|
553
|
+
export function baseValue(view, property) {
|
|
554
|
+
return mixOf(view, property)?.rest(BASE) ?? readValue(view, property);
|
|
555
|
+
}
|
|
556
|
+
/** The property's mix, created on its first layer; a base playing natively moves into it. */
|
|
557
|
+
function mixing(view, property) {
|
|
558
|
+
const existing = mixOf(view, property);
|
|
559
|
+
if (existing)
|
|
560
|
+
return existing;
|
|
561
|
+
const mix = mixFor(view, property);
|
|
562
|
+
const base = running.get(view)?.get(property);
|
|
563
|
+
if (base)
|
|
564
|
+
base.owner.rehome(base);
|
|
565
|
+
return mix;
|
|
566
|
+
}
|
|
420
567
|
function entriesOf(view) {
|
|
421
568
|
let entries = running.get(view);
|
|
422
569
|
if (!entries)
|
|
@@ -425,8 +572,8 @@ function entriesOf(view) {
|
|
|
425
572
|
}
|
|
426
573
|
function forget(entry) {
|
|
427
574
|
const entries = running.get(entry.owner.view);
|
|
428
|
-
if (entries?.get(entry.
|
|
429
|
-
entries.delete(entry.
|
|
575
|
+
if (entries?.get(entry.key) === entry)
|
|
576
|
+
entries.delete(entry.key);
|
|
430
577
|
}
|
|
431
578
|
function release(entry, now, commit) {
|
|
432
579
|
const driver = getDriver();
|
|
@@ -434,6 +581,11 @@ function release(entry, now, commit) {
|
|
|
434
581
|
const { property } = entry.track;
|
|
435
582
|
entry.done = true;
|
|
436
583
|
forget(entry);
|
|
584
|
+
if (entry.handle instanceof MixHandle) {
|
|
585
|
+
entry.handle.mix.detach(entry.layer ?? BASE, commit);
|
|
586
|
+
entry.owner.ended(false);
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
437
589
|
if (commit) {
|
|
438
590
|
const value = driver.presented(view, property) ?? entry.track.valueAt(elapsedOf(entry, now));
|
|
439
591
|
writeValue(view, property, value);
|