@wix/motion 1.661.0 → 1.662.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.
Files changed (248) hide show
  1. package/dist/cjs/library/backgroundScroll/BgCloseUp.js +29 -8
  2. package/dist/cjs/library/backgroundScroll/BgCloseUp.js.map +1 -1
  3. package/dist/cjs/library/backgroundScroll/BgFade.js +24 -9
  4. package/dist/cjs/library/backgroundScroll/BgFade.js.map +1 -1
  5. package/dist/cjs/library/backgroundScroll/BgFadeBack.js +29 -8
  6. package/dist/cjs/library/backgroundScroll/BgFadeBack.js.map +1 -1
  7. package/dist/cjs/library/backgroundScroll/BgFake3D.js +40 -12
  8. package/dist/cjs/library/backgroundScroll/BgFake3D.js.map +1 -1
  9. package/dist/cjs/library/backgroundScroll/BgPan.js +27 -13
  10. package/dist/cjs/library/backgroundScroll/BgPan.js.map +1 -1
  11. package/dist/cjs/library/backgroundScroll/BgParallax.js +27 -8
  12. package/dist/cjs/library/backgroundScroll/BgParallax.js.map +1 -1
  13. package/dist/cjs/library/backgroundScroll/BgPullBack.js +28 -7
  14. package/dist/cjs/library/backgroundScroll/BgPullBack.js.map +1 -1
  15. package/dist/cjs/library/backgroundScroll/BgReveal.js +19 -5
  16. package/dist/cjs/library/backgroundScroll/BgReveal.js.map +1 -1
  17. package/dist/cjs/library/backgroundScroll/BgRotate.js +17 -3
  18. package/dist/cjs/library/backgroundScroll/BgRotate.js.map +1 -1
  19. package/dist/cjs/library/backgroundScroll/BgSkew.js +27 -8
  20. package/dist/cjs/library/backgroundScroll/BgSkew.js.map +1 -1
  21. package/dist/cjs/library/backgroundScroll/BgZoom.js +82 -44
  22. package/dist/cjs/library/backgroundScroll/BgZoom.js.map +1 -1
  23. package/dist/cjs/library/backgroundScroll/ImageParallax.js +37 -14
  24. package/dist/cjs/library/backgroundScroll/ImageParallax.js.map +1 -1
  25. package/dist/cjs/library/backgroundScroll/index.js +25 -25
  26. package/dist/cjs/library/backgroundScroll/index.js.map +1 -1
  27. package/dist/cjs/library/backgroundScroll/utils.js +15 -4
  28. package/dist/cjs/library/backgroundScroll/utils.js.map +1 -1
  29. package/dist/cjs/library/entrance/BounceIn.js +1 -1
  30. package/dist/cjs/library/entrance/BounceIn.js.map +1 -1
  31. package/dist/cjs/library/ongoing/Breathe.js +1 -1
  32. package/dist/cjs/library/ongoing/Breathe.js.map +1 -1
  33. package/dist/cjs/library/scroll/ArcScroll.js +23 -38
  34. package/dist/cjs/library/scroll/ArcScroll.js.map +1 -1
  35. package/dist/cjs/library/scroll/BlurScroll.js +20 -14
  36. package/dist/cjs/library/scroll/BlurScroll.js.map +1 -1
  37. package/dist/cjs/library/scroll/FadeScroll.js +22 -16
  38. package/dist/cjs/library/scroll/FadeScroll.js.map +1 -1
  39. package/dist/cjs/library/scroll/FlipScroll.js +21 -21
  40. package/dist/cjs/library/scroll/FlipScroll.js.map +1 -1
  41. package/dist/cjs/library/scroll/GrowScroll.js +38 -99
  42. package/dist/cjs/library/scroll/GrowScroll.js.map +1 -1
  43. package/dist/cjs/library/scroll/MoveScroll.js +56 -84
  44. package/dist/cjs/library/scroll/MoveScroll.js.map +1 -1
  45. package/dist/cjs/library/scroll/PanScroll.js +50 -50
  46. package/dist/cjs/library/scroll/PanScroll.js.map +1 -1
  47. package/dist/cjs/library/scroll/ParallaxScroll.js +19 -32
  48. package/dist/cjs/library/scroll/ParallaxScroll.js.map +1 -1
  49. package/dist/cjs/library/scroll/RevealScroll.js +37 -70
  50. package/dist/cjs/library/scroll/RevealScroll.js.map +1 -1
  51. package/dist/cjs/library/scroll/ShapeScroll.js +39 -39
  52. package/dist/cjs/library/scroll/ShapeScroll.js.map +1 -1
  53. package/dist/cjs/library/scroll/ShrinkScroll.js +37 -95
  54. package/dist/cjs/library/scroll/ShrinkScroll.js.map +1 -1
  55. package/dist/cjs/library/scroll/ShuttersScroll.js +41 -33
  56. package/dist/cjs/library/scroll/ShuttersScroll.js.map +1 -1
  57. package/dist/cjs/library/scroll/SkewPanScroll.js +50 -87
  58. package/dist/cjs/library/scroll/SkewPanScroll.js.map +1 -1
  59. package/dist/cjs/library/scroll/SlideScroll.js +61 -84
  60. package/dist/cjs/library/scroll/SlideScroll.js.map +1 -1
  61. package/dist/cjs/library/scroll/Spin3dScroll.js +47 -79
  62. package/dist/cjs/library/scroll/Spin3dScroll.js.map +1 -1
  63. package/dist/cjs/library/scroll/SpinScroll.js +24 -20
  64. package/dist/cjs/library/scroll/SpinScroll.js.map +1 -1
  65. package/dist/cjs/library/scroll/StretchScroll.js +49 -33
  66. package/dist/cjs/library/scroll/StretchScroll.js.map +1 -1
  67. package/dist/cjs/library/scroll/TiltScroll.js +44 -85
  68. package/dist/cjs/library/scroll/TiltScroll.js.map +1 -1
  69. package/dist/cjs/library/scroll/TurnScroll.js +57 -84
  70. package/dist/cjs/library/scroll/TurnScroll.js.map +1 -1
  71. package/dist/cjs/library/scroll/index.js +39 -39
  72. package/dist/cjs/library/scroll/index.js.map +1 -1
  73. package/dist/cjs/types.js.map +1 -1
  74. package/dist/cjs/utils.js +37 -4
  75. package/dist/cjs/utils.js.map +1 -1
  76. package/dist/esm/library/backgroundScroll/BgCloseUp.js +28 -7
  77. package/dist/esm/library/backgroundScroll/BgCloseUp.js.map +1 -1
  78. package/dist/esm/library/backgroundScroll/BgFade.js +22 -7
  79. package/dist/esm/library/backgroundScroll/BgFade.js.map +1 -1
  80. package/dist/esm/library/backgroundScroll/BgFadeBack.js +27 -6
  81. package/dist/esm/library/backgroundScroll/BgFadeBack.js.map +1 -1
  82. package/dist/esm/library/backgroundScroll/BgFake3D.js +36 -8
  83. package/dist/esm/library/backgroundScroll/BgFake3D.js.map +1 -1
  84. package/dist/esm/library/backgroundScroll/BgPan.js +25 -11
  85. package/dist/esm/library/backgroundScroll/BgPan.js.map +1 -1
  86. package/dist/esm/library/backgroundScroll/BgParallax.js +24 -5
  87. package/dist/esm/library/backgroundScroll/BgParallax.js.map +1 -1
  88. package/dist/esm/library/backgroundScroll/BgPullBack.js +26 -5
  89. package/dist/esm/library/backgroundScroll/BgPullBack.js.map +1 -1
  90. package/dist/esm/library/backgroundScroll/BgReveal.js +15 -4
  91. package/dist/esm/library/backgroundScroll/BgReveal.js.map +1 -1
  92. package/dist/esm/library/backgroundScroll/BgRotate.js +17 -2
  93. package/dist/esm/library/backgroundScroll/BgRotate.js.map +1 -1
  94. package/dist/esm/library/backgroundScroll/BgSkew.js +25 -6
  95. package/dist/esm/library/backgroundScroll/BgSkew.js.map +1 -1
  96. package/dist/esm/library/backgroundScroll/BgZoom.js +82 -44
  97. package/dist/esm/library/backgroundScroll/BgZoom.js.map +1 -1
  98. package/dist/esm/library/backgroundScroll/ImageParallax.js +35 -12
  99. package/dist/esm/library/backgroundScroll/ImageParallax.js.map +1 -1
  100. package/dist/esm/library/backgroundScroll/index.js +12 -12
  101. package/dist/esm/library/backgroundScroll/index.js.map +1 -1
  102. package/dist/esm/library/backgroundScroll/utils.js +15 -4
  103. package/dist/esm/library/backgroundScroll/utils.js.map +1 -1
  104. package/dist/esm/library/entrance/BounceIn.js +1 -1
  105. package/dist/esm/library/entrance/BounceIn.js.map +1 -1
  106. package/dist/esm/library/ongoing/Breathe.js +1 -1
  107. package/dist/esm/library/ongoing/Breathe.js.map +1 -1
  108. package/dist/esm/library/scroll/ArcScroll.js +22 -36
  109. package/dist/esm/library/scroll/ArcScroll.js.map +1 -1
  110. package/dist/esm/library/scroll/BlurScroll.js +20 -13
  111. package/dist/esm/library/scroll/BlurScroll.js.map +1 -1
  112. package/dist/esm/library/scroll/FadeScroll.js +22 -15
  113. package/dist/esm/library/scroll/FadeScroll.js.map +1 -1
  114. package/dist/esm/library/scroll/FlipScroll.js +21 -20
  115. package/dist/esm/library/scroll/FlipScroll.js.map +1 -1
  116. package/dist/esm/library/scroll/GrowScroll.js +38 -99
  117. package/dist/esm/library/scroll/GrowScroll.js.map +1 -1
  118. package/dist/esm/library/scroll/MoveScroll.js +57 -85
  119. package/dist/esm/library/scroll/MoveScroll.js.map +1 -1
  120. package/dist/esm/library/scroll/PanScroll.js +50 -50
  121. package/dist/esm/library/scroll/PanScroll.js.map +1 -1
  122. package/dist/esm/library/scroll/ParallaxScroll.js +19 -32
  123. package/dist/esm/library/scroll/ParallaxScroll.js.map +1 -1
  124. package/dist/esm/library/scroll/RevealScroll.js +34 -70
  125. package/dist/esm/library/scroll/RevealScroll.js.map +1 -1
  126. package/dist/esm/library/scroll/ShapeScroll.js +40 -39
  127. package/dist/esm/library/scroll/ShapeScroll.js.map +1 -1
  128. package/dist/esm/library/scroll/ShrinkScroll.js +37 -95
  129. package/dist/esm/library/scroll/ShrinkScroll.js.map +1 -1
  130. package/dist/esm/library/scroll/ShuttersScroll.js +42 -33
  131. package/dist/esm/library/scroll/ShuttersScroll.js.map +1 -1
  132. package/dist/esm/library/scroll/SkewPanScroll.js +49 -86
  133. package/dist/esm/library/scroll/SkewPanScroll.js.map +1 -1
  134. package/dist/esm/library/scroll/SlideScroll.js +61 -84
  135. package/dist/esm/library/scroll/SlideScroll.js.map +1 -1
  136. package/dist/esm/library/scroll/Spin3dScroll.js +47 -79
  137. package/dist/esm/library/scroll/Spin3dScroll.js.map +1 -1
  138. package/dist/esm/library/scroll/SpinScroll.js +24 -19
  139. package/dist/esm/library/scroll/SpinScroll.js.map +1 -1
  140. package/dist/esm/library/scroll/StretchScroll.js +49 -32
  141. package/dist/esm/library/scroll/StretchScroll.js.map +1 -1
  142. package/dist/esm/library/scroll/TiltScroll.js +44 -85
  143. package/dist/esm/library/scroll/TiltScroll.js.map +1 -1
  144. package/dist/esm/library/scroll/TurnScroll.js +56 -83
  145. package/dist/esm/library/scroll/TurnScroll.js.map +1 -1
  146. package/dist/esm/library/scroll/index.js +19 -19
  147. package/dist/esm/library/scroll/index.js.map +1 -1
  148. package/dist/esm/types.js.map +1 -1
  149. package/dist/esm/utils.js +32 -3
  150. package/dist/esm/utils.js.map +1 -1
  151. package/dist/types/api/common.d.ts +7 -1
  152. package/dist/types/api/common.d.ts.map +1 -1
  153. package/dist/types/library/backgroundScroll/BgCloseUp.d.ts +83 -2
  154. package/dist/types/library/backgroundScroll/BgCloseUp.d.ts.map +1 -1
  155. package/dist/types/library/backgroundScroll/BgFade.d.ts +46 -2
  156. package/dist/types/library/backgroundScroll/BgFade.d.ts.map +1 -1
  157. package/dist/types/library/backgroundScroll/BgFadeBack.d.ts +85 -3
  158. package/dist/types/library/backgroundScroll/BgFadeBack.d.ts.map +1 -1
  159. package/dist/types/library/backgroundScroll/BgFake3D.d.ts +82 -2
  160. package/dist/types/library/backgroundScroll/BgFake3D.d.ts.map +1 -1
  161. package/dist/types/library/backgroundScroll/BgPan.d.ts +44 -2
  162. package/dist/types/library/backgroundScroll/BgPan.d.ts.map +1 -1
  163. package/dist/types/library/backgroundScroll/BgParallax.d.ts +44 -2
  164. package/dist/types/library/backgroundScroll/BgParallax.d.ts.map +1 -1
  165. package/dist/types/library/backgroundScroll/BgPullBack.d.ts +44 -2
  166. package/dist/types/library/backgroundScroll/BgPullBack.d.ts.map +1 -1
  167. package/dist/types/library/backgroundScroll/BgReveal.d.ts +6 -1
  168. package/dist/types/library/backgroundScroll/BgReveal.d.ts.map +1 -1
  169. package/dist/types/library/backgroundScroll/BgRotate.d.ts +28 -1
  170. package/dist/types/library/backgroundScroll/BgRotate.d.ts.map +1 -1
  171. package/dist/types/library/backgroundScroll/BgSkew.d.ts +44 -2
  172. package/dist/types/library/backgroundScroll/BgSkew.d.ts.map +1 -1
  173. package/dist/types/library/backgroundScroll/BgZoom.d.ts +7 -71
  174. package/dist/types/library/backgroundScroll/BgZoom.d.ts.map +1 -1
  175. package/dist/types/library/backgroundScroll/ImageParallax.d.ts +45 -2
  176. package/dist/types/library/backgroundScroll/ImageParallax.d.ts.map +1 -1
  177. package/dist/types/library/backgroundScroll/index.d.ts.map +1 -1
  178. package/dist/types/library/backgroundScroll/utils.d.ts +4 -3
  179. package/dist/types/library/backgroundScroll/utils.d.ts.map +1 -1
  180. package/dist/types/library/ongoing/Bounce.d.ts +2 -0
  181. package/dist/types/library/ongoing/Bounce.d.ts.map +1 -1
  182. package/dist/types/library/ongoing/Breathe.d.ts +2 -0
  183. package/dist/types/library/ongoing/Breathe.d.ts.map +1 -1
  184. package/dist/types/library/ongoing/Cross.d.ts +1 -0
  185. package/dist/types/library/ongoing/Cross.d.ts.map +1 -1
  186. package/dist/types/library/ongoing/Flash.d.ts +2 -0
  187. package/dist/types/library/ongoing/Flash.d.ts.map +1 -1
  188. package/dist/types/library/ongoing/Flip.d.ts +2 -0
  189. package/dist/types/library/ongoing/Flip.d.ts.map +1 -1
  190. package/dist/types/library/ongoing/Fold.d.ts +2 -0
  191. package/dist/types/library/ongoing/Fold.d.ts.map +1 -1
  192. package/dist/types/library/ongoing/Jello.d.ts +2 -0
  193. package/dist/types/library/ongoing/Jello.d.ts.map +1 -1
  194. package/dist/types/library/ongoing/Poke.d.ts +2 -0
  195. package/dist/types/library/ongoing/Poke.d.ts.map +1 -1
  196. package/dist/types/library/ongoing/Pulse.d.ts +2 -0
  197. package/dist/types/library/ongoing/Pulse.d.ts.map +1 -1
  198. package/dist/types/library/ongoing/Rubber.d.ts +2 -0
  199. package/dist/types/library/ongoing/Rubber.d.ts.map +1 -1
  200. package/dist/types/library/ongoing/Spin.d.ts +2 -0
  201. package/dist/types/library/ongoing/Spin.d.ts.map +1 -1
  202. package/dist/types/library/ongoing/Swing.d.ts +2 -0
  203. package/dist/types/library/ongoing/Swing.d.ts.map +1 -1
  204. package/dist/types/library/ongoing/Wiggle.d.ts +2 -0
  205. package/dist/types/library/ongoing/Wiggle.d.ts.map +1 -1
  206. package/dist/types/library/scroll/ArcScroll.d.ts +35 -2
  207. package/dist/types/library/scroll/ArcScroll.d.ts.map +1 -1
  208. package/dist/types/library/scroll/BlurScroll.d.ts +36 -2
  209. package/dist/types/library/scroll/BlurScroll.d.ts.map +1 -1
  210. package/dist/types/library/scroll/FadeScroll.d.ts +35 -2
  211. package/dist/types/library/scroll/FadeScroll.d.ts.map +1 -1
  212. package/dist/types/library/scroll/FlipScroll.d.ts +35 -2
  213. package/dist/types/library/scroll/FlipScroll.d.ts.map +1 -1
  214. package/dist/types/library/scroll/GrowScroll.d.ts +45 -2
  215. package/dist/types/library/scroll/GrowScroll.d.ts.map +1 -1
  216. package/dist/types/library/scroll/MoveScroll.d.ts +40 -1
  217. package/dist/types/library/scroll/MoveScroll.d.ts.map +1 -1
  218. package/dist/types/library/scroll/PanScroll.d.ts +35 -1
  219. package/dist/types/library/scroll/PanScroll.d.ts.map +1 -1
  220. package/dist/types/library/scroll/ParallaxScroll.d.ts +35 -2
  221. package/dist/types/library/scroll/ParallaxScroll.d.ts.map +1 -1
  222. package/dist/types/library/scroll/RevealScroll.d.ts +37 -3
  223. package/dist/types/library/scroll/RevealScroll.d.ts.map +1 -1
  224. package/dist/types/library/scroll/ShapeScroll.d.ts +46 -3
  225. package/dist/types/library/scroll/ShapeScroll.d.ts.map +1 -1
  226. package/dist/types/library/scroll/ShrinkScroll.d.ts +45 -2
  227. package/dist/types/library/scroll/ShrinkScroll.d.ts.map +1 -1
  228. package/dist/types/library/scroll/ShuttersScroll.d.ts +42 -15
  229. package/dist/types/library/scroll/ShuttersScroll.d.ts.map +1 -1
  230. package/dist/types/library/scroll/SkewPanScroll.d.ts +39 -1
  231. package/dist/types/library/scroll/SkewPanScroll.d.ts.map +1 -1
  232. package/dist/types/library/scroll/SlideScroll.d.ts +29 -2
  233. package/dist/types/library/scroll/SlideScroll.d.ts.map +1 -1
  234. package/dist/types/library/scroll/Spin3dScroll.d.ts +49 -2
  235. package/dist/types/library/scroll/Spin3dScroll.d.ts.map +1 -1
  236. package/dist/types/library/scroll/SpinScroll.d.ts +39 -2
  237. package/dist/types/library/scroll/SpinScroll.d.ts.map +1 -1
  238. package/dist/types/library/scroll/StretchScroll.d.ts +74 -2
  239. package/dist/types/library/scroll/StretchScroll.d.ts.map +1 -1
  240. package/dist/types/library/scroll/TiltScroll.d.ts +95 -2
  241. package/dist/types/library/scroll/TiltScroll.d.ts.map +1 -1
  242. package/dist/types/library/scroll/TurnScroll.d.ts +44 -7
  243. package/dist/types/library/scroll/TurnScroll.d.ts.map +1 -1
  244. package/dist/types/types.d.ts +5 -4
  245. package/dist/types/types.d.ts.map +1 -1
  246. package/dist/types/utils.d.ts +8 -2
  247. package/dist/types/utils.d.ts.map +1 -1
  248. package/package.json +2 -2
@@ -1,80 +1,15 @@
1
+ import { toKeyframeValue } from '../../utils';
1
2
  const POWER_MAP = {
2
- soft: {
3
- skewX: 10
4
- },
5
- medium: {
6
- skewX: 17
7
- },
8
- hard: {
9
- skewX: 24
10
- }
11
- };
12
- const DIRECTION_MAP = {
13
- right: -1,
14
- left: 1
3
+ soft: 10,
4
+ medium: 17,
5
+ hard: 24
15
6
  };
16
- const RANGES_MAP = {
17
- in: (skewX, startX, _endX) => ({
18
- fromValues: {
19
- skewX,
20
- startX
21
- },
22
- toValues: {
23
- skewX: 0,
24
- endX: 0
25
- }
26
- }),
27
- out: (skewX, startX, _endX) => ({
28
- fromValues: {
29
- skewX: 0,
30
- startX: 0
31
- },
32
- toValues: {
33
- skewX: -skewX,
34
- endX: startX
35
- }
36
- }),
37
- continuous: (skewX, startX, endX) => ({
38
- fromValues: {
39
- skewX,
40
- startX
41
- },
42
- toValues: {
43
- skewX: -skewX,
44
- endX
45
- }
46
- })
47
- };
48
- const POSITIONS = {
49
- left: {
50
- startX: `calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)`,
51
- endX: `calc(100vw - var(--motion-left, 0px))`
52
- },
53
- right: {
54
- startX: `calc(100vw - var(--motion-left, 0px))`,
55
- endX: `calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)`
56
- }
57
- };
58
- export default function create(options, dom) {
59
- const {
60
- skew = 10,
61
- direction = 'right',
62
- power,
63
- range = 'in'
64
- } = options.namedEffect;
65
- const easing = 'linear';
66
- const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
67
- const skewX = (power && POWER_MAP[power] ? POWER_MAP[power].skewX : skew) * DIRECTION_MAP[direction];
68
- const {
69
- startX,
70
- endX
71
- } = POSITIONS[direction];
72
- const {
73
- fromValues,
74
- toValues
75
- } = RANGES_MAP[range](skewX, startX, endX);
76
- let left = 0;
7
+ export function getNames(_) {
8
+ return ['motion-skewPanScroll'];
9
+ }
10
+ export function prepare(_, dom) {
77
11
  if (dom) {
12
+ let left = 0;
78
13
  dom.measure(target => {
79
14
  if (!target) {
80
15
  return;
@@ -85,25 +20,53 @@ export default function create(options, dom) {
85
20
  target == null || target.style.setProperty('--motion-left', `${left}px`);
86
21
  });
87
22
  }
23
+ }
24
+ export function web(options, dom) {
25
+ prepare(options, dom);
26
+ return style(options, true);
27
+ }
28
+ export function style(options, asWeb) {
29
+ if (asWeb === void 0) {
30
+ asWeb = false;
31
+ }
32
+ const {
33
+ skew = 10,
34
+ direction = 'right',
35
+ power,
36
+ range = 'in'
37
+ } = options.namedEffect;
38
+ const easing = 'linear';
39
+ const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
40
+ const skewX = (power && POWER_MAP[power] ? POWER_MAP[power] : skew) * (direction === 'left' ? 1 : -1);
41
+ const startXLeft = `calc(${toKeyframeValue({}, '--motion-left', false, 'calc(100vw - 100%)')} * -1 - 100%)`;
42
+ const endXLeft = `calc(100vw - ${toKeyframeValue({}, '--motion-left', false, '0px')})`;
43
+ const [startX, endX] = direction === 'left' ? [startXLeft, endXLeft] : [endXLeft, startXLeft];
44
+ const fromValues = {
45
+ skew: range === 'out' ? 0 : skewX,
46
+ translate: range === 'out' ? 0 : startX
47
+ };
48
+ const toValues = {
49
+ skew: range === 'in' ? 0 : -skewX,
50
+ translate: range === 'in' ? 0 : range === 'out' ? startX : endX
51
+ };
52
+ const [skewPanScroll] = getNames(options);
53
+ const custom = {
54
+ '--motion-skewpan-start-x': fromValues.translate,
55
+ '--motion-skewpan-end-x': toValues.translate,
56
+ '--motion-skewpan-from-skew': `${fromValues.skew}deg`,
57
+ '--motion-skewpan-to-skew': `${toValues.skew}deg`
58
+ };
88
59
  return [{
89
60
  ...options,
61
+ name: skewPanScroll,
90
62
  fill,
91
63
  easing,
64
+ custom,
92
65
  keyframes: [{
93
- transform: `translateX(${fromValues.startX}) skewX(${fromValues.skewX}deg) rotate(var(--comp-rotate-z, 0))`
66
+ transform: `translateX(${toKeyframeValue(custom, '--motion-skewpan-start-x', asWeb)}) skewX(${toKeyframeValue(custom, '--motion-skewpan-from-skew', asWeb)}) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`
94
67
  }, {
95
- transform: `translateX(${toValues.endX}) skewX(${toValues.skewX}deg) rotate(var(--comp-rotate-z, 0))`
68
+ transform: `translateX(${toKeyframeValue(custom, '--motion-skewpan-end-x', asWeb)}) skewX(${toKeyframeValue(custom, '--motion-skewpan-to-skew', asWeb)}) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`
96
69
  }]
97
70
  }];
98
- /*
99
- * @keyframes <name> {
100
- * from {
101
- * transform: translateX(<fromValue.startX>) skewX(<fromValue.skew>) rotate(<rotation>);
102
- * }
103
- * to {
104
- * transform: translateX(<toValue.endX>) skewX(<toValue.skew>) rotate(<rotation>);
105
- * }
106
- * }
107
- */
108
71
  }
109
72
  //# sourceMappingURL=SkewPanScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["POWER_MAP","soft","skewX","medium","hard","DIRECTION_MAP","right","left","RANGES_MAP","in","startX","_endX","fromValues","toValues","endX","out","continuous","POSITIONS","create","options","dom","skew","direction","power","range","namedEffect","easing","fill","measure","target","getBoundingClientRect","mutate","style","setProperty","keyframes","transform"],"sources":["../../../../src/library/scroll/SkewPanScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n DomApi,\n ScrubAnimationOptions,\n SkewPanScroll,\n} from '../../types';\n\nconst POWER_MAP = {\n soft: { skewX: 10 },\n medium: { skewX: 17 },\n hard: { skewX: 24 },\n};\n\nconst DIRECTION_MAP = {\n right: -1,\n left: 1,\n};\n\nconst RANGES_MAP = {\n in: (skewX: number, startX: string, _endX: string) => ({\n fromValues: { skewX, startX },\n toValues: { skewX: 0, endX: 0 },\n }),\n out: (skewX: number, startX: string, _endX: string) => ({\n fromValues: { skewX: 0, startX: 0 },\n toValues: { skewX: -skewX, endX: startX },\n }),\n continuous: (skewX: number, startX: string, endX: string) => ({\n fromValues: { skewX, startX },\n toValues: { skewX: -skewX, endX },\n }),\n};\n\nconst POSITIONS = {\n left: {\n startX: `calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)`,\n endX: `calc(100vw - var(--motion-left, 0px))`,\n },\n right: {\n startX: `calc(100vw - var(--motion-left, 0px))`,\n endX: `calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)`,\n },\n};\n\nexport default function create(options: ScrubAnimationOptions, dom?: DomApi) {\n const {\n skew = 10,\n direction = 'right',\n power,\n range = 'in',\n } = options.namedEffect as SkewPanScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const skewX =\n (power && POWER_MAP[power] ? POWER_MAP[power!].skewX : skew) *\n DIRECTION_MAP[direction];\n const { startX, endX } = POSITIONS[direction];\n const { fromValues, toValues } = RANGES_MAP[range](skewX, startX, endX);\n\n let left = 0;\n if (dom) {\n dom.measure((target) => {\n if (!target) {\n return;\n }\n left = target.getBoundingClientRect().left;\n });\n dom.mutate((target) => {\n target?.style.setProperty('--motion-left', `${left}px`);\n });\n }\n\n return [\n {\n ...options,\n fill,\n easing,\n keyframes: [\n {\n transform: `translateX(${fromValues.startX}) skewX(${fromValues.skewX}deg) rotate(var(--comp-rotate-z, 0))`,\n },\n {\n transform: `translateX(${toValues.endX}) skewX(${toValues.skewX}deg) rotate(var(--comp-rotate-z, 0))`,\n },\n ],\n },\n ];\n /*\n * @keyframes <name> {\n * from {\n * transform: translateX(<fromValue.startX>) skewX(<fromValue.skew>) rotate(<rotation>);\n * }\n * to {\n * transform: translateX(<toValue.endX>) skewX(<toValue.skew>) rotate(<rotation>);\n * }\n * }\n */\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["toKeyframeValue","POWER_MAP","soft","medium","hard","getNames","_","prepare","dom","left","measure","target","getBoundingClientRect","mutate","style","setProperty","web","options","asWeb","skew","direction","power","range","namedEffect","easing","fill","skewX","startXLeft","endXLeft","startX","endX","fromValues","translate","toValues","skewPanScroll","custom","name","keyframes","transform"],"sources":["../../../../src/library/scroll/SkewPanScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n DomApi,\n ScrubAnimationOptions,\n SkewPanScroll,\n} from '../../types';\nimport { toKeyframeValue } from '../../utils';\n\nconst POWER_MAP = {\n soft: 10,\n medium: 17,\n hard: 24,\n};\n\nexport function getNames(_: ScrubAnimationOptions) {\n return ['motion-skewPanScroll'];\n}\n\nexport function prepare(_: ScrubAnimationOptions, dom?: DomApi) {\n if (dom) {\n let left = 0;\n dom.measure((target) => {\n if (!target) {\n return;\n }\n left = target.getBoundingClientRect().left;\n });\n dom.mutate((target) => {\n target?.style.setProperty('--motion-left', `${left}px`);\n });\n }\n}\n\nexport function web(options: ScrubAnimationOptions, dom?: DomApi) {\n prepare(options, dom);\n\n return style(options, true);\n}\n\nexport function style(options: ScrubAnimationOptions, asWeb = false) {\n const {\n skew = 10,\n direction = 'right',\n power,\n range = 'in',\n } = options.namedEffect as SkewPanScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const skewX =\n (power && POWER_MAP[power] ? POWER_MAP[power] : skew) *\n (direction === 'left' ? 1 : -1);\n const startXLeft = `calc(${toKeyframeValue(\n {},\n '--motion-left',\n false,\n 'calc(100vw - 100%)',\n )} * -1 - 100%)`;\n const endXLeft = `calc(100vw - ${toKeyframeValue(\n {},\n '--motion-left',\n false,\n '0px',\n )})`;\n const [startX, endX] =\n direction === 'left' ? [startXLeft, endXLeft] : [endXLeft, startXLeft];\n\n const fromValues = {\n skew: range === 'out' ? 0 : skewX,\n translate: range === 'out' ? 0 : startX,\n };\n const toValues = {\n skew: range === 'in' ? 0 : -skewX,\n translate: range === 'in' ? 0 : range === 'out' ? startX : endX,\n };\n\n const [skewPanScroll] = getNames(options);\n\n const custom = {\n '--motion-skewpan-start-x': fromValues.translate,\n '--motion-skewpan-end-x': toValues.translate,\n '--motion-skewpan-from-skew': `${fromValues.skew}deg`,\n '--motion-skewpan-to-skew': `${toValues.skew}deg`,\n };\n\n return [\n {\n ...options,\n name: skewPanScroll,\n fill,\n easing,\n custom,\n keyframes: [\n {\n transform: `translateX(${toKeyframeValue(\n custom,\n '--motion-skewpan-start-x',\n asWeb,\n )}) skewX(${toKeyframeValue(\n custom,\n '--motion-skewpan-from-skew',\n asWeb,\n )}) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`,\n },\n {\n transform: `translateX(${toKeyframeValue(\n custom,\n '--motion-skewpan-end-x',\n asWeb,\n )}) skewX(${toKeyframeValue(\n custom,\n '--motion-skewpan-to-skew',\n asWeb,\n )}) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`,\n },\n ],\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,5 @@
1
- import { getAdjustedDirection, getClipPolygonParams } from '../../utils';
2
- const DIRECTIONS = ['bottom', 'left', 'top', 'right'];
3
- const OPPOSITE_DIRECTION_MAP = {
4
- top: 'bottom',
5
- bottom: 'top',
6
- left: 'right',
7
- right: 'left'
8
- };
1
+ import { getOppositeDirection, applyRotationAdjustedClip, getRevealClipFrom, getRevealClipTo, toKeyframeValue, INITIAL_CLIP, FOUR_DIRECTIONS } from '../../utils';
9
2
  const DIRECTION_TRANSLATION_MAP = {
10
- top: {
11
- x: '0',
12
- y: '-100%'
13
- },
14
- right: {
15
- x: '100%',
16
- y: '0'
17
- },
18
3
  bottom: {
19
4
  x: '0',
20
5
  y: '100%'
@@ -22,90 +7,82 @@ const DIRECTION_TRANSLATION_MAP = {
22
7
  left: {
23
8
  x: '-100%',
24
9
  y: '0'
10
+ },
11
+ top: {
12
+ x: '0',
13
+ y: '-100%'
14
+ },
15
+ right: {
16
+ x: '100%',
17
+ y: '0'
25
18
  }
26
19
  };
27
- const initialClip = getClipPolygonParams({
28
- direction: 'initial'
29
- });
30
- const KEYFRAMES_RANGE_MAP = {
31
- in: (clip, translate) => [{
32
- clipPath: `var(--motion-clip-from, ${clip.from})`,
33
- transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`
34
- }, {
35
- clipPath: initialClip,
36
- transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`
37
- }],
38
- out: (clip, translate) => [{
39
- clipPath: initialClip,
40
- transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`
41
- }, {
42
- clipPath: `var(--motion-clip-from, ${clip.from})`,
43
- transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`
44
- }],
45
- continuous: (clip, translate) => [{
46
- clipPath: `var(--motion-clip-from, ${clip.from})`,
47
- transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`
48
- }, {
49
- clipPath: initialClip,
50
- transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`
51
- }, {
52
- clipPath: `var(--motion-clip-to, ${clip.to})`,
53
- transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.to.x}, ${translate.to.y})`
54
- }]
55
- };
56
- export default function create(options, dom) {
20
+ export function getNames(options) {
21
+ const {
22
+ range = 'in'
23
+ } = options.namedEffect;
24
+ return [`motion-slideScroll${range === 'continuous' ? '-continuous' : ''}`];
25
+ }
26
+ export function prepare(options, dom) {
27
+ if (dom) {
28
+ const {
29
+ direction = 'bottom',
30
+ range = 'in'
31
+ } = options.namedEffect;
32
+ applyRotationAdjustedClip(dom, direction, range);
33
+ }
34
+ }
35
+ export function web(options, dom) {
36
+ prepare(options, dom);
37
+ return style(options, true);
38
+ }
39
+ export function style(options, asWeb) {
40
+ if (asWeb === void 0) {
41
+ asWeb = false;
42
+ }
57
43
  const {
58
44
  direction = 'bottom',
59
45
  range = 'in'
60
46
  } = options.namedEffect;
61
47
  const easing = 'linear';
62
48
  const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
63
- const oppositeDirection = OPPOSITE_DIRECTION_MAP[direction];
64
- const keyframes = KEYFRAMES_RANGE_MAP[range]({
65
- from: getClipPolygonParams({
66
- direction: oppositeDirection
67
- }),
68
- to: getClipPolygonParams({
69
- direction
70
- })
49
+ const oppositeDirection = getOppositeDirection(FOUR_DIRECTIONS, direction);
50
+ const translateFrom = range === 'out' ? {
51
+ x: '0',
52
+ y: '0'
53
+ } : DIRECTION_TRANSLATION_MAP[direction];
54
+ const translateTo = range === 'in' ? {
55
+ x: '0',
56
+ y: '0'
57
+ } : DIRECTION_TRANSLATION_MAP[range === 'out' ? direction : oppositeDirection];
58
+ const custom = {
59
+ '--motion-clip-from': getRevealClipFrom(direction, range),
60
+ '--motion-clip-to': getRevealClipTo(direction, range),
61
+ '--motion-translate-from-x': translateFrom.x,
62
+ '--motion-translate-from-y': translateFrom.y,
63
+ '--motion-translate-to-x': translateTo.x,
64
+ '--motion-translate-to-y': translateTo.y
65
+ };
66
+ const keyframes = [{
67
+ clipPath: toKeyframeValue({}, '--motion-clip-from', false, custom['--motion-clip-from']),
68
+ transform: `rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')}) translate(${toKeyframeValue(custom, `--motion-translate-from-x`, asWeb)}, ${toKeyframeValue(custom, `--motion-translate-from-y`, asWeb)})`
71
69
  }, {
72
- from: DIRECTION_TRANSLATION_MAP[direction],
73
- to: DIRECTION_TRANSLATION_MAP[oppositeDirection]
74
- });
75
- if (dom) {
76
- dom.measure(target => {
77
- if (!target) {
78
- return;
79
- }
80
- const rotation = parseInt(getComputedStyle(target).getPropertyValue('--comp-rotate-z') || '0', 10);
81
- dom.mutate(() => {
82
- const adjDirection = getAdjustedDirection(DIRECTIONS, direction, rotation);
83
- target.style.setProperty('--motion-clip-from', getClipPolygonParams({
84
- direction: OPPOSITE_DIRECTION_MAP[adjDirection]
85
- }));
86
- target.style.setProperty('--motion-clip-to', getClipPolygonParams({
87
- direction: adjDirection
88
- }));
89
- });
70
+ clipPath: toKeyframeValue({}, '--motion-clip-to', false, custom['--motion-clip-to']),
71
+ transform: `rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')}) translate(${toKeyframeValue(custom, `--motion-translate-to-x`, asWeb)}, ${toKeyframeValue(custom, `--motion-translate-to-y`, asWeb)})`
72
+ }];
73
+ if (range === 'continuous') {
74
+ keyframes.splice(1, 0, {
75
+ clipPath: INITIAL_CLIP,
76
+ transform: `rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')}) translate(0, 0)`
90
77
  });
91
78
  }
79
+ const [slideScroll] = getNames(options);
92
80
  return [{
93
81
  ...options,
82
+ name: slideScroll,
94
83
  fill,
95
84
  easing,
96
85
  keyframes
97
86
  }];
98
- /*
99
- * @keyframes <name> {
100
- * from {
101
- * clip-path: <clip.from>;
102
- * translate: <translate.from.x> <translate.from.y>;
103
- * }
104
- * to {
105
- * clip-path: none;
106
- * translate: 0 0;
107
- * }
108
- * }
109
- */
110
87
  }
111
88
  //# sourceMappingURL=SlideScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getAdjustedDirection","getClipPolygonParams","DIRECTIONS","OPPOSITE_DIRECTION_MAP","top","bottom","left","right","DIRECTION_TRANSLATION_MAP","x","y","initialClip","direction","KEYFRAMES_RANGE_MAP","in","clip","translate","clipPath","from","transform","out","continuous","to","create","options","dom","range","namedEffect","easing","fill","oppositeDirection","keyframes","measure","target","rotation","parseInt","getComputedStyle","getPropertyValue","mutate","adjDirection","style","setProperty"],"sources":["../../../../src/library/scroll/SlideScroll.ts"],"sourcesContent":["import type {\n ScrubAnimationOptions,\n SlideScroll,\n EffectFourDirections,\n EffectScrollRange,\n DomApi,\n AnimationFillMode,\n} from '../../types';\nimport { getAdjustedDirection, getClipPolygonParams } from '../../utils';\n\ntype Translate = { x: string; y: string };\n\nconst DIRECTIONS: EffectFourDirections[] = ['bottom', 'left', 'top', 'right'];\n\ntype Direction = (typeof DIRECTIONS)[number];\n\nconst OPPOSITE_DIRECTION_MAP: Record<Direction, Direction> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n};\n\nconst DIRECTION_TRANSLATION_MAP: Record<Direction, Translate> = {\n top: { x: '0', y: '-100%' },\n right: { x: '100%', y: '0' },\n bottom: { x: '0', y: '100%' },\n left: { x: '-100%', y: '0' },\n};\n\nconst initialClip = getClipPolygonParams({ direction: 'initial' });\n\nconst KEYFRAMES_RANGE_MAP: Record<\n EffectScrollRange,\n (\n clip: { from: string; to: string },\n translate: { from: Translate; to: Translate },\n ) => { clipPath: string; transform: string }[]\n> = {\n in: (clip, translate) => [\n {\n clipPath: `var(--motion-clip-from, ${clip.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`,\n },\n {\n clipPath: initialClip,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`,\n },\n ],\n out: (clip, translate) => [\n {\n clipPath: initialClip,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`,\n },\n {\n clipPath: `var(--motion-clip-from, ${clip.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`,\n },\n ],\n continuous: (clip, translate) => [\n {\n clipPath: `var(--motion-clip-from, ${clip.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.from.x}, ${translate.from.y})`,\n },\n {\n clipPath: initialClip,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(0, 0)`,\n },\n {\n clipPath: `var(--motion-clip-to, ${clip.to})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${translate.to.x}, ${translate.to.y})`,\n },\n ],\n};\n\nexport default function create(options: ScrubAnimationOptions, dom?: DomApi) {\n const { direction = 'bottom', range = 'in' } =\n options.namedEffect as SlideScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n const oppositeDirection = OPPOSITE_DIRECTION_MAP[direction];\n\n const keyframes = KEYFRAMES_RANGE_MAP[range](\n {\n from: getClipPolygonParams({\n direction: oppositeDirection,\n }),\n to: getClipPolygonParams({\n direction,\n }),\n },\n {\n from: DIRECTION_TRANSLATION_MAP[direction],\n to: DIRECTION_TRANSLATION_MAP[oppositeDirection],\n },\n );\n\n if (dom) {\n dom.measure((target) => {\n if (!target) {\n return;\n }\n\n const rotation = parseInt(\n getComputedStyle(target).getPropertyValue('--comp-rotate-z') || '0',\n 10,\n );\n\n dom.mutate(() => {\n const adjDirection = getAdjustedDirection(\n DIRECTIONS,\n direction,\n rotation,\n ) as Direction;\n target.style.setProperty(\n '--motion-clip-from',\n getClipPolygonParams({\n direction: OPPOSITE_DIRECTION_MAP[adjDirection],\n }),\n );\n target.style.setProperty(\n '--motion-clip-to',\n getClipPolygonParams({\n direction: adjDirection,\n }),\n );\n });\n });\n }\n\n return [\n {\n ...options,\n fill,\n easing,\n keyframes,\n },\n ];\n /*\n * @keyframes <name> {\n * from {\n * clip-path: <clip.from>;\n * translate: <translate.from.x> <translate.from.y>;\n * }\n * to {\n * clip-path: none;\n * translate: 0 0;\n * }\n * }\n */\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getOppositeDirection","applyRotationAdjustedClip","getRevealClipFrom","getRevealClipTo","toKeyframeValue","INITIAL_CLIP","FOUR_DIRECTIONS","DIRECTION_TRANSLATION_MAP","bottom","x","y","left","top","right","getNames","options","range","namedEffect","prepare","dom","direction","web","style","asWeb","easing","fill","oppositeDirection","translateFrom","translateTo","custom","keyframes","clipPath","transform","splice","slideScroll","name"],"sources":["../../../../src/library/scroll/SlideScroll.ts"],"sourcesContent":["import type {\n ScrubAnimationOptions,\n SlideScroll,\n EffectFourDirections,\n DomApi,\n AnimationFillMode,\n} from '../../types';\nimport {\n getOppositeDirection,\n applyRotationAdjustedClip,\n getRevealClipFrom,\n getRevealClipTo,\n toKeyframeValue,\n INITIAL_CLIP,\n FOUR_DIRECTIONS,\n} from '../../utils';\n\ntype Translate = { x: string; y: string };\n\nconst DIRECTION_TRANSLATION_MAP: Record<EffectFourDirections, Translate> = {\n bottom: { x: '0', y: '100%' },\n left: { x: '-100%', y: '0' },\n top: { x: '0', y: '-100%' },\n right: { x: '100%', y: '0' },\n};\n\nexport function getNames(options: ScrubAnimationOptions) {\n const { range = 'in' } = options.namedEffect as SlideScroll;\n return [`motion-slideScroll${range === 'continuous' ? '-continuous' : ''}`];\n}\n\nexport function prepare(options: ScrubAnimationOptions, dom?: DomApi) {\n if (dom) {\n const { direction = 'bottom', range = 'in' } =\n options.namedEffect as SlideScroll;\n applyRotationAdjustedClip(dom, direction, range);\n }\n}\n\nexport function web(options: ScrubAnimationOptions, dom?: DomApi) {\n prepare(options, dom);\n\n return style(options, true);\n}\n\nexport function style(options: ScrubAnimationOptions, asWeb = false) {\n const { direction = 'bottom', range = 'in' } =\n options.namedEffect as SlideScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n const oppositeDirection = getOppositeDirection(FOUR_DIRECTIONS, direction);\n\n const translateFrom =\n range === 'out' ? { x: '0', y: '0' } : DIRECTION_TRANSLATION_MAP[direction];\n const translateTo =\n range === 'in'\n ? { x: '0', y: '0' }\n : DIRECTION_TRANSLATION_MAP[\n range === 'out' ? direction : oppositeDirection\n ];\n\n const custom = {\n '--motion-clip-from': getRevealClipFrom(direction, range),\n '--motion-clip-to': getRevealClipTo(direction, range),\n '--motion-translate-from-x': translateFrom.x,\n '--motion-translate-from-y': translateFrom.y,\n '--motion-translate-to-x': translateTo.x,\n '--motion-translate-to-y': translateTo.y,\n };\n\n const keyframes = [\n {\n clipPath: toKeyframeValue(\n {},\n '--motion-clip-from',\n false,\n custom['--motion-clip-from'],\n ),\n transform: `rotate(${toKeyframeValue(\n {},\n '--comp-rotate-z',\n false,\n '0',\n )}) translate(${toKeyframeValue(\n custom,\n `--motion-translate-from-x`,\n asWeb,\n )}, ${toKeyframeValue(custom, `--motion-translate-from-y`, asWeb)})`,\n },\n {\n clipPath: toKeyframeValue(\n {},\n '--motion-clip-to',\n false,\n custom['--motion-clip-to'],\n ),\n transform: `rotate(${toKeyframeValue(\n {},\n '--comp-rotate-z',\n false,\n '0',\n )}) translate(${toKeyframeValue(\n custom,\n `--motion-translate-to-x`,\n asWeb,\n )}, ${toKeyframeValue(custom, `--motion-translate-to-y`, asWeb)})`,\n },\n ];\n\n if (range === 'continuous') {\n keyframes.splice(1, 0, {\n clipPath: INITIAL_CLIP,\n transform: `rotate(${toKeyframeValue(\n {},\n '--comp-rotate-z',\n false,\n '0',\n )}) translate(0, 0)`,\n });\n }\n\n const [slideScroll] = getNames(options);\n\n return [\n {\n ...options,\n name: slideScroll,\n fill,\n easing,\n keyframes,\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import { toKeyframeValue } from '../../utils';
1
2
  const MAX_Y_TRAVEL = 40;
2
3
  const POWER_MAP = {
3
4
  soft: {
@@ -13,104 +14,71 @@ const POWER_MAP = {
13
14
  travelY: 1
14
15
  }
15
16
  };
16
- const RANGES_MAP = {
17
- in: (rotation, travelY) => ({
18
- fromValues: {
19
- rotationX: -2 * rotation,
20
- rotationY: -rotation,
21
- rotationZ: -rotation,
22
- travel: travelY
23
- },
24
- toValues: {
25
- rotationX: 0,
26
- rotationY: 0,
27
- rotationZ: 0,
28
- travel: 0
29
- }
30
- }),
31
- out: (rotation, travelY) => ({
32
- fromValues: {
33
- rotationX: 0,
34
- rotationY: 0,
35
- rotationZ: 0,
36
- travel: 0
37
- },
38
- toValues: {
39
- rotationX: rotation * 3,
40
- rotationY: rotation * 2,
41
- rotationZ: rotation,
42
- travel: -travelY
43
- }
44
- }),
45
- continuous: (rotation, travelY) => ({
46
- fromValues: {
47
- rotationX: -2 * rotation,
48
- rotationY: -rotation,
49
- rotationZ: -rotation,
50
- travel: travelY
51
- },
52
- toValues: {
53
- rotationX: rotation * 1.8,
54
- rotationY: rotation,
55
- rotationZ: 2 * rotation,
56
- travel: -travelY
57
- }
58
- })
59
- };
60
- function getScrubOffsets(_ref) {
61
- let {
62
- power,
63
- range = 'in',
64
- speed = 0
65
- } = _ref;
66
- const offset = (power && POWER_MAP[power] ? POWER_MAP[power].travelY : Math.abs(speed)) * MAX_Y_TRAVEL;
67
- return {
68
- start: range === 'out' ? '0px' : `${-offset}vh`,
69
- end: range === 'in' ? '0px' : `${offset}vh`
70
- };
17
+ export function getNames(_) {
18
+ return ['motion-spin3dScroll'];
71
19
  }
72
- export default function create(options) {
20
+ export function web(options, _dom) {
21
+ return style(options, true);
22
+ }
23
+ export function style(options, asWeb) {
24
+ if (asWeb === void 0) {
25
+ asWeb = false;
26
+ }
73
27
  const {
74
28
  rotate = -100,
29
+ speed = 0,
75
30
  power,
76
- range = 'in',
77
- speed = 0
31
+ range = 'in'
78
32
  } = options.namedEffect;
79
33
  const easing = 'linear';
80
34
  const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
81
- const initialParams = power && POWER_MAP[power] ? POWER_MAP[power] : {
35
+ const {
36
+ rotationZ,
37
+ travelY
38
+ } = power && POWER_MAP[power] ? POWER_MAP[power] : {
82
39
  rotationZ: rotate,
83
40
  travelY: speed
84
41
  };
85
- const {
86
- fromValues,
87
- toValues
88
- } = RANGES_MAP[range](initialParams.rotationZ, initialParams.travelY * -MAX_Y_TRAVEL);
89
- const {
90
- start: startOffsetAdd,
91
- end: endOffsetAdd
92
- } = getScrubOffsets(options.namedEffect);
42
+ const travel = travelY * MAX_Y_TRAVEL;
43
+ const fromValues = {
44
+ rotationX: range === 'out' ? 0 : -2 * rotationZ,
45
+ rotationY: range === 'out' ? 0 : -rotationZ,
46
+ rotationZ: range === 'out' ? 0 : -rotationZ,
47
+ travel: range === 'out' ? 0 : -travel
48
+ };
49
+ const toValues = {
50
+ rotationX: rotationZ * (range === 'in' ? 0 : range === 'out' ? 3 : 1.8),
51
+ rotationY: rotationZ * (range === 'in' ? 0 : range === 'out' ? 2 : 1),
52
+ rotationZ: rotationZ * (range === 'in' ? 0 : range === 'out' ? 1 : 2),
53
+ travel: range === 'in' ? 0 : travel
54
+ };
55
+ const offset = Math.abs(travel);
56
+ const startOffsetAdd = range === 'out' ? '0px' : `${-offset}vh`;
57
+ const endOffsetAdd = range === 'in' ? '0px' : `${offset}vh`;
58
+ const [spin3dScroll] = getNames(options);
59
+ const custom = {
60
+ '--motion-travel-from': `${fromValues.travel}vh`,
61
+ '--motion-travel-to': `${toValues.travel}vh`,
62
+ '--motion-rot-x-from': `${fromValues.rotationX}deg`,
63
+ '--motion-rot-x-to': `${toValues.rotationX}deg`,
64
+ '--motion-rot-y-from': `${fromValues.rotationY}deg`,
65
+ '--motion-rot-y-to': `${toValues.rotationY}deg`,
66
+ '--motion-rot-z-from': `${fromValues.rotationZ}deg`,
67
+ '--motion-rot-z-to': `${toValues.rotationZ}deg`
68
+ };
93
69
  return [{
94
70
  ...options,
71
+ name: spin3dScroll,
95
72
  fill,
96
73
  easing,
74
+ custom,
97
75
  startOffsetAdd,
98
76
  endOffsetAdd,
99
77
  keyframes: [{
100
- transform: `perspective(1000px) translateY(${fromValues.travel}vh) rotateZ(calc(var(--comp-rotate-z, 0deg) + ${fromValues.rotationZ}deg)) rotateY(${fromValues.rotationY}deg) rotateX(${fromValues.rotationX}deg)`
78
+ transform: `perspective(1000px) translateY(${toKeyframeValue(custom, '--motion-travel-from', asWeb)}) rotateZ(calc(${toKeyframeValue({}, '--comp-rotate-z', false, '0deg')} + ${toKeyframeValue(custom, '--motion-rot-z-from', asWeb)})) rotateY(${toKeyframeValue(custom, '--motion-rot-y-from', asWeb)}) rotateX(${toKeyframeValue(custom, '--motion-rot-x-from', asWeb)})`
101
79
  }, {
102
- transform: `perspective(1000px) translateY(${toValues.travel}vh) rotateZ(calc(var(--comp-rotate-z, 0deg) + ${toValues.rotationZ}deg)) rotateY(${toValues.rotationY}deg) rotateX(${toValues.rotationX}deg)`
80
+ transform: `perspective(1000px) translateY(${toKeyframeValue(custom, '--motion-travel-to', asWeb)}) rotateZ(calc(${toKeyframeValue({}, '--comp-rotate-z', false, '0deg')} + ${toKeyframeValue(custom, '--motion-rot-z-to', asWeb)})) rotateY(${toKeyframeValue(custom, '--motion-rot-y-to', asWeb)}) rotateX(${toKeyframeValue(custom, '--motion-rot-x-to', asWeb)})`
103
81
  }]
104
82
  }];
105
- /*
106
- * @keyframes <name> {
107
- * from {
108
- * transform: perspective(1000px) translateY(<fromValue.travel>vh) rotateZ(<fromValue.rotateZ> + <rotation>) rotateY(<fromValue.rotateY>deg) rotateX(<fromValue.rotateX>deg);
109
- * }
110
- * to {
111
- * transform: perspective(1000px) translateY(<toValue.travel>vh) rotateZ(<fromValue.rotateZ> + <rotation>) rotateY(<toValue.rotateY>deg) rotateX(<toValue.rotateX>deg);
112
- * }
113
- * }
114
- */
115
83
  }
116
84
  //# sourceMappingURL=Spin3dScroll.js.map