@wix/motion 1.600.0 → 1.602.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,171 @@
1
1
  # Wix Motion
2
2
 
3
- > npm i @wix/motion
3
+ A comprehensive animation library featuring 82+ carefully crafted presets, designed for modern web applications, built on native browser technology.
4
+
5
+ ## ✨ Features
6
+
7
+ - **Web Platform First** - Built on native browser technology for smooth 60fps animations
8
+ - **82+ Animation Presets** - Professionally designed animations ready to use
9
+ - **5 Animation Categories** - Entrance, Ongoing, Scroll, Mouse, and Background Scroll effects
10
+ - **TypeScript Support** - Complete type definitions with IntelliSense support
11
+ - **Dual Rendering** - Both Web Animations API and CSS-based rendering
12
+ - **Scroll Integration** - Advanced scroll-driven animations with ViewTimeline API support
13
+ - **Mouse Parallax** - Interactive pointer-based animations
14
+ - **Performance Optimized** - Uses fastdom to minimize layout thrashing
15
+
16
+ ## 🚀 Quick Start
17
+
18
+ ### Installation
19
+
20
+ ```bash
21
+ npm install @wix/motion
22
+ ```
23
+
24
+ ### Basic Usage
25
+
26
+ ```typescript
27
+ import { getWebAnimation } from '@wix/motion';
28
+
29
+ // Create a fade-in entrance animation
30
+ const animation = getWebAnimation(
31
+ document.getElementById('myElement'),
32
+ {
33
+ type: 'TimeAnimationOptions',
34
+ namedEffect: { type: 'FadeIn' },
35
+ duration: 1000,
36
+ easing: 'easeOut'
37
+ }
38
+ );
39
+
40
+ // Play the animation
41
+ await animation.play();
42
+ ```
43
+
44
+ ### Scroll-Driven Animation
45
+
46
+ ```typescript
47
+ import { getScrubScene } from '@wix/motion';
48
+
49
+ // Create a scroll-driven parallax effect
50
+ const scene = getScrubScene(
51
+ document.getElementById('scrollElement'),
52
+ {
53
+ type: 'ScrubAnimationOptions',
54
+ namedEffect: {
55
+ type: 'ParallaxScroll',
56
+ speed: 0.5
57
+ }
58
+ },
59
+ { trigger: 'view-progress', element: document.getElementById('viewport') }
60
+ );
61
+ ```
62
+
63
+ ## 📚 Animation Categories
64
+
65
+ ### 🎭 Entrance Animations (24 presets)
66
+ Perfect for element reveals and page transitions:
67
+ - **FadeIn** - Simple opacity transition
68
+ - **ArcIn** - Curved motion with 3D rotation
69
+ - **BounceIn** - Spring-based entrance with bounce effect
70
+ - **SlideIn** - Directional slides from off-screen
71
+ - **FlipIn** - 3D flip transitions
72
+ - [See all entrance animations →](docs/categories/entrance-animations.md)
73
+
74
+ ### 🔄 Ongoing Animations (16 presets)
75
+ Continuous looping animations for attention and delight:
76
+ - **Pulse** - Rhythmic scaling effect
77
+ - **Breathe** - Organic scaling animation
78
+ - **Spin** - Smooth rotation loops
79
+ - **Wiggle** - Playful shake motions
80
+ - **Float** - Gentle floating movement
81
+ - [See all ongoing animations →](docs/categories/ongoing-animations.md)
82
+
83
+ ### 📜 Scroll Animations (19 presets)
84
+ Scroll-synchronized effects that respond to viewport position:
85
+ - **ParallaxScroll** - Classic parallax movement
86
+ - **FadeScroll** - Opacity changes on scroll
87
+ - **GrowScroll** - Scale transformations
88
+ - **RevealScroll** - Clip-path reveals
89
+ - **TiltScroll** - 3D perspective tilting
90
+ - [See all scroll animations →](docs/categories/scroll-animations.md)
91
+
92
+ ### 🖱️ Mouse Animations (12 presets)
93
+ Interactive pointer-driven effects:
94
+ - **TrackMouse** - Element follows cursor
95
+ - **Tilt3DMouse** - 3D tilt based on pointer position
96
+ - **ScaleMouse** - Dynamic scaling on hover
97
+ - **BlurMouse** - Motion blur effects
98
+ - [See all mouse animations →](docs/categories/mouse-animations.md)
99
+
100
+ ### 🖼️ Background Scroll Animations (12 presets)
101
+ Specialized effects for background media elements:
102
+ - **BgParallax** - Background parallax scrolling
103
+ - **BgZoom** - Dynamic background scaling
104
+ - **BgFade** - Background opacity transitions
105
+ - **BgRotate** - Background rotation effects
106
+ - [See all background animations →](docs/categories/background-scroll-animations.md)
107
+
108
+ ## 🛠️ Core APIs
109
+
110
+ ### Animation Creation
111
+ - `getWebAnimation()` - Create Web Animations API instances
112
+ - `getScrubScene()` - Generate scroll/pointer-driven scenes
113
+ - `prepareAnimation()` - Pre-calculate measurements for performance
114
+
115
+ ### CSS Integration
116
+ - CSS custom properties for dynamic values
117
+ - CSS Animation API for stylesheet-based animations
118
+ - Automatic vendor prefixing and fallbacks
119
+
120
+ ### TypeScript Support
121
+ Complete type definitions for all animation options:
122
+ ```typescript
123
+ interface TimeAnimationOptions {
124
+ namedEffect: EntranceAnimation | OngoingAnimation;
125
+ duration?: number;
126
+ easing?: string;
127
+ // ... more options
128
+ }
129
+ ```
130
+
131
+ ## 📖 Documentation
132
+
133
+ - **[Getting Started](docs/getting-started.md)** - Setup and first animation
134
+ - **[Core Concepts](docs/core-concepts.md)** - Understanding the animation system
135
+ - **[API Reference](docs/api/)** - Complete function documentation
136
+ - **[Category Guides](docs/categories/)** - Detailed category overviews
137
+ - **[Preset Reference](docs/presets/)** - Individual animation documentation
138
+ - **[Advanced Usage](docs/guides/)** - Performance tips and patterns
139
+
140
+ ## 🎮 Interactive Playground
141
+
142
+ Explore animations interactively in our Storybook playground:
143
+ ```bash
144
+ yarn start # Opens interactive documentation
145
+ ```
146
+
147
+ ## 🔧 Framework Integration
148
+
149
+ Works seamlessly with popular frameworks:
150
+ - React/Vue/Angular components
151
+ - GSAP and Framer Motion compatibility
152
+ - CSS-in-JS libraries
153
+ - Server-side rendering support
154
+
155
+ ## 🌐 Browser Support
156
+
157
+ - **Modern browsers** with Web Animations API
158
+ - **Progressive enhancement** with CSS fallbacks
159
+ - **ViewTimeline API** for advanced scroll effects (with polyfill)
160
+
161
+ ## 🤝 Contributing
162
+
163
+ This package is part of the Wix wow-libs monorepo. See [contributing guidelines](../../CONTRIBUTING.md) for development setup and contribution process.
164
+
165
+ ## 📄 License
166
+
167
+ UNLICENSED - Internal Wix package
168
+
169
+ ---
170
+
171
+ **Built with ❤️ by the Wix wow!Team**
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_easings","_CustomMouse","paramsMap","soft","angle","scale","easing","medium","hard","BlurMouseAnimation","CustomMouse","progress","x","progressX","y","progressY","distance","invert","blur","perspective","options","translateX","mapRange","value","translateY","scaleX","scaleY","maxScale","Math","min","rotateX","rotateY","units","getCssUnits","type","transform","progressDistance","distance2d","blurFilter","round","quadInOut","filter","target","style","cancel","transition","create","transitionDuration","transitionEasing","power","inverted","namedEffect","animationOptions","getMouseTransitionEasing"],"sources":["../../../../src/library/mouse/BlurMouse.ts"],"sourcesContent":["import {\n getCssUnits,\n getMouseTransitionEasing,\n distance2d,\n mapRange,\n} from '../../utils';\nimport { quadInOut } from '../../easings';\nimport { CustomMouse } from './CustomMouse';\nimport {\n ScrubAnimationOptions,\n AnimationExtraOptions,\n BlurMouse,\n Progress,\n EffectPower,\n ScrubTransitionEasing,\n} from '../../types';\n\nconst paramsMap: Record<\n EffectPower,\n { angle: number; scale: number; easing: ScrubTransitionEasing }\n> = {\n soft: { angle: 0, scale: 1, easing: 'easeOut' },\n medium: { angle: 25, scale: 0.7, easing: 'easeOut' },\n hard: { angle: 65, scale: 0.25, easing: 'easeOut' },\n};\nclass BlurMouseAnimation extends CustomMouse {\n progress({ x: progressX, y: progressY }: Progress) {\n const { distance, angle, scale, invert, blur, perspective } = this.options;\n\n const translateX =\n mapRange(0, 1, -distance.value, distance.value, progressX) * invert;\n const translateY =\n mapRange(0, 1, -distance.value, distance.value, progressY) * invert;\n\n // if progressX === 0 || progressX === 1, scaleX === scale, if progressX === 0.5, scaleX === 1\n const scaleX =\n progressX < 0.5\n ? mapRange(0, 0.5, scale, 1, progressX)\n : mapRange(0.5, 1, 1, scale, progressX);\n\n // if progressY === 0 || progressY === 1, scaleY === scale, if progressY === 0.5, scaleY === 1\n const scaleY =\n progressY < 0.5\n ? mapRange(0, 0.5, scale, 1, progressY)\n : mapRange(0.5, 1, 1, scale, progressY);\n\n const maxScale = Math.min(scaleX, scaleY);\n\n // if progressX === 0, rotateX === -angle, if progressX === 0.5, rotateX === 0, if progressX === 1, rotateX === angle\n const rotateX = mapRange(0, 1, -angle, angle, progressY) * invert;\n const rotateY = mapRange(0, 1, angle, -angle, progressX) * invert;\n\n const units = getCssUnits(distance.type);\n\n const transform = `perspective(${perspective}px) translateX(${translateX}${units}) translateY(${translateY}${units}) scale(${maxScale}, ${maxScale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg) rotate(var(--comp-rotate-z, 0deg))`;\n\n const progressDistance = distance2d(\n [0.5, 0.5],\n [progressX, progressY],\n );\n const blurFilter = Math.round(\n mapRange(0, 1, 0, blur, quadInOut(progressDistance)),\n );\n\n const filter = `blur(${blurFilter}px)`;\n\n this.target.style.transform = transform;\n this.target.style.filter = filter;\n }\n\n cancel() {\n this.target.style.transform = '';\n this.target.style.filter = '';\n this.target.style.transition = '';\n }\n}\n\nexport default function create(\n options: ScrubAnimationOptions & AnimationExtraOptions,\n) {\n const { transitionDuration, transitionEasing } = options;\n const {\n power,\n inverted = false,\n distance = { value: 80, type: 'px' },\n angle = 5,\n scale = 0.3,\n blur = 20,\n perspective = 600,\n } = options.namedEffect as BlurMouse;\n const invert = inverted ? -1 : 1;\n const animationOptions = {\n transition: transitionDuration\n ? `transform ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}, filter ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}`\n : '',\n distance,\n angle: power ? paramsMap[power].angle : angle,\n scale: power ? paramsMap[power].scale : scale,\n blur,\n perspective,\n invert,\n };\n\n return (target: HTMLElement) =>\n new BlurMouseAnimation(target, animationOptions);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_utils","require","_easings","_CustomMouse","paramsMap","soft","angle","scale","easing","medium","hard","BlurMouseAnimation","CustomMouse","progress","x","progressX","y","progressY","distance","invert","blur","perspective","options","translateX","mapRange","value","translateY","scaleX","scaleY","maxScale","Math","min","rotateX","rotateY","units","getCssUnits","type","transform","progressDistance","distance2d","blurFilter","round","quadInOut","filter","target","style","cancel","transition","create","transitionDuration","transitionEasing","power","inverted","namedEffect","animationOptions","getMouseTransitionEasing"],"sources":["../../../../src/library/mouse/BlurMouse.ts"],"sourcesContent":["import {\n getCssUnits,\n getMouseTransitionEasing,\n distance2d,\n mapRange,\n} from '../../utils';\nimport { quadInOut } from '../../easings';\nimport { CustomMouse } from './CustomMouse';\nimport {\n ScrubAnimationOptions,\n AnimationExtraOptions,\n BlurMouse,\n Progress,\n EffectPower,\n ScrubTransitionEasing,\n} from '../../types';\n\nconst paramsMap: Record<\n EffectPower,\n { angle: number; scale: number; easing: ScrubTransitionEasing }\n> = {\n soft: { angle: 0, scale: 1, easing: 'easeOut' },\n medium: { angle: 25, scale: 0.7, easing: 'easeOut' },\n hard: { angle: 65, scale: 0.25, easing: 'easeOut' },\n};\nclass BlurMouseAnimation extends CustomMouse {\n progress({ x: progressX, y: progressY }: Progress) {\n const { distance, angle, scale, invert, blur, perspective } = this.options;\n\n const translateX =\n mapRange(0, 1, -distance.value, distance.value, progressX) * invert;\n const translateY =\n mapRange(0, 1, -distance.value, distance.value, progressY) * invert;\n\n // if progressX === 0 || progressX === 1, scaleX === scale, if progressX === 0.5, scaleX === 1\n const scaleX =\n progressX < 0.5\n ? mapRange(0, 0.5, scale, 1, progressX)\n : mapRange(0.5, 1, 1, scale, progressX);\n\n // if progressY === 0 || progressY === 1, scaleY === scale, if progressY === 0.5, scaleY === 1\n const scaleY =\n progressY < 0.5\n ? mapRange(0, 0.5, scale, 1, progressY)\n : mapRange(0.5, 1, 1, scale, progressY);\n\n const maxScale = Math.min(scaleX, scaleY);\n\n // if progressX === 0, rotateX === -angle, if progressX === 0.5, rotateX === 0, if progressX === 1, rotateX === angle\n const rotateX = mapRange(0, 1, -angle, angle, progressY) * invert;\n const rotateY = mapRange(0, 1, angle, -angle, progressX) * invert;\n\n const units = getCssUnits(distance.type);\n\n const transform = `perspective(${perspective}px) translateX(${translateX}${units}) translateY(${translateY}${units}) scale(${maxScale}, ${maxScale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg) rotate(var(--comp-rotate-z, 0deg))`;\n\n const progressDistance = distance2d([0.5, 0.5], [progressX, progressY]);\n const blurFilter = Math.round(\n mapRange(0, 1, 0, blur, quadInOut(progressDistance)),\n );\n\n const filter = `blur(${blurFilter}px)`;\n\n this.target.style.transform = transform;\n this.target.style.filter = filter;\n }\n\n cancel() {\n this.target.style.transform = '';\n this.target.style.filter = '';\n this.target.style.transition = '';\n }\n}\n\nexport default function create(\n options: ScrubAnimationOptions & AnimationExtraOptions,\n) {\n const { transitionDuration, transitionEasing } = options;\n const {\n power,\n inverted = false,\n distance = { value: 80, type: 'px' },\n angle = 5,\n scale = 0.3,\n blur = 20,\n perspective = 600,\n } = options.namedEffect as BlurMouse;\n const invert = inverted ? -1 : 1;\n const animationOptions = {\n transition: transitionDuration\n ? `transform ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}, filter ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}`\n : '',\n distance,\n angle: power ? paramsMap[power].angle : angle,\n scale: power ? paramsMap[power].scale : scale,\n blur,\n perspective,\n invert,\n };\n\n return (target: HTMLElement) =>\n new BlurMouseAnimation(target, animationOptions);\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAUA,MAAMG,SAGL,GAAG;EACFC,IAAI,EAAE;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,MAAM,EAAE;EAAU,CAAC;EAC/CC,MAAM,EAAE;IAAEH,KAAK,EAAE,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAU,CAAC;EACpDE,IAAI,EAAE;IAAEJ,KAAK,EAAE,EAAE;IAAEC,KAAK,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAU;AACpD,CAAC;AACD,MAAMG,kBAAkB,SAASC,wBAAW,CAAC;EAC3CC,QAAQA,CAAC;IAAEC,CAAC,EAAEC,SAAS;IAAEC,CAAC,EAAEC;EAAoB,CAAC,EAAE;IACjD,MAAM;MAAEC,QAAQ;MAAEZ,KAAK;MAAEC,KAAK;MAAEY,MAAM;MAAEC,IAAI;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACC,OAAO;IAE1E,MAAMC,UAAU,GACd,IAAAC,eAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,CAACN,QAAQ,CAACO,KAAK,EAAEP,QAAQ,CAACO,KAAK,EAAEV,SAAS,CAAC,GAAGI,MAAM;IACrE,MAAMO,UAAU,GACd,IAAAF,eAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,CAACN,QAAQ,CAACO,KAAK,EAAEP,QAAQ,CAACO,KAAK,EAAER,SAAS,CAAC,GAAGE,MAAM;;IAErE;IACA,MAAMQ,MAAM,GACVZ,SAAS,GAAG,GAAG,GACX,IAAAS,eAAQ,EAAC,CAAC,EAAE,GAAG,EAAEjB,KAAK,EAAE,CAAC,EAAEQ,SAAS,CAAC,GACrC,IAAAS,eAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAEjB,KAAK,EAAEQ,SAAS,CAAC;;IAE3C;IACA,MAAMa,MAAM,GACVX,SAAS,GAAG,GAAG,GACX,IAAAO,eAAQ,EAAC,CAAC,EAAE,GAAG,EAAEjB,KAAK,EAAE,CAAC,EAAEU,SAAS,CAAC,GACrC,IAAAO,eAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAEjB,KAAK,EAAEU,SAAS,CAAC;IAE3C,MAAMY,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACJ,MAAM,EAAEC,MAAM,CAAC;;IAEzC;IACA,MAAMI,OAAO,GAAG,IAAAR,eAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,CAAClB,KAAK,EAAEA,KAAK,EAAEW,SAAS,CAAC,GAAGE,MAAM;IACjE,MAAMc,OAAO,GAAG,IAAAT,eAAQ,EAAC,CAAC,EAAE,CAAC,EAAElB,KAAK,EAAE,CAACA,KAAK,EAAES,SAAS,CAAC,GAAGI,MAAM;IAEjE,MAAMe,KAAK,GAAG,IAAAC,kBAAW,EAACjB,QAAQ,CAACkB,IAAI,CAAC;IAExC,MAAMC,SAAS,GAAG,eAAehB,WAAW,kBAAkBE,UAAU,GAAGW,KAAK,gBAAgBR,UAAU,GAAGQ,KAAK,WAAWL,QAAQ,KAAKA,QAAQ,aAAaG,OAAO,gBAAgBC,OAAO,yCAAyC;IAEtO,MAAMK,gBAAgB,GAAG,IAAAC,iBAAU,EAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAACxB,SAAS,EAAEE,SAAS,CAAC,CAAC;IACvE,MAAMuB,UAAU,GAAGV,IAAI,CAACW,KAAK,CAC3B,IAAAjB,eAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEJ,IAAI,EAAE,IAAAsB,kBAAS,EAACJ,gBAAgB,CAAC,CACrD,CAAC;IAED,MAAMK,MAAM,GAAG,QAAQH,UAAU,KAAK;IAEtC,IAAI,CAACI,MAAM,CAACC,KAAK,CAACR,SAAS,GAAGA,SAAS;IACvC,IAAI,CAACO,MAAM,CAACC,KAAK,CAACF,MAAM,GAAGA,MAAM;EACnC;EAEAG,MAAMA,CAAA,EAAG;IACP,IAAI,CAACF,MAAM,CAACC,KAAK,CAACR,SAAS,GAAG,EAAE;IAChC,IAAI,CAACO,MAAM,CAACC,KAAK,CAACF,MAAM,GAAG,EAAE;IAC7B,IAAI,CAACC,MAAM,CAACC,KAAK,CAACE,UAAU,GAAG,EAAE;EACnC;AACF;AAEe,SAASC,MAAMA,CAC5B1B,OAAsD,EACtD;EACA,MAAM;IAAE2B,kBAAkB;IAAEC;EAAiB,CAAC,GAAG5B,OAAO;EACxD,MAAM;IACJ6B,KAAK;IACLC,QAAQ,GAAG,KAAK;IAChBlC,QAAQ,GAAG;MAAEO,KAAK,EAAE,EAAE;MAAEW,IAAI,EAAE;IAAK,CAAC;IACpC9B,KAAK,GAAG,CAAC;IACTC,KAAK,GAAG,GAAG;IACXa,IAAI,GAAG,EAAE;IACTC,WAAW,GAAG;EAChB,CAAC,GAAGC,OAAO,CAAC+B,WAAwB;EACpC,MAAMlC,MAAM,GAAGiC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;EAChC,MAAME,gBAAgB,GAAG;IACvBP,UAAU,EAAEE,kBAAkB,GAC1B,aAAaA,kBAAkB,MAAM,IAAAM,+BAAwB,EAC3DJ,KAAK,GAAG/C,SAAS,CAAC+C,KAAK,CAAC,CAAC3C,MAAM,GAAG0C,gBACpC,CAAC,YAAYD,kBAAkB,MAAM,IAAAM,+BAAwB,EAC3DJ,KAAK,GAAG/C,SAAS,CAAC+C,KAAK,CAAC,CAAC3C,MAAM,GAAG0C,gBACpC,CAAC,EAAE,GACH,EAAE;IACNhC,QAAQ;IACRZ,KAAK,EAAE6C,KAAK,GAAG/C,SAAS,CAAC+C,KAAK,CAAC,CAAC7C,KAAK,GAAGA,KAAK;IAC7CC,KAAK,EAAE4C,KAAK,GAAG/C,SAAS,CAAC+C,KAAK,CAAC,CAAC5C,KAAK,GAAGA,KAAK;IAC7Ca,IAAI;IACJC,WAAW;IACXF;EACF,CAAC;EAED,OAAQyB,MAAmB,IACzB,IAAIjC,kBAAkB,CAACiC,MAAM,EAAEU,gBAAgB,CAAC;AACpD","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
+ exports.getAnimation = getAnimation;
4
5
  exports.getElementAnimation = getElementAnimation;
5
6
  exports.getElementCSSAnimation = getElementCSSAnimation;
6
7
  exports.getScrubScene = getScrubScene;
@@ -127,4 +128,14 @@ function getScrubScene(target, animationOptions, trigger, sceneOptions = {}) {
127
128
  }
128
129
  };
129
130
  }
131
+ function getAnimation(target, animationOptions, trigger) {
132
+ const animation = getElementCSSAnimation(target, animationOptions);
133
+ if (animation) {
134
+ animation.ready = new Promise(resolve => {
135
+ (0, _prepare.prepareAnimation)(target, animationOptions, resolve);
136
+ });
137
+ return animation;
138
+ }
139
+ return (0, _webAnimations.getWebAnimation)(target, animationOptions, trigger);
140
+ }
130
141
  //# sourceMappingURL=motion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_AnimationGroup","require","_utils","exports","getEasing","_webAnimations","getWebAnimation","_cssAnimations","getCSSAnimation","_prepare","prepareAnimation","_common","getElementCSSAnimation","target","animationOptions","namedEffect","getNamedEffect","style","effectId","getElementAnimation","effectNames","getNames","element","getElement","animations","getAnimations","animationNames","map","anim","animationName","filteredAnimations","forEach","name","includes","push","find","length","AnimationGroup","filter","id","startsWith","getScrubScene","trigger","sceneOptions","disabled","allowActiveEvent","rest","animation","typeSpecificOptions","window","ViewTimeline","viewSource","componentId","ready","partialAnimation","start","end","getProgress","effect","__","p","activeDuration","getComputedTiming","delay","getTiming","currentTime","destroy","cancel","centeredToTarget","transitionDuration","transitionEasing","customEffect","getJsEasing","v","active","progress"],"sources":["../../src/motion.ts"],"sourcesContent":["import type {\n AnimationOptions,\n ScrubAnimationOptions,\n TriggerVariant,\n MouseAnimationInstance,\n AnimationEffectAPI,\n CustomMouseAnimationInstance,\n ScrubScrollScene,\n ScrubPointerScene,\n} from './types';\nimport { AnimationGroup } from './AnimationGroup';\nimport { getEasing, getJsEasing } from './utils';\nimport { getWebAnimation } from './api/webAnimations';\nimport { getCSSAnimation } from './api/cssAnimations';\nimport { prepareAnimation } from './api/prepare';\nimport { getElement, getNamedEffect } from './api/common';\n\nfunction getElementCSSAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n): AnimationGroup | null {\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n if (!namedEffect) {\n return null;\n }\n\n if (!namedEffect.style) {\n // if this named effect does not have a style method, attempt to get group of Web Animations\n if (animationOptions.effectId && target) {\n return getElementAnimation(target, animationOptions.effectId);\n }\n\n return null;\n }\n\n const effectNames = namedEffect.getNames(animationOptions);\n const element = typeof target === 'string' ? getElement(target) : target;\n const animations = element?.getAnimations();\n const animationNames =\n animations?.map((anim) => (anim as CSSAnimation).animationName) ||\n ([] as string[]);\n const filteredAnimations: CSSAnimation[] = [];\n\n effectNames.forEach((name) => {\n if (animationNames.includes(name)) {\n filteredAnimations.push(\n animations?.find(\n (anim) => (anim as CSSAnimation).animationName === name,\n ) as CSSAnimation,\n );\n }\n });\n\n return filteredAnimations?.length\n ? new AnimationGroup(filteredAnimations)\n : null;\n}\n\nfunction getElementAnimation(\n target: HTMLElement | string,\n effectId: string,\n): AnimationGroup | null {\n const element = typeof target === 'string' ? getElement(target) : target;\n // somehow get the right animations\n const animations = element\n ?.getAnimations()\n .filter((anim: Animation | CSSAnimation) => {\n const id = anim.id || (anim as CSSAnimation).animationName;\n // if no id/name just return all animations\n return id ? id.startsWith(effectId) : true;\n });\n\n return animations?.length ? new AnimationGroup(animations) : null;\n}\n\nfunction getScrubScene(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger: Partial<TriggerVariant> & { element?: HTMLElement },\n sceneOptions: Record<string, any> = {},\n): ScrubScrollScene[] | ScrubPointerScene {\n const { disabled, allowActiveEvent, ...rest } = sceneOptions;\n const animation = getWebAnimation(target, animationOptions, trigger, rest);\n\n let typeSpecificOptions = {} as Record<string, any>;\n\n if (trigger.trigger === 'view-progress' && !window.ViewTimeline) {\n // TODO(ameerf): consider doing this only for bgscrub to not affect the other scroll effects\n const viewSource = trigger.element || getElement(trigger.componentId!);\n const { ready } = animation as AnimationGroup;\n\n return (animation as AnimationGroup).animations.map((partialAnimation) => {\n return {\n /* we use getters for start and end in order to access the animation's start and end\n only when initializing the scrub scene rather than immediately */\n get start() {\n return partialAnimation.start;\n },\n get end() {\n return partialAnimation.end;\n },\n viewSource,\n ready,\n getProgress() {\n return (animation as AnimationGroup).getProgress();\n },\n effect(__: any, p: number) {\n const { activeDuration } =\n partialAnimation.effect!.getComputedTiming();\n const { delay } = partialAnimation.effect!.getTiming();\n\n partialAnimation.currentTime =\n ((delay || 0) + ((activeDuration as number) || 0)) * p;\n },\n disabled,\n destroy() {\n partialAnimation.cancel();\n },\n } as ScrubScrollScene;\n });\n } else if (trigger.trigger === 'pointer-move') {\n const { centeredToTarget, transitionDuration, transitionEasing } =\n animationOptions as ScrubAnimationOptions;\n\n typeSpecificOptions = {\n target: (animation as MouseAnimationInstance).target,\n centeredToTarget,\n allowActiveEvent,\n };\n\n if (animationOptions.customEffect && transitionDuration) {\n typeSpecificOptions.transitionDuration = transitionDuration;\n typeSpecificOptions.transitionEasing = getJsEasing(transitionEasing);\n }\n }\n\n return {\n ...typeSpecificOptions,\n getProgress() {\n return (\n animation as AnimationGroup | CustomMouseAnimationInstance\n ).getProgress();\n },\n effect(\n __: any,\n p: number | { x: number; y: number },\n v?: { x: number; y: number },\n active?: boolean,\n ) {\n animation.progress(\n v\n ? {\n // @ts-expect-error spread error on p\n ...p,\n v,\n active,\n }\n : p,\n );\n },\n disabled,\n destroy() {\n animation.cancel();\n },\n } as ScrubPointerScene;\n}\n\nexport {\n getCSSAnimation,\n getWebAnimation,\n getElementCSSAnimation,\n getElementAnimation,\n getScrubScene,\n prepareAnimation,\n getEasing,\n};\n\nexport type { AnimationGroup };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_AnimationGroup","require","_utils","exports","getEasing","_webAnimations","getWebAnimation","_cssAnimations","getCSSAnimation","_prepare","prepareAnimation","_common","getElementCSSAnimation","target","animationOptions","namedEffect","getNamedEffect","style","effectId","getElementAnimation","effectNames","getNames","element","getElement","animations","getAnimations","animationNames","map","anim","animationName","filteredAnimations","forEach","name","includes","push","find","length","AnimationGroup","filter","id","startsWith","getScrubScene","trigger","sceneOptions","disabled","allowActiveEvent","rest","animation","typeSpecificOptions","window","ViewTimeline","viewSource","componentId","ready","partialAnimation","start","end","getProgress","effect","__","p","activeDuration","getComputedTiming","delay","getTiming","currentTime","destroy","cancel","centeredToTarget","transitionDuration","transitionEasing","customEffect","getJsEasing","v","active","progress","getAnimation","Promise","resolve"],"sources":["../../src/motion.ts"],"sourcesContent":["import type {\n AnimationOptions,\n ScrubAnimationOptions,\n TriggerVariant,\n MouseAnimationInstance,\n AnimationEffectAPI,\n CustomMouseAnimationInstance,\n ScrubScrollScene,\n ScrubPointerScene,\n} from './types';\nimport { AnimationGroup } from './AnimationGroup';\nimport { getEasing, getJsEasing } from './utils';\nimport { getWebAnimation } from './api/webAnimations';\nimport { getCSSAnimation } from './api/cssAnimations';\nimport { prepareAnimation } from './api/prepare';\nimport { getElement, getNamedEffect } from './api/common';\n\nfunction getElementCSSAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n): AnimationGroup | null {\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n if (!namedEffect) {\n return null;\n }\n\n if (!namedEffect.style) {\n // if this named effect does not have a style method, attempt to get group of Web Animations\n if (animationOptions.effectId && target) {\n return getElementAnimation(target, animationOptions.effectId);\n }\n\n return null;\n }\n\n const effectNames = namedEffect.getNames(animationOptions);\n const element = typeof target === 'string' ? getElement(target) : target;\n const animations = element?.getAnimations();\n const animationNames =\n animations?.map((anim) => (anim as CSSAnimation).animationName) ||\n ([] as string[]);\n const filteredAnimations: CSSAnimation[] = [];\n\n effectNames.forEach((name) => {\n if (animationNames.includes(name)) {\n filteredAnimations.push(\n animations?.find(\n (anim) => (anim as CSSAnimation).animationName === name,\n ) as CSSAnimation,\n );\n }\n });\n\n return filteredAnimations?.length\n ? new AnimationGroup(filteredAnimations)\n : null;\n}\n\nfunction getElementAnimation(\n target: HTMLElement | string,\n effectId: string,\n): AnimationGroup | null {\n const element = typeof target === 'string' ? getElement(target) : target;\n // somehow get the right animations\n const animations = element\n ?.getAnimations()\n .filter((anim: Animation | CSSAnimation) => {\n const id = anim.id || (anim as CSSAnimation).animationName;\n // if no id/name just return all animations\n return id ? id.startsWith(effectId) : true;\n });\n\n return animations?.length ? new AnimationGroup(animations) : null;\n}\n\nfunction getScrubScene(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger: Partial<TriggerVariant> & { element?: HTMLElement },\n sceneOptions: Record<string, any> = {},\n): ScrubScrollScene[] | ScrubPointerScene {\n const { disabled, allowActiveEvent, ...rest } = sceneOptions;\n const animation = getWebAnimation(target, animationOptions, trigger, rest);\n\n let typeSpecificOptions = {} as Record<string, any>;\n\n if (trigger.trigger === 'view-progress' && !window.ViewTimeline) {\n // TODO(ameerf): consider doing this only for bgscrub to not affect the other scroll effects\n const viewSource = trigger.element || getElement(trigger.componentId!);\n const { ready } = animation as AnimationGroup;\n\n return (animation as AnimationGroup).animations.map((partialAnimation) => {\n return {\n /* we use getters for start and end in order to access the animation's start and end\n only when initializing the scrub scene rather than immediately */\n get start() {\n return partialAnimation.start;\n },\n get end() {\n return partialAnimation.end;\n },\n viewSource,\n ready,\n getProgress() {\n return (animation as AnimationGroup).getProgress();\n },\n effect(__: any, p: number) {\n const { activeDuration } =\n partialAnimation.effect!.getComputedTiming();\n const { delay } = partialAnimation.effect!.getTiming();\n\n partialAnimation.currentTime =\n ((delay || 0) + ((activeDuration as number) || 0)) * p;\n },\n disabled,\n destroy() {\n partialAnimation.cancel();\n },\n } as ScrubScrollScene;\n });\n } else if (trigger.trigger === 'pointer-move') {\n const { centeredToTarget, transitionDuration, transitionEasing } =\n animationOptions as ScrubAnimationOptions;\n\n typeSpecificOptions = {\n target: (animation as MouseAnimationInstance).target,\n centeredToTarget,\n allowActiveEvent,\n };\n\n if (animationOptions.customEffect && transitionDuration) {\n typeSpecificOptions.transitionDuration = transitionDuration;\n typeSpecificOptions.transitionEasing = getJsEasing(transitionEasing);\n }\n }\n\n return {\n ...typeSpecificOptions,\n getProgress() {\n return (\n animation as AnimationGroup | CustomMouseAnimationInstance\n ).getProgress();\n },\n effect(\n __: any,\n p: number | { x: number; y: number },\n v?: { x: number; y: number },\n active?: boolean,\n ) {\n animation.progress(\n v\n ? {\n // @ts-expect-error spread error on p\n ...p,\n v,\n active,\n }\n : p,\n );\n },\n disabled,\n destroy() {\n animation.cancel();\n },\n } as ScrubPointerScene;\n}\n\nfunction getAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger?: Partial<TriggerVariant> & { element?: HTMLElement },\n): AnimationGroup | MouseAnimationInstance | null {\n const animation = getElementCSSAnimation(target, animationOptions);\n\n if (animation) {\n animation.ready = new Promise((resolve) => {\n prepareAnimation(target, animationOptions, resolve);\n });\n\n return animation;\n }\n\n return getWebAnimation(\n target,\n animationOptions,\n trigger,\n );\n}\n\nexport {\n getCSSAnimation,\n getWebAnimation,\n getElementCSSAnimation,\n getElementAnimation,\n getScrubScene,\n prepareAnimation,\n getAnimation,\n getEasing,\n};\n\nexport type { AnimationGroup };\n"],"mappings":";;;;;;;AAUA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAAiDE,OAAA,CAAAC,SAAA,GAAAF,MAAA,CAAAE,SAAA;AACjD,IAAAC,cAAA,GAAAJ,OAAA;AAAsDE,OAAA,CAAAG,eAAA,GAAAD,cAAA,CAAAC,eAAA;AACtD,IAAAC,cAAA,GAAAN,OAAA;AAAsDE,OAAA,CAAAK,eAAA,GAAAD,cAAA,CAAAC,eAAA;AACtD,IAAAC,QAAA,GAAAR,OAAA;AAAiDE,OAAA,CAAAO,gBAAA,GAAAD,QAAA,CAAAC,gBAAA;AACjD,IAAAC,OAAA,GAAAV,OAAA;AAEA,SAASW,sBAAsBA,CAC7BC,MAAmC,EACnCC,gBAAkC,EACX;EACvB,MAAMC,WAAW,GAAG,IAAAC,sBAAc,EAChCF,gBACF,CAAmC;EAEnC,IAAI,CAACC,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,IAAI,CAACA,WAAW,CAACE,KAAK,EAAE;IACtB;IACA,IAAIH,gBAAgB,CAACI,QAAQ,IAAIL,MAAM,EAAE;MACvC,OAAOM,mBAAmB,CAACN,MAAM,EAAEC,gBAAgB,CAACI,QAAQ,CAAC;IAC/D;IAEA,OAAO,IAAI;EACb;EAEA,MAAME,WAAW,GAAGL,WAAW,CAACM,QAAQ,CAACP,gBAAgB,CAAC;EAC1D,MAAMQ,OAAO,GAAG,OAAOT,MAAM,KAAK,QAAQ,GAAG,IAAAU,kBAAU,EAACV,MAAM,CAAC,GAAGA,MAAM;EACxE,MAAMW,UAAU,GAAGF,OAAO,oBAAPA,OAAO,CAAEG,aAAa,CAAC,CAAC;EAC3C,MAAMC,cAAc,GAClB,CAAAF,UAAU,oBAAVA,UAAU,CAAEG,GAAG,CAAEC,IAAI,IAAMA,IAAI,CAAkBC,aAAa,CAAC,KAC9D,EAAe;EAClB,MAAMC,kBAAkC,GAAG,EAAE;EAE7CV,WAAW,CAACW,OAAO,CAAEC,IAAI,IAAK;IAC5B,IAAIN,cAAc,CAACO,QAAQ,CAACD,IAAI,CAAC,EAAE;MACjCF,kBAAkB,CAACI,IAAI,CACrBV,UAAU,oBAAVA,UAAU,CAAEW,IAAI,CACbP,IAAI,IAAMA,IAAI,CAAkBC,aAAa,KAAKG,IACrD,CACF,CAAC;IACH;EACF,CAAC,CAAC;EAEF,OAAOF,kBAAkB,YAAlBA,kBAAkB,CAAEM,MAAM,GAC7B,IAAIC,8BAAc,CAACP,kBAAkB,CAAC,GACtC,IAAI;AACV;AAEA,SAASX,mBAAmBA,CAC1BN,MAA4B,EAC5BK,QAAgB,EACO;EACvB,MAAMI,OAAO,GAAG,OAAOT,MAAM,KAAK,QAAQ,GAAG,IAAAU,kBAAU,EAACV,MAAM,CAAC,GAAGA,MAAM;EACxE;EACA,MAAMW,UAAU,GAAGF,OAAO,oBAAPA,OAAO,CACtBG,aAAa,CAAC,CAAC,CAChBa,MAAM,CAAEV,IAA8B,IAAK;IAC1C,MAAMW,EAAE,GAAGX,IAAI,CAACW,EAAE,IAAKX,IAAI,CAAkBC,aAAa;IAC1D;IACA,OAAOU,EAAE,GAAGA,EAAE,CAACC,UAAU,CAACtB,QAAQ,CAAC,GAAG,IAAI;EAC5C,CAAC,CAAC;EAEJ,OAAOM,UAAU,YAAVA,UAAU,CAAEY,MAAM,GAAG,IAAIC,8BAAc,CAACb,UAAU,CAAC,GAAG,IAAI;AACnE;AAEA,SAASiB,aAAaA,CACpB5B,MAAmC,EACnCC,gBAAkC,EAClC4B,OAA4D,EAC5DC,YAAiC,GAAG,CAAC,CAAC,EACE;EACxC,MAAM;IAAEC,QAAQ;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,YAAY;EAC5D,MAAMI,SAAS,GAAG,IAAAzC,8BAAe,EAACO,MAAM,EAAEC,gBAAgB,EAAE4B,OAAO,EAAEI,IAAI,CAAC;EAE1E,IAAIE,mBAAmB,GAAG,CAAC,CAAwB;EAEnD,IAAIN,OAAO,CAACA,OAAO,KAAK,eAAe,IAAI,CAACO,MAAM,CAACC,YAAY,EAAE;IAC/D;IACA,MAAMC,UAAU,GAAGT,OAAO,CAACpB,OAAO,IAAI,IAAAC,kBAAU,EAACmB,OAAO,CAACU,WAAY,CAAC;IACtE,MAAM;MAAEC;IAAM,CAAC,GAAGN,SAA2B;IAE7C,OAAQA,SAAS,CAAoBvB,UAAU,CAACG,GAAG,CAAE2B,gBAAgB,IAAK;MACxE,OAAO;QACL;AACR;QACQ,IAAIC,KAAKA,CAAA,EAAG;UACV,OAAOD,gBAAgB,CAACC,KAAK;QAC/B,CAAC;QACD,IAAIC,GAAGA,CAAA,EAAG;UACR,OAAOF,gBAAgB,CAACE,GAAG;QAC7B,CAAC;QACDL,UAAU;QACVE,KAAK;QACLI,WAAWA,CAAA,EAAG;UACZ,OAAQV,SAAS,CAAoBU,WAAW,CAAC,CAAC;QACpD,CAAC;QACDC,MAAMA,CAACC,EAAO,EAAEC,CAAS,EAAE;UACzB,MAAM;YAAEC;UAAe,CAAC,GACtBP,gBAAgB,CAACI,MAAM,CAAEI,iBAAiB,CAAC,CAAC;UAC9C,MAAM;YAAEC;UAAM,CAAC,GAAGT,gBAAgB,CAACI,MAAM,CAAEM,SAAS,CAAC,CAAC;UAEtDV,gBAAgB,CAACW,WAAW,GAC1B,CAAC,CAACF,KAAK,IAAI,CAAC,KAAMF,cAAc,IAAe,CAAC,CAAC,IAAID,CAAC;QAC1D,CAAC;QACDhB,QAAQ;QACRsB,OAAOA,CAAA,EAAG;UACRZ,gBAAgB,CAACa,MAAM,CAAC,CAAC;QAC3B;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIzB,OAAO,CAACA,OAAO,KAAK,cAAc,EAAE;IAC7C,MAAM;MAAE0B,gBAAgB;MAAEC,kBAAkB;MAAEC;IAAiB,CAAC,GAC9DxD,gBAAyC;IAE3CkC,mBAAmB,GAAG;MACpBnC,MAAM,EAAGkC,SAAS,CAA4BlC,MAAM;MACpDuD,gBAAgB;MAChBvB;IACF,CAAC;IAED,IAAI/B,gBAAgB,CAACyD,YAAY,IAAIF,kBAAkB,EAAE;MACvDrB,mBAAmB,CAACqB,kBAAkB,GAAGA,kBAAkB;MAC3DrB,mBAAmB,CAACsB,gBAAgB,GAAG,IAAAE,kBAAW,EAACF,gBAAgB,CAAC;IACtE;EACF;EAEA,OAAO;IACL,GAAGtB,mBAAmB;IACtBS,WAAWA,CAAA,EAAG;MACZ,OACEV,SAAS,CACTU,WAAW,CAAC,CAAC;IACjB,CAAC;IACDC,MAAMA,CACJC,EAAO,EACPC,CAAoC,EACpCa,CAA4B,EAC5BC,MAAgB,EAChB;MACA3B,SAAS,CAAC4B,QAAQ,CAChBF,CAAC,GACG;QACE;QACA,GAAGb,CAAC;QACJa,CAAC;QACDC;MACF,CAAC,GACDd,CACN,CAAC;IACH,CAAC;IACDhB,QAAQ;IACRsB,OAAOA,CAAA,EAAG;MACRnB,SAAS,CAACoB,MAAM,CAAC,CAAC;IACpB;EACF,CAAC;AACH;AAEA,SAASS,YAAYA,CACnB/D,MAAmC,EACnCC,gBAAkC,EAClC4B,OAA6D,EACb;EAChD,MAAMK,SAAS,GAAGnC,sBAAsB,CAACC,MAAM,EAAEC,gBAAgB,CAAC;EAElE,IAAIiC,SAAS,EAAE;IACbA,SAAS,CAACM,KAAK,GAAG,IAAIwB,OAAO,CAAEC,OAAO,IAAK;MACzC,IAAApE,yBAAgB,EAACG,MAAM,EAAEC,gBAAgB,EAAEgE,OAAO,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO/B,SAAS;EAClB;EAEA,OAAO,IAAAzC,8BAAe,EACpBO,MAAM,EACNC,gBAAgB,EAChB4B,OACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["getCssUnits","getMouseTransitionEasing","distance2d","mapRange","quadInOut","CustomMouse","paramsMap","soft","angle","scale","easing","medium","hard","BlurMouseAnimation","progress","_ref","x","progressX","y","progressY","distance","invert","blur","perspective","options","translateX","value","translateY","scaleX","scaleY","maxScale","Math","min","rotateX","rotateY","units","type","transform","progressDistance","blurFilter","round","filter","target","style","cancel","transition","create","transitionDuration","transitionEasing","power","inverted","namedEffect","animationOptions"],"sources":["../../../../src/library/mouse/BlurMouse.ts"],"sourcesContent":["import {\n getCssUnits,\n getMouseTransitionEasing,\n distance2d,\n mapRange,\n} from '../../utils';\nimport { quadInOut } from '../../easings';\nimport { CustomMouse } from './CustomMouse';\nimport {\n ScrubAnimationOptions,\n AnimationExtraOptions,\n BlurMouse,\n Progress,\n EffectPower,\n ScrubTransitionEasing,\n} from '../../types';\n\nconst paramsMap: Record<\n EffectPower,\n { angle: number; scale: number; easing: ScrubTransitionEasing }\n> = {\n soft: { angle: 0, scale: 1, easing: 'easeOut' },\n medium: { angle: 25, scale: 0.7, easing: 'easeOut' },\n hard: { angle: 65, scale: 0.25, easing: 'easeOut' },\n};\nclass BlurMouseAnimation extends CustomMouse {\n progress({ x: progressX, y: progressY }: Progress) {\n const { distance, angle, scale, invert, blur, perspective } = this.options;\n\n const translateX =\n mapRange(0, 1, -distance.value, distance.value, progressX) * invert;\n const translateY =\n mapRange(0, 1, -distance.value, distance.value, progressY) * invert;\n\n // if progressX === 0 || progressX === 1, scaleX === scale, if progressX === 0.5, scaleX === 1\n const scaleX =\n progressX < 0.5\n ? mapRange(0, 0.5, scale, 1, progressX)\n : mapRange(0.5, 1, 1, scale, progressX);\n\n // if progressY === 0 || progressY === 1, scaleY === scale, if progressY === 0.5, scaleY === 1\n const scaleY =\n progressY < 0.5\n ? mapRange(0, 0.5, scale, 1, progressY)\n : mapRange(0.5, 1, 1, scale, progressY);\n\n const maxScale = Math.min(scaleX, scaleY);\n\n // if progressX === 0, rotateX === -angle, if progressX === 0.5, rotateX === 0, if progressX === 1, rotateX === angle\n const rotateX = mapRange(0, 1, -angle, angle, progressY) * invert;\n const rotateY = mapRange(0, 1, angle, -angle, progressX) * invert;\n\n const units = getCssUnits(distance.type);\n\n const transform = `perspective(${perspective}px) translateX(${translateX}${units}) translateY(${translateY}${units}) scale(${maxScale}, ${maxScale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg) rotate(var(--comp-rotate-z, 0deg))`;\n\n const progressDistance = distance2d(\n [0.5, 0.5],\n [progressX, progressY],\n );\n const blurFilter = Math.round(\n mapRange(0, 1, 0, blur, quadInOut(progressDistance)),\n );\n\n const filter = `blur(${blurFilter}px)`;\n\n this.target.style.transform = transform;\n this.target.style.filter = filter;\n }\n\n cancel() {\n this.target.style.transform = '';\n this.target.style.filter = '';\n this.target.style.transition = '';\n }\n}\n\nexport default function create(\n options: ScrubAnimationOptions & AnimationExtraOptions,\n) {\n const { transitionDuration, transitionEasing } = options;\n const {\n power,\n inverted = false,\n distance = { value: 80, type: 'px' },\n angle = 5,\n scale = 0.3,\n blur = 20,\n perspective = 600,\n } = options.namedEffect as BlurMouse;\n const invert = inverted ? -1 : 1;\n const animationOptions = {\n transition: transitionDuration\n ? `transform ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}, filter ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}`\n : '',\n distance,\n angle: power ? paramsMap[power].angle : angle,\n scale: power ? paramsMap[power].scale : scale,\n blur,\n perspective,\n invert,\n };\n\n return (target: HTMLElement) =>\n new BlurMouseAnimation(target, animationOptions);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getCssUnits","getMouseTransitionEasing","distance2d","mapRange","quadInOut","CustomMouse","paramsMap","soft","angle","scale","easing","medium","hard","BlurMouseAnimation","progress","_ref","x","progressX","y","progressY","distance","invert","blur","perspective","options","translateX","value","translateY","scaleX","scaleY","maxScale","Math","min","rotateX","rotateY","units","type","transform","progressDistance","blurFilter","round","filter","target","style","cancel","transition","create","transitionDuration","transitionEasing","power","inverted","namedEffect","animationOptions"],"sources":["../../../../src/library/mouse/BlurMouse.ts"],"sourcesContent":["import {\n getCssUnits,\n getMouseTransitionEasing,\n distance2d,\n mapRange,\n} from '../../utils';\nimport { quadInOut } from '../../easings';\nimport { CustomMouse } from './CustomMouse';\nimport {\n ScrubAnimationOptions,\n AnimationExtraOptions,\n BlurMouse,\n Progress,\n EffectPower,\n ScrubTransitionEasing,\n} from '../../types';\n\nconst paramsMap: Record<\n EffectPower,\n { angle: number; scale: number; easing: ScrubTransitionEasing }\n> = {\n soft: { angle: 0, scale: 1, easing: 'easeOut' },\n medium: { angle: 25, scale: 0.7, easing: 'easeOut' },\n hard: { angle: 65, scale: 0.25, easing: 'easeOut' },\n};\nclass BlurMouseAnimation extends CustomMouse {\n progress({ x: progressX, y: progressY }: Progress) {\n const { distance, angle, scale, invert, blur, perspective } = this.options;\n\n const translateX =\n mapRange(0, 1, -distance.value, distance.value, progressX) * invert;\n const translateY =\n mapRange(0, 1, -distance.value, distance.value, progressY) * invert;\n\n // if progressX === 0 || progressX === 1, scaleX === scale, if progressX === 0.5, scaleX === 1\n const scaleX =\n progressX < 0.5\n ? mapRange(0, 0.5, scale, 1, progressX)\n : mapRange(0.5, 1, 1, scale, progressX);\n\n // if progressY === 0 || progressY === 1, scaleY === scale, if progressY === 0.5, scaleY === 1\n const scaleY =\n progressY < 0.5\n ? mapRange(0, 0.5, scale, 1, progressY)\n : mapRange(0.5, 1, 1, scale, progressY);\n\n const maxScale = Math.min(scaleX, scaleY);\n\n // if progressX === 0, rotateX === -angle, if progressX === 0.5, rotateX === 0, if progressX === 1, rotateX === angle\n const rotateX = mapRange(0, 1, -angle, angle, progressY) * invert;\n const rotateY = mapRange(0, 1, angle, -angle, progressX) * invert;\n\n const units = getCssUnits(distance.type);\n\n const transform = `perspective(${perspective}px) translateX(${translateX}${units}) translateY(${translateY}${units}) scale(${maxScale}, ${maxScale}) rotateX(${rotateX}deg) rotateY(${rotateY}deg) rotate(var(--comp-rotate-z, 0deg))`;\n\n const progressDistance = distance2d([0.5, 0.5], [progressX, progressY]);\n const blurFilter = Math.round(\n mapRange(0, 1, 0, blur, quadInOut(progressDistance)),\n );\n\n const filter = `blur(${blurFilter}px)`;\n\n this.target.style.transform = transform;\n this.target.style.filter = filter;\n }\n\n cancel() {\n this.target.style.transform = '';\n this.target.style.filter = '';\n this.target.style.transition = '';\n }\n}\n\nexport default function create(\n options: ScrubAnimationOptions & AnimationExtraOptions,\n) {\n const { transitionDuration, transitionEasing } = options;\n const {\n power,\n inverted = false,\n distance = { value: 80, type: 'px' },\n angle = 5,\n scale = 0.3,\n blur = 20,\n perspective = 600,\n } = options.namedEffect as BlurMouse;\n const invert = inverted ? -1 : 1;\n const animationOptions = {\n transition: transitionDuration\n ? `transform ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}, filter ${transitionDuration}ms ${getMouseTransitionEasing(\n power ? paramsMap[power].easing : transitionEasing,\n )}`\n : '',\n distance,\n angle: power ? paramsMap[power].angle : angle,\n scale: power ? paramsMap[power].scale : scale,\n blur,\n perspective,\n invert,\n };\n\n return (target: HTMLElement) =>\n new BlurMouseAnimation(target, animationOptions);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -120,5 +120,15 @@ function getScrubScene(target, animationOptions, trigger, sceneOptions) {
120
120
  }
121
121
  };
122
122
  }
123
- export { getCSSAnimation, getWebAnimation, getElementCSSAnimation, getElementAnimation, getScrubScene, prepareAnimation, getEasing };
123
+ function getAnimation(target, animationOptions, trigger) {
124
+ const animation = getElementCSSAnimation(target, animationOptions);
125
+ if (animation) {
126
+ animation.ready = new Promise(resolve => {
127
+ prepareAnimation(target, animationOptions, resolve);
128
+ });
129
+ return animation;
130
+ }
131
+ return getWebAnimation(target, animationOptions, trigger);
132
+ }
133
+ export { getCSSAnimation, getWebAnimation, getElementCSSAnimation, getElementAnimation, getScrubScene, prepareAnimation, getAnimation, getEasing };
124
134
  //# sourceMappingURL=motion.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AnimationGroup","getEasing","getJsEasing","getWebAnimation","getCSSAnimation","prepareAnimation","getElement","getNamedEffect","getElementCSSAnimation","target","animationOptions","namedEffect","style","effectId","getElementAnimation","effectNames","getNames","element","animations","getAnimations","animationNames","map","anim","animationName","filteredAnimations","forEach","name","includes","push","find","length","filter","id","startsWith","getScrubScene","trigger","sceneOptions","disabled","allowActiveEvent","rest","animation","typeSpecificOptions","window","ViewTimeline","viewSource","componentId","ready","partialAnimation","start","end","getProgress","effect","__","p","activeDuration","getComputedTiming","delay","getTiming","currentTime","destroy","cancel","centeredToTarget","transitionDuration","transitionEasing","customEffect","v","active","progress"],"sources":["../../src/motion.ts"],"sourcesContent":["import type {\n AnimationOptions,\n ScrubAnimationOptions,\n TriggerVariant,\n MouseAnimationInstance,\n AnimationEffectAPI,\n CustomMouseAnimationInstance,\n ScrubScrollScene,\n ScrubPointerScene,\n} from './types';\nimport { AnimationGroup } from './AnimationGroup';\nimport { getEasing, getJsEasing } from './utils';\nimport { getWebAnimation } from './api/webAnimations';\nimport { getCSSAnimation } from './api/cssAnimations';\nimport { prepareAnimation } from './api/prepare';\nimport { getElement, getNamedEffect } from './api/common';\n\nfunction getElementCSSAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n): AnimationGroup | null {\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n if (!namedEffect) {\n return null;\n }\n\n if (!namedEffect.style) {\n // if this named effect does not have a style method, attempt to get group of Web Animations\n if (animationOptions.effectId && target) {\n return getElementAnimation(target, animationOptions.effectId);\n }\n\n return null;\n }\n\n const effectNames = namedEffect.getNames(animationOptions);\n const element = typeof target === 'string' ? getElement(target) : target;\n const animations = element?.getAnimations();\n const animationNames =\n animations?.map((anim) => (anim as CSSAnimation).animationName) ||\n ([] as string[]);\n const filteredAnimations: CSSAnimation[] = [];\n\n effectNames.forEach((name) => {\n if (animationNames.includes(name)) {\n filteredAnimations.push(\n animations?.find(\n (anim) => (anim as CSSAnimation).animationName === name,\n ) as CSSAnimation,\n );\n }\n });\n\n return filteredAnimations?.length\n ? new AnimationGroup(filteredAnimations)\n : null;\n}\n\nfunction getElementAnimation(\n target: HTMLElement | string,\n effectId: string,\n): AnimationGroup | null {\n const element = typeof target === 'string' ? getElement(target) : target;\n // somehow get the right animations\n const animations = element\n ?.getAnimations()\n .filter((anim: Animation | CSSAnimation) => {\n const id = anim.id || (anim as CSSAnimation).animationName;\n // if no id/name just return all animations\n return id ? id.startsWith(effectId) : true;\n });\n\n return animations?.length ? new AnimationGroup(animations) : null;\n}\n\nfunction getScrubScene(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger: Partial<TriggerVariant> & { element?: HTMLElement },\n sceneOptions: Record<string, any> = {},\n): ScrubScrollScene[] | ScrubPointerScene {\n const { disabled, allowActiveEvent, ...rest } = sceneOptions;\n const animation = getWebAnimation(target, animationOptions, trigger, rest);\n\n let typeSpecificOptions = {} as Record<string, any>;\n\n if (trigger.trigger === 'view-progress' && !window.ViewTimeline) {\n // TODO(ameerf): consider doing this only for bgscrub to not affect the other scroll effects\n const viewSource = trigger.element || getElement(trigger.componentId!);\n const { ready } = animation as AnimationGroup;\n\n return (animation as AnimationGroup).animations.map((partialAnimation) => {\n return {\n /* we use getters for start and end in order to access the animation's start and end\n only when initializing the scrub scene rather than immediately */\n get start() {\n return partialAnimation.start;\n },\n get end() {\n return partialAnimation.end;\n },\n viewSource,\n ready,\n getProgress() {\n return (animation as AnimationGroup).getProgress();\n },\n effect(__: any, p: number) {\n const { activeDuration } =\n partialAnimation.effect!.getComputedTiming();\n const { delay } = partialAnimation.effect!.getTiming();\n\n partialAnimation.currentTime =\n ((delay || 0) + ((activeDuration as number) || 0)) * p;\n },\n disabled,\n destroy() {\n partialAnimation.cancel();\n },\n } as ScrubScrollScene;\n });\n } else if (trigger.trigger === 'pointer-move') {\n const { centeredToTarget, transitionDuration, transitionEasing } =\n animationOptions as ScrubAnimationOptions;\n\n typeSpecificOptions = {\n target: (animation as MouseAnimationInstance).target,\n centeredToTarget,\n allowActiveEvent,\n };\n\n if (animationOptions.customEffect && transitionDuration) {\n typeSpecificOptions.transitionDuration = transitionDuration;\n typeSpecificOptions.transitionEasing = getJsEasing(transitionEasing);\n }\n }\n\n return {\n ...typeSpecificOptions,\n getProgress() {\n return (\n animation as AnimationGroup | CustomMouseAnimationInstance\n ).getProgress();\n },\n effect(\n __: any,\n p: number | { x: number; y: number },\n v?: { x: number; y: number },\n active?: boolean,\n ) {\n animation.progress(\n v\n ? {\n // @ts-expect-error spread error on p\n ...p,\n v,\n active,\n }\n : p,\n );\n },\n disabled,\n destroy() {\n animation.cancel();\n },\n } as ScrubPointerScene;\n}\n\nexport {\n getCSSAnimation,\n getWebAnimation,\n getElementCSSAnimation,\n getElementAnimation,\n getScrubScene,\n prepareAnimation,\n getEasing,\n};\n\nexport type { AnimationGroup };\n"],"mappings":"AAUA,SAASA,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,EAAEC,WAAW,QAAQ,SAAS;AAChD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,gBAAgB,QAAQ,eAAe;AAChD,SAASC,UAAU,EAAEC,cAAc,QAAQ,cAAc;AAEzD,SAASC,sBAAsBA,CAC7BC,MAAmC,EACnCC,gBAAkC,EACX;EACvB,MAAMC,WAAW,GAAGJ,cAAc,CAChCG,gBACF,CAAmC;EAEnC,IAAI,CAACC,WAAW,EAAE;IAChB,OAAO,IAAI;EACb;EAEA,IAAI,CAACA,WAAW,CAACC,KAAK,EAAE;IACtB;IACA,IAAIF,gBAAgB,CAACG,QAAQ,IAAIJ,MAAM,EAAE;MACvC,OAAOK,mBAAmB,CAACL,MAAM,EAAEC,gBAAgB,CAACG,QAAQ,CAAC;IAC/D;IAEA,OAAO,IAAI;EACb;EAEA,MAAME,WAAW,GAAGJ,WAAW,CAACK,QAAQ,CAACN,gBAAgB,CAAC;EAC1D,MAAMO,OAAO,GAAG,OAAOR,MAAM,KAAK,QAAQ,GAAGH,UAAU,CAACG,MAAM,CAAC,GAAGA,MAAM;EACxE,MAAMS,UAAU,GAAGD,OAAO,oBAAPA,OAAO,CAAEE,aAAa,CAAC,CAAC;EAC3C,MAAMC,cAAc,GAClB,CAAAF,UAAU,oBAAVA,UAAU,CAAEG,GAAG,CAAEC,IAAI,IAAMA,IAAI,CAAkBC,aAAa,CAAC,KAC9D,EAAe;EAClB,MAAMC,kBAAkC,GAAG,EAAE;EAE7CT,WAAW,CAACU,OAAO,CAAEC,IAAI,IAAK;IAC5B,IAAIN,cAAc,CAACO,QAAQ,CAACD,IAAI,CAAC,EAAE;MACjCF,kBAAkB,CAACI,IAAI,CACrBV,UAAU,oBAAVA,UAAU,CAAEW,IAAI,CACbP,IAAI,IAAMA,IAAI,CAAkBC,aAAa,KAAKG,IACrD,CACF,CAAC;IACH;EACF,CAAC,CAAC;EAEF,OAAOF,kBAAkB,YAAlBA,kBAAkB,CAAEM,MAAM,GAC7B,IAAI9B,cAAc,CAACwB,kBAAkB,CAAC,GACtC,IAAI;AACV;AAEA,SAASV,mBAAmBA,CAC1BL,MAA4B,EAC5BI,QAAgB,EACO;EACvB,MAAMI,OAAO,GAAG,OAAOR,MAAM,KAAK,QAAQ,GAAGH,UAAU,CAACG,MAAM,CAAC,GAAGA,MAAM;EACxE;EACA,MAAMS,UAAU,GAAGD,OAAO,oBAAPA,OAAO,CACtBE,aAAa,CAAC,CAAC,CAChBY,MAAM,CAAET,IAA8B,IAAK;IAC1C,MAAMU,EAAE,GAAGV,IAAI,CAACU,EAAE,IAAKV,IAAI,CAAkBC,aAAa;IAC1D;IACA,OAAOS,EAAE,GAAGA,EAAE,CAACC,UAAU,CAACpB,QAAQ,CAAC,GAAG,IAAI;EAC5C,CAAC,CAAC;EAEJ,OAAOK,UAAU,YAAVA,UAAU,CAAEY,MAAM,GAAG,IAAI9B,cAAc,CAACkB,UAAU,CAAC,GAAG,IAAI;AACnE;AAEA,SAASgB,aAAaA,CACpBzB,MAAmC,EACnCC,gBAAkC,EAClCyB,OAA4D,EAC5DC,YAAiC,EACO;EAAA,IADxCA,YAAiC;IAAjCA,YAAiC,GAAG,CAAC,CAAC;EAAA;EAEtC,MAAM;IAAEC,QAAQ;IAAEC,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGH,YAAY;EAC5D,MAAMI,SAAS,GAAGrC,eAAe,CAACM,MAAM,EAAEC,gBAAgB,EAAEyB,OAAO,EAAEI,IAAI,CAAC;EAE1E,IAAIE,mBAAmB,GAAG,CAAC,CAAwB;EAEnD,IAAIN,OAAO,CAACA,OAAO,KAAK,eAAe,IAAI,CAACO,MAAM,CAACC,YAAY,EAAE;IAC/D;IACA,MAAMC,UAAU,GAAGT,OAAO,CAAClB,OAAO,IAAIX,UAAU,CAAC6B,OAAO,CAACU,WAAY,CAAC;IACtE,MAAM;MAAEC;IAAM,CAAC,GAAGN,SAA2B;IAE7C,OAAQA,SAAS,CAAoBtB,UAAU,CAACG,GAAG,CAAE0B,gBAAgB,IAAK;MACxE,OAAO;QACL;AACR;QACQ,IAAIC,KAAKA,CAAA,EAAG;UACV,OAAOD,gBAAgB,CAACC,KAAK;QAC/B,CAAC;QACD,IAAIC,GAAGA,CAAA,EAAG;UACR,OAAOF,gBAAgB,CAACE,GAAG;QAC7B,CAAC;QACDL,UAAU;QACVE,KAAK;QACLI,WAAWA,CAAA,EAAG;UACZ,OAAQV,SAAS,CAAoBU,WAAW,CAAC,CAAC;QACpD,CAAC;QACDC,MAAMA,CAACC,EAAO,EAAEC,CAAS,EAAE;UACzB,MAAM;YAAEC;UAAe,CAAC,GACtBP,gBAAgB,CAACI,MAAM,CAAEI,iBAAiB,CAAC,CAAC;UAC9C,MAAM;YAAEC;UAAM,CAAC,GAAGT,gBAAgB,CAACI,MAAM,CAAEM,SAAS,CAAC,CAAC;UAEtDV,gBAAgB,CAACW,WAAW,GAC1B,CAAC,CAACF,KAAK,IAAI,CAAC,KAAMF,cAAc,IAAe,CAAC,CAAC,IAAID,CAAC;QAC1D,CAAC;QACDhB,QAAQ;QACRsB,OAAOA,CAAA,EAAG;UACRZ,gBAAgB,CAACa,MAAM,CAAC,CAAC;QAC3B;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIzB,OAAO,CAACA,OAAO,KAAK,cAAc,EAAE;IAC7C,MAAM;MAAE0B,gBAAgB;MAAEC,kBAAkB;MAAEC;IAAiB,CAAC,GAC9DrD,gBAAyC;IAE3C+B,mBAAmB,GAAG;MACpBhC,MAAM,EAAG+B,SAAS,CAA4B/B,MAAM;MACpDoD,gBAAgB;MAChBvB;IACF,CAAC;IAED,IAAI5B,gBAAgB,CAACsD,YAAY,IAAIF,kBAAkB,EAAE;MACvDrB,mBAAmB,CAACqB,kBAAkB,GAAGA,kBAAkB;MAC3DrB,mBAAmB,CAACsB,gBAAgB,GAAG7D,WAAW,CAAC6D,gBAAgB,CAAC;IACtE;EACF;EAEA,OAAO;IACL,GAAGtB,mBAAmB;IACtBS,WAAWA,CAAA,EAAG;MACZ,OACEV,SAAS,CACTU,WAAW,CAAC,CAAC;IACjB,CAAC;IACDC,MAAMA,CACJC,EAAO,EACPC,CAAoC,EACpCY,CAA4B,EAC5BC,MAAgB,EAChB;MACA1B,SAAS,CAAC2B,QAAQ,CAChBF,CAAC,GACG;QACE;QACA,GAAGZ,CAAC;QACJY,CAAC;QACDC;MACF,CAAC,GACDb,CACN,CAAC;IACH,CAAC;IACDhB,QAAQ;IACRsB,OAAOA,CAAA,EAAG;MACRnB,SAAS,CAACoB,MAAM,CAAC,CAAC;IACpB;EACF,CAAC;AACH;AAEA,SACExD,eAAe,EACfD,eAAe,EACfK,sBAAsB,EACtBM,mBAAmB,EACnBoB,aAAa,EACb7B,gBAAgB,EAChBJ,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["AnimationGroup","getEasing","getJsEasing","getWebAnimation","getCSSAnimation","prepareAnimation","getElement","getNamedEffect","getElementCSSAnimation","target","animationOptions","namedEffect","style","effectId","getElementAnimation","effectNames","getNames","element","animations","getAnimations","animationNames","map","anim","animationName","filteredAnimations","forEach","name","includes","push","find","length","filter","id","startsWith","getScrubScene","trigger","sceneOptions","disabled","allowActiveEvent","rest","animation","typeSpecificOptions","window","ViewTimeline","viewSource","componentId","ready","partialAnimation","start","end","getProgress","effect","__","p","activeDuration","getComputedTiming","delay","getTiming","currentTime","destroy","cancel","centeredToTarget","transitionDuration","transitionEasing","customEffect","v","active","progress","getAnimation","Promise","resolve"],"sources":["../../src/motion.ts"],"sourcesContent":["import type {\n AnimationOptions,\n ScrubAnimationOptions,\n TriggerVariant,\n MouseAnimationInstance,\n AnimationEffectAPI,\n CustomMouseAnimationInstance,\n ScrubScrollScene,\n ScrubPointerScene,\n} from './types';\nimport { AnimationGroup } from './AnimationGroup';\nimport { getEasing, getJsEasing } from './utils';\nimport { getWebAnimation } from './api/webAnimations';\nimport { getCSSAnimation } from './api/cssAnimations';\nimport { prepareAnimation } from './api/prepare';\nimport { getElement, getNamedEffect } from './api/common';\n\nfunction getElementCSSAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n): AnimationGroup | null {\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n if (!namedEffect) {\n return null;\n }\n\n if (!namedEffect.style) {\n // if this named effect does not have a style method, attempt to get group of Web Animations\n if (animationOptions.effectId && target) {\n return getElementAnimation(target, animationOptions.effectId);\n }\n\n return null;\n }\n\n const effectNames = namedEffect.getNames(animationOptions);\n const element = typeof target === 'string' ? getElement(target) : target;\n const animations = element?.getAnimations();\n const animationNames =\n animations?.map((anim) => (anim as CSSAnimation).animationName) ||\n ([] as string[]);\n const filteredAnimations: CSSAnimation[] = [];\n\n effectNames.forEach((name) => {\n if (animationNames.includes(name)) {\n filteredAnimations.push(\n animations?.find(\n (anim) => (anim as CSSAnimation).animationName === name,\n ) as CSSAnimation,\n );\n }\n });\n\n return filteredAnimations?.length\n ? new AnimationGroup(filteredAnimations)\n : null;\n}\n\nfunction getElementAnimation(\n target: HTMLElement | string,\n effectId: string,\n): AnimationGroup | null {\n const element = typeof target === 'string' ? getElement(target) : target;\n // somehow get the right animations\n const animations = element\n ?.getAnimations()\n .filter((anim: Animation | CSSAnimation) => {\n const id = anim.id || (anim as CSSAnimation).animationName;\n // if no id/name just return all animations\n return id ? id.startsWith(effectId) : true;\n });\n\n return animations?.length ? new AnimationGroup(animations) : null;\n}\n\nfunction getScrubScene(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger: Partial<TriggerVariant> & { element?: HTMLElement },\n sceneOptions: Record<string, any> = {},\n): ScrubScrollScene[] | ScrubPointerScene {\n const { disabled, allowActiveEvent, ...rest } = sceneOptions;\n const animation = getWebAnimation(target, animationOptions, trigger, rest);\n\n let typeSpecificOptions = {} as Record<string, any>;\n\n if (trigger.trigger === 'view-progress' && !window.ViewTimeline) {\n // TODO(ameerf): consider doing this only for bgscrub to not affect the other scroll effects\n const viewSource = trigger.element || getElement(trigger.componentId!);\n const { ready } = animation as AnimationGroup;\n\n return (animation as AnimationGroup).animations.map((partialAnimation) => {\n return {\n /* we use getters for start and end in order to access the animation's start and end\n only when initializing the scrub scene rather than immediately */\n get start() {\n return partialAnimation.start;\n },\n get end() {\n return partialAnimation.end;\n },\n viewSource,\n ready,\n getProgress() {\n return (animation as AnimationGroup).getProgress();\n },\n effect(__: any, p: number) {\n const { activeDuration } =\n partialAnimation.effect!.getComputedTiming();\n const { delay } = partialAnimation.effect!.getTiming();\n\n partialAnimation.currentTime =\n ((delay || 0) + ((activeDuration as number) || 0)) * p;\n },\n disabled,\n destroy() {\n partialAnimation.cancel();\n },\n } as ScrubScrollScene;\n });\n } else if (trigger.trigger === 'pointer-move') {\n const { centeredToTarget, transitionDuration, transitionEasing } =\n animationOptions as ScrubAnimationOptions;\n\n typeSpecificOptions = {\n target: (animation as MouseAnimationInstance).target,\n centeredToTarget,\n allowActiveEvent,\n };\n\n if (animationOptions.customEffect && transitionDuration) {\n typeSpecificOptions.transitionDuration = transitionDuration;\n typeSpecificOptions.transitionEasing = getJsEasing(transitionEasing);\n }\n }\n\n return {\n ...typeSpecificOptions,\n getProgress() {\n return (\n animation as AnimationGroup | CustomMouseAnimationInstance\n ).getProgress();\n },\n effect(\n __: any,\n p: number | { x: number; y: number },\n v?: { x: number; y: number },\n active?: boolean,\n ) {\n animation.progress(\n v\n ? {\n // @ts-expect-error spread error on p\n ...p,\n v,\n active,\n }\n : p,\n );\n },\n disabled,\n destroy() {\n animation.cancel();\n },\n } as ScrubPointerScene;\n}\n\nfunction getAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger?: Partial<TriggerVariant> & { element?: HTMLElement },\n): AnimationGroup | MouseAnimationInstance | null {\n const animation = getElementCSSAnimation(target, animationOptions);\n\n if (animation) {\n animation.ready = new Promise((resolve) => {\n prepareAnimation(target, animationOptions, resolve);\n });\n\n return animation;\n }\n\n return getWebAnimation(\n target,\n animationOptions,\n trigger,\n );\n}\n\nexport {\n getCSSAnimation,\n getWebAnimation,\n getElementCSSAnimation,\n getElementAnimation,\n getScrubScene,\n prepareAnimation,\n getAnimation,\n getEasing,\n};\n\nexport type { AnimationGroup };\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BlurMouse.d.ts","sourceRoot":"","sources":["../../../../src/library/mouse/BlurMouse.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EAErB,QAAQ,EAGT,MAAM,aAAa,CAAC;AAUrB,cAAM,kBAAmB,SAAQ,WAAW;IAC1C,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ;IA4CjD,MAAM;CAKP;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,YA6BtC,WAAW,wBAE5B"}
1
+ {"version":3,"file":"BlurMouse.d.ts","sourceRoot":"","sources":["../../../../src/library/mouse/BlurMouse.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EAErB,QAAQ,EAGT,MAAM,aAAa,CAAC;AAUrB,cAAM,kBAAmB,SAAQ,WAAW;IAC1C,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ;IAyCjD,MAAM;CAKP;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,OAAO,EAAE,qBAAqB,GAAG,qBAAqB,YA6BtC,WAAW,wBAE5B"}
@@ -1,4 +1,4 @@
1
- import type { AnimationOptions, TriggerVariant, ScrubScrollScene, ScrubPointerScene } from './types';
1
+ import type { AnimationOptions, TriggerVariant, MouseAnimationInstance, ScrubScrollScene, ScrubPointerScene } from './types';
2
2
  import { AnimationGroup } from './AnimationGroup';
3
3
  import { getEasing } from './utils';
4
4
  import { getWebAnimation } from './api/webAnimations';
@@ -9,6 +9,9 @@ declare function getElementAnimation(target: HTMLElement | string, effectId: str
9
9
  declare function getScrubScene(target: HTMLElement | string | null, animationOptions: AnimationOptions, trigger: Partial<TriggerVariant> & {
10
10
  element?: HTMLElement;
11
11
  }, sceneOptions?: Record<string, any>): ScrubScrollScene[] | ScrubPointerScene;
12
- export { getCSSAnimation, getWebAnimation, getElementCSSAnimation, getElementAnimation, getScrubScene, prepareAnimation, getEasing, };
12
+ declare function getAnimation(target: HTMLElement | string | null, animationOptions: AnimationOptions, trigger?: Partial<TriggerVariant> & {
13
+ element?: HTMLElement;
14
+ }): AnimationGroup | MouseAnimationInstance | null;
15
+ export { getCSSAnimation, getWebAnimation, getElementCSSAnimation, getElementAnimation, getScrubScene, prepareAnimation, getAnimation, getEasing, };
13
16
  export type { AnimationGroup };
14
17
  //# sourceMappingURL=motion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/motion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,cAAc,EAId,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,iBAAS,sBAAsB,CAC7B,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,GACjC,cAAc,GAAG,IAAI,CAuCvB;AAED,iBAAS,mBAAmB,CAC1B,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,cAAc,GAAG,IAAI,CAYvB;AAED,iBAAS,aAAa,CACpB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,EAC5D,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACrC,gBAAgB,EAAE,GAAG,iBAAiB,CAqFxC;AAED,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,SAAS,GACV,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/motion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,cAAc,EACd,sBAAsB,EAGtB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,iBAAS,sBAAsB,CAC7B,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,GACjC,cAAc,GAAG,IAAI,CAuCvB;AAED,iBAAS,mBAAmB,CAC1B,MAAM,EAAE,WAAW,GAAG,MAAM,EAC5B,QAAQ,EAAE,MAAM,GACf,cAAc,GAAG,IAAI,CAYvB;AAED,iBAAS,aAAa,CACpB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,EAC5D,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GACrC,gBAAgB,EAAE,GAAG,iBAAiB,CAqFxC;AAED,iBAAS,YAAY,CACnB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,GAC5D,cAAc,GAAG,sBAAsB,GAAG,IAAI,CAgBhD;AAED,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,SAAS,GACV,CAAC;AAEF,YAAY,EAAE,cAAc,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/motion",
3
- "version": "1.600.0",
3
+ "version": "1.602.0",
4
4
  "license": "UNLICENSED",
5
5
  "author": {
6
6
  "name": "wow!Team",
@@ -83,5 +83,5 @@
83
83
  "wallaby": {
84
84
  "autoDetect": true
85
85
  },
86
- "falconPackageHash": "f2b27c1bffd185c5982c5349fc05b175b264a6a5b4f9211f33830ecb"
86
+ "falconPackageHash": "ee3298727e5bb0634ddc093e000d5d6e9afdf839369a2f87a12dcec8"
87
87
  }