@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 +1 @@
1
- {"version":3,"names":["getClipPolygonParams","getAdjustedDirection","DIRECTIONS","OPPOSITE_DIRECTION_MAP","top","bottom","left","right","initialClip","direction","getClipFrom","range","getClipTo","create","options","dom","namedEffect","easing","fill","clipFrom","clipTo","measure","target","rotation","getComputedStyle","getPropertyValue","mutate","adjDirection","parseInt","style","setProperty","keyframes","clipPath"],"sources":["../../../../src/library/scroll/RevealScroll.ts"],"sourcesContent":["import {\n EffectFourDirections,\n RevealScroll,\n ScrubAnimationOptions,\n DomApi,\n AnimationFillMode,\n} from '../../types';\nimport { getClipPolygonParams, getAdjustedDirection } from '../../utils';\n\nconst DIRECTIONS: EffectFourDirections[] = ['bottom', 'left', 'top', 'right'];\n\nconst OPPOSITE_DIRECTION_MAP: Record<\n EffectFourDirections,\n EffectFourDirections\n> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n};\n\nconst initialClip = getClipPolygonParams({ direction: 'initial' });\n\nfunction getClipFrom(\n direction: EffectFourDirections,\n range: RevealScroll['range'],\n) {\n return range === 'out'\n ? initialClip\n : getClipPolygonParams({\n direction: OPPOSITE_DIRECTION_MAP[direction],\n });\n}\nfunction getClipTo(\n direction: EffectFourDirections,\n range: RevealScroll['range'],\n) {\n return range === 'in'\n ? initialClip\n : getClipPolygonParams({\n direction:\n range === 'out' ? OPPOSITE_DIRECTION_MAP[direction] : direction,\n });\n}\n\nexport default function create(options: ScrubAnimationOptions, dom?: DomApi) {\n const { direction = 'bottom', range = 'in' } =\n options.namedEffect as RevealScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n let clipFrom = getClipFrom(direction, range);\n let clipTo = getClipTo(direction, range);\n\n if (dom) {\n dom.measure((target) => {\n if (!target) {\n return;\n }\n\n const rotation =\n getComputedStyle(target).getPropertyValue('--comp-rotate-z') || '0';\n\n dom.mutate(() => {\n const adjDirection = getAdjustedDirection(\n DIRECTIONS,\n direction,\n parseInt(rotation, 10),\n ) as (typeof DIRECTIONS)[number];\n\n clipFrom = getClipFrom(adjDirection, range);\n clipTo = getClipTo(adjDirection, range);\n\n target.style.setProperty('--motion-clip-from', clipFrom);\n target.style.setProperty('--motion-clip-to', clipTo);\n });\n });\n }\n\n const keyframes =\n range === 'continuous'\n ? [\n { clipPath: `var(--motion-clip-from, ${clipFrom})` },\n { clipPath: initialClip },\n { clipPath: `var(--motion-clip-to, ${clipTo})` },\n ]\n : ([\n { clipPath: `var(--motion-clip-from, ${clipFrom})` },\n { clipPath: `var(--motion-clip-to, ${clipTo})` },\n ] as {\n clipPath: string;\n }[]);\n\n return [\n {\n ...options,\n fill,\n easing,\n keyframes,\n },\n ];\n /*\n * @keyframes <name> {\n * from {\n * clip-path: <fromValue>;\n * }\n * to {\n * clip-path: <toValue>;\n * }\n * }\n *\n * OR for continuous:\n *\n * @keyframes <name> {\n * from {\n * clip-path: <fromValue>;\n * }\n * 50% {\n * clip-path: <initialClip>;\n * }\n * to {\n * clip-path: <toValue>;\n * }\n * }\n */\n}\n"],"mappings":"AAOA,SAASA,oBAAoB,EAAEC,oBAAoB,QAAQ,aAAa;AAExE,MAAMC,UAAkC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;AAE7E,MAAMC,sBAGL,GAAG;EACFC,GAAG,EAAE,QAAQ;EACbC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,WAAW,GAAGR,oBAAoB,CAAC;EAAES,SAAS,EAAE;AAAU,CAAC,CAAC;AAElE,SAASC,WAAWA,CAClBD,SAA+B,EAC/BE,KAA4B,EAC5B;EACA,OAAOA,KAAK,KAAK,KAAK,GAClBH,WAAW,GACXR,oBAAoB,CAAC;IACnBS,SAAS,EAAEN,sBAAsB,CAACM,SAAS;EAC7C,CAAC,CAAC;AACR;AACA,SAASG,SAASA,CAChBH,SAA+B,EAC/BE,KAA4B,EAC5B;EACA,OAAOA,KAAK,KAAK,IAAI,GACjBH,WAAW,GACXR,oBAAoB,CAAC;IACnBS,SAAS,EACPE,KAAK,KAAK,KAAK,GAAGR,sBAAsB,CAACM,SAAS,CAAC,GAAGA;EAC1D,CAAC,CAAC;AACR;AAEA,eAAe,SAASI,MAAMA,CAACC,OAA8B,EAAEC,GAAY,EAAE;EAC3E,MAAM;IAAEN,SAAS,GAAG,QAAQ;IAAEE,KAAK,GAAG;EAAK,CAAC,GAC1CG,OAAO,CAACE,WAA2B;EACrC,MAAMC,MAAM,GAAG,QAAQ;EACvB,MAAMC,IAAI,GACRP,KAAK,KAAK,KAAK,GAAG,UAAU,GAAGA,KAAK,KAAK,IAAI,GAAG,WAAW,GAAGG,OAAO,CAACI,IAClD;EAEtB,IAAIC,QAAQ,GAAGT,WAAW,CAACD,SAAS,EAAEE,KAAK,CAAC;EAC5C,IAAIS,MAAM,GAAGR,SAAS,CAACH,SAAS,EAAEE,KAAK,CAAC;EAExC,IAAII,GAAG,EAAE;IACPA,GAAG,CAACM,OAAO,CAAEC,MAAM,IAAK;MACtB,IAAI,CAACA,MAAM,EAAE;QACX;MACF;MAEA,MAAMC,QAAQ,GACZC,gBAAgB,CAACF,MAAM,CAAC,CAACG,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,GAAG;MAErEV,GAAG,CAACW,MAAM,CAAC,MAAM;QACf,MAAMC,YAAY,GAAG1B,oBAAoB,CACvCC,UAAU,EACVO,SAAS,EACTmB,QAAQ,CAACL,QAAQ,EAAE,EAAE,CACvB,CAAgC;QAEhCJ,QAAQ,GAAGT,WAAW,CAACiB,YAAY,EAAEhB,KAAK,CAAC;QAC3CS,MAAM,GAAGR,SAAS,CAACe,YAAY,EAAEhB,KAAK,CAAC;QAEvCW,MAAM,CAACO,KAAK,CAACC,WAAW,CAAC,oBAAoB,EAAEX,QAAQ,CAAC;QACxDG,MAAM,CAACO,KAAK,CAACC,WAAW,CAAC,kBAAkB,EAAEV,MAAM,CAAC;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMW,SAAS,GACbpB,KAAK,KAAK,YAAY,GAClB,CACE;IAAEqB,QAAQ,EAAE,2BAA2Bb,QAAQ;EAAI,CAAC,EACpD;IAAEa,QAAQ,EAAExB;EAAY,CAAC,EACzB;IAAEwB,QAAQ,EAAE,yBAAyBZ,MAAM;EAAI,CAAC,CACjD,GACA,CACC;IAAEY,QAAQ,EAAE,2BAA2Bb,QAAQ;EAAI,CAAC,EACpD;IAAEa,QAAQ,EAAE,yBAAyBZ,MAAM;EAAI,CAAC,CAG9C;EAEV,OAAO,CACL;IACE,GAAGN,OAAO;IACVI,IAAI;IACJD,MAAM;IACNc;EACF,CAAC,CACF;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["applyRotationAdjustedClip","getRevealClipFrom","getRevealClipTo","toKeyframeValue","INITIAL_CLIP","getNames","options","range","namedEffect","prepare","dom","direction","web","style","easing","fill","revealScroll","custom","keyframes","clipPath","splice","name"],"sources":["../../../../src/library/scroll/RevealScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n ScrubAnimationOptions,\n RevealScroll,\n DomApi,\n} from '../../types';\nimport {\n applyRotationAdjustedClip,\n getRevealClipFrom,\n getRevealClipTo,\n toKeyframeValue,\n INITIAL_CLIP,\n} from '../../utils';\n\nexport function getNames(options: ScrubAnimationOptions) {\n const { range = 'in' } = options.namedEffect as RevealScroll;\n return [`motion-revealScroll${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 RevealScroll;\n applyRotationAdjustedClip(dom, direction, range);\n }\n}\n\nexport function web(options: ScrubAnimationOptions, dom?: DomApi) {\n prepare(options, dom);\n\n return style(options);\n}\n\nexport function style(options: ScrubAnimationOptions) {\n const { direction = 'bottom', range = 'in' } =\n options.namedEffect as RevealScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const [revealScroll] = getNames(options);\n\n const custom = {\n '--motion-clip-from': getRevealClipFrom(direction, range),\n '--motion-clip-to': getRevealClipTo(direction, range),\n };\n\n const keyframes = [\n {\n clipPath: toKeyframeValue(\n {},\n '--motion-clip-from',\n false,\n custom['--motion-clip-from'],\n ),\n },\n {\n clipPath: toKeyframeValue(\n {},\n '--motion-clip-to',\n false,\n custom['--motion-clip-to'],\n ),\n },\n ];\n\n if (range === 'continuous') {\n keyframes.splice(1, 0, { clipPath: INITIAL_CLIP });\n }\n\n return [\n {\n ...options,\n name: revealScroll,\n fill,\n easing,\n custom,\n keyframes,\n },\n ];\n}\n"],"mappings":"AAMA,SACEA,yBAAyB,EACzBC,iBAAiB,EACjBC,eAAe,EACfC,eAAe,EACfC,YAAY,QACP,aAAa;AAEpB,OAAO,SAASC,QAAQA,CAACC,OAA8B,EAAE;EACvD,MAAM;IAAEC,KAAK,GAAG;EAAK,CAAC,GAAGD,OAAO,CAACE,WAA2B;EAC5D,OAAO,CAAC,sBAAsBD,KAAK,KAAK,YAAY,GAAG,aAAa,GAAG,EAAE,EAAE,CAAC;AAC9E;AAEA,OAAO,SAASE,OAAOA,CAACH,OAA8B,EAAEI,GAAY,EAAE;EACpE,IAAIA,GAAG,EAAE;IACP,MAAM;MAAEC,SAAS,GAAG,QAAQ;MAAEJ,KAAK,GAAG;IAAK,CAAC,GAC1CD,OAAO,CAACE,WAA2B;IACrCR,yBAAyB,CAACU,GAAG,EAAEC,SAAS,EAAEJ,KAAK,CAAC;EAClD;AACF;AAEA,OAAO,SAASK,GAAGA,CAACN,OAA8B,EAAEI,GAAY,EAAE;EAChED,OAAO,CAACH,OAAO,EAAEI,GAAG,CAAC;EAErB,OAAOG,KAAK,CAACP,OAAO,CAAC;AACvB;AAEA,OAAO,SAASO,KAAKA,CAACP,OAA8B,EAAE;EACpD,MAAM;IAAEK,SAAS,GAAG,QAAQ;IAAEJ,KAAK,GAAG;EAAK,CAAC,GAC1CD,OAAO,CAACE,WAA2B;EACrC,MAAMM,MAAM,GAAG,QAAQ;EACvB,MAAMC,IAAI,GACRR,KAAK,KAAK,KAAK,GAAG,UAAU,GAAGA,KAAK,KAAK,IAAI,GAAG,WAAW,GAAGD,OAAO,CAACS,IAClD;EAEtB,MAAM,CAACC,YAAY,CAAC,GAAGX,QAAQ,CAACC,OAAO,CAAC;EAExC,MAAMW,MAAM,GAAG;IACb,oBAAoB,EAAEhB,iBAAiB,CAACU,SAAS,EAAEJ,KAAK,CAAC;IACzD,kBAAkB,EAAEL,eAAe,CAACS,SAAS,EAAEJ,KAAK;EACtD,CAAC;EAED,MAAMW,SAAS,GAAG,CAChB;IACEC,QAAQ,EAAEhB,eAAe,CACvB,CAAC,CAAC,EACF,oBAAoB,EACpB,KAAK,EACLc,MAAM,CAAC,oBAAoB,CAC7B;EACF,CAAC,EACD;IACEE,QAAQ,EAAEhB,eAAe,CACvB,CAAC,CAAC,EACF,kBAAkB,EAClB,KAAK,EACLc,MAAM,CAAC,kBAAkB,CAC3B;EACF,CAAC,CACF;EAED,IAAIV,KAAK,KAAK,YAAY,EAAE;IAC1BW,SAAS,CAACE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;MAAED,QAAQ,EAAEf;IAAa,CAAC,CAAC;EACpD;EAEA,OAAO,CACL;IACE,GAAGE,OAAO;IACVe,IAAI,EAAEL,YAAY;IAClBD,IAAI;IACJD,MAAM;IACNG,MAAM;IACNC;EACF,CAAC,CACF;AACH","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { getEasing } from '../../utils';
1
+ import { toKeyframeValue, getEasing } from '../../utils';
2
2
  const SHAPES = {
3
3
  diamond: {
4
4
  start: {
@@ -55,56 +55,57 @@ const RESPONSIVE_SHAPES_MAP = {
55
55
  return [`ellipse(${clip}% ${clip}%)`, `ellipse(75% 75%)`];
56
56
  }
57
57
  };
58
- const easing = getEasing('circInOut');
59
- const KEYFRAMES_RANGE_MAP = {
60
- in: (start, end) => [{
61
- clipPath: start,
62
- easing
63
- }, {
64
- clipPath: end
65
- }],
66
- out: (start, end) => [{
67
- clipPath: end,
68
- easing
69
- }, {
70
- clipPath: start
71
- }],
72
- continuous: (start, end) => [{
73
- clipPath: start,
74
- easing
75
- }, {
76
- clipPath: end,
77
- easing
78
- }, {
79
- clipPath: start
80
- }]
81
- };
82
- export default function create(options) {
58
+ export function getNames(options) {
59
+ const {
60
+ range = 'in'
61
+ } = options.namedEffect;
62
+ return [`motion-shapeScroll${range === 'continuous' ? '-continuous' : ''}`];
63
+ }
64
+ export function web(options, _dom) {
65
+ return style(options, true);
66
+ }
67
+ export function style(options, asWeb) {
68
+ if (asWeb === void 0) {
69
+ asWeb = false;
70
+ }
83
71
  const {
84
- shape = 'circle',
85
72
  power,
86
73
  intensity = 0.5,
87
74
  range = 'in'
88
75
  } = options.namedEffect;
76
+ let {
77
+ shape = 'circle'
78
+ } = options.namedEffect;
79
+ if (!(shape in SHAPES)) {
80
+ shape = 'circle';
81
+ }
89
82
  const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
90
83
  const [start, end] = power && SHAPES[shape].start[power] ? [SHAPES[shape].start[power], SHAPES[shape].end] : RESPONSIVE_SHAPES_MAP[shape](intensity * 100);
91
- const keyframes = KEYFRAMES_RANGE_MAP[range](start, end);
84
+ const [shapeScroll] = getNames(options);
85
+ const custom = {
86
+ '--motion-clip-from': range === 'out' ? end : start,
87
+ '--motion-clip-to': range === 'out' ? start : end
88
+ };
89
+ const easing = getEasing('circInOut');
90
+ const keyframes = [{
91
+ clipPath: toKeyframeValue(custom, `--motion-clip-from`, asWeb),
92
+ easing
93
+ }, {
94
+ clipPath: toKeyframeValue(custom, `--motion-clip-to`, asWeb)
95
+ }];
96
+ if (range === 'continuous') {
97
+ keyframes[1].easing = easing;
98
+ keyframes.push({
99
+ clipPath: toKeyframeValue(custom, `--motion-clip-from`, asWeb)
100
+ });
101
+ }
92
102
  return [{
93
103
  ...options,
104
+ name: shapeScroll,
94
105
  fill,
95
106
  easing: 'linear',
107
+ custom,
96
108
  keyframes
97
109
  }];
98
- /*
99
- * @keyframes <name> {
100
- * from {
101
- * clip-path: <fromValue>;
102
- * easing: <easing>;
103
- * }
104
- * to {
105
- * clip-path: <toValue>;
106
- * }
107
- * }
108
- */
109
110
  }
110
111
  //# sourceMappingURL=ShapeScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getEasing","SHAPES","diamond","start","soft","medium","hard","end","window","rectangle","circle","ellipse","RESPONSIVE_SHAPES_MAP","clipFactor","clip","clipNeg","easing","KEYFRAMES_RANGE_MAP","in","clipPath","out","continuous","create","options","shape","power","intensity","range","namedEffect","fill","keyframes"],"sources":["../../../../src/library/scroll/ShapeScroll.ts"],"sourcesContent":["import {\n EffectPower,\n AnimationData,\n EffectScrollRange,\n ScrubAnimationOptions,\n ShapeScroll,\n AnimationFillMode,\n} from '../../types';\nimport { getEasing } from '../../utils';\n\nconst SHAPES: Record<\n ShapeScroll['shape'],\n { start: Record<EffectPower, string>; end: string }\n> = {\n diamond: {\n start: {\n soft: 'polygon(50% 20%, 80% 50%, 50% 80%, 20% 50%)',\n medium: 'polygon(50% 40%, 60% 50%, 50% 60%, 40% 50%)',\n hard: 'polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%)',\n },\n end: 'polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)',\n },\n window: {\n start: {\n soft: 'inset(20% round 50% 50% 0% 0%)',\n medium: 'inset(35% round 50% 50% 0% 0%)',\n hard: 'inset(50% round 50% 50% 0% 0%)',\n },\n end: 'inset(-20% round 50% 50% 0% 0%)',\n },\n rectangle: {\n start: {\n soft: 'inset(20%)',\n medium: 'inset(50%)',\n hard: 'inset(80%)',\n },\n end: 'inset(0%)',\n },\n circle: {\n start: {\n soft: 'circle(40%)',\n medium: 'circle(25%)',\n hard: 'circle(0%)',\n },\n end: 'circle(75%)',\n },\n ellipse: {\n start: {\n soft: 'ellipse(50% 50%)',\n medium: 'ellipse(30% 30%)',\n hard: 'ellipse(0% 0%)',\n },\n end: 'ellipse(75% 75%)',\n },\n};\n\nconst RESPONSIVE_SHAPES_MAP = {\n diamond: (clipFactor: number) => {\n const clip = clipFactor / 2;\n const clipNeg = 100 - clip;\n return [\n `polygon(50% ${clip}%, ${clipNeg}% 50%, 50% ${clipNeg}%, ${clip}% 50%)`,\n 'polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)',\n ];\n },\n window: (clipFactor: number) => [\n `inset(${clipFactor / 2}% round 50% 50% 0% 0%)`,\n 'inset(-20% round 50% 50% 0% 0%)',\n ],\n rectangle: (clipFactor: number) => [`inset(${clipFactor}%)`, `inset(0%)`],\n circle: (clipFactor: number) => [\n `circle(${100 - clipFactor}%)`,\n `circle(75%)`,\n ],\n ellipse: (clipFactor: number) => {\n const clip = 50 - clipFactor / 2;\n return [`ellipse(${clip}% ${clip}%)`, `ellipse(75% 75%)`];\n },\n};\n\nconst easing = getEasing('circInOut');\n\nconst KEYFRAMES_RANGE_MAP: Record<\n EffectScrollRange,\n (start: string, end: string) => AnimationData['keyframes']\n> = {\n in: (start: string, end: string) => [\n {\n clipPath: start,\n easing,\n },\n {\n clipPath: end,\n },\n ],\n out: (start: string, end: string) => [\n {\n clipPath: end,\n easing,\n },\n {\n clipPath: start,\n },\n ],\n continuous: (start: string, end: string) => [\n {\n clipPath: start,\n easing,\n },\n {\n clipPath: end,\n easing,\n },\n {\n clipPath: start,\n },\n ],\n};\n\nexport default function create(options: ScrubAnimationOptions) {\n const {\n shape = 'circle',\n power,\n intensity = 0.5,\n range = 'in',\n } = options.namedEffect as ShapeScroll;\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const [start, end] =\n power && SHAPES[shape].start[power]\n ? [SHAPES[shape].start[power], SHAPES[shape].end]\n : RESPONSIVE_SHAPES_MAP[shape](intensity * 100);\n\n const keyframes = KEYFRAMES_RANGE_MAP[range](start, end);\n\n return [\n {\n ...options,\n fill,\n easing: 'linear',\n keyframes,\n },\n ];\n /*\n * @keyframes <name> {\n * from {\n * clip-path: <fromValue>;\n * easing: <easing>;\n * }\n * to {\n * clip-path: <toValue>;\n * }\n * }\n */\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["toKeyframeValue","getEasing","SHAPES","diamond","start","soft","medium","hard","end","window","rectangle","circle","ellipse","RESPONSIVE_SHAPES_MAP","clipFactor","clip","clipNeg","getNames","options","range","namedEffect","web","_dom","style","asWeb","power","intensity","shape","fill","shapeScroll","custom","easing","keyframes","clipPath","push","name"],"sources":["../../../../src/library/scroll/ShapeScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n EffectPower,\n ScrubAnimationOptions,\n ShapeScroll,\n DomApi,\n} from '../../types';\nimport { toKeyframeValue, getEasing } from '../../utils';\n\nconst SHAPES: Record<\n ShapeScroll['shape'],\n { start: Record<EffectPower, string>; end: string }\n> = {\n diamond: {\n start: {\n soft: 'polygon(50% 20%, 80% 50%, 50% 80%, 20% 50%)',\n medium: 'polygon(50% 40%, 60% 50%, 50% 60%, 40% 50%)',\n hard: 'polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%)',\n },\n end: 'polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)',\n },\n window: {\n start: {\n soft: 'inset(20% round 50% 50% 0% 0%)',\n medium: 'inset(35% round 50% 50% 0% 0%)',\n hard: 'inset(50% round 50% 50% 0% 0%)',\n },\n end: 'inset(-20% round 50% 50% 0% 0%)',\n },\n rectangle: {\n start: {\n soft: 'inset(20%)',\n medium: 'inset(50%)',\n hard: 'inset(80%)',\n },\n end: 'inset(0%)',\n },\n circle: {\n start: {\n soft: 'circle(40%)',\n medium: 'circle(25%)',\n hard: 'circle(0%)',\n },\n end: 'circle(75%)',\n },\n ellipse: {\n start: {\n soft: 'ellipse(50% 50%)',\n medium: 'ellipse(30% 30%)',\n hard: 'ellipse(0% 0%)',\n },\n end: 'ellipse(75% 75%)',\n },\n};\n\nconst RESPONSIVE_SHAPES_MAP = {\n diamond: (clipFactor: number) => {\n const clip = clipFactor / 2;\n const clipNeg = 100 - clip;\n return [\n `polygon(50% ${clip}%, ${clipNeg}% 50%, 50% ${clipNeg}%, ${clip}% 50%)`,\n 'polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)',\n ];\n },\n window: (clipFactor: number) => [\n `inset(${clipFactor / 2}% round 50% 50% 0% 0%)`,\n 'inset(-20% round 50% 50% 0% 0%)',\n ],\n rectangle: (clipFactor: number) => [`inset(${clipFactor}%)`, `inset(0%)`],\n circle: (clipFactor: number) => [\n `circle(${100 - clipFactor}%)`,\n `circle(75%)`,\n ],\n ellipse: (clipFactor: number) => {\n const clip = 50 - clipFactor / 2;\n return [`ellipse(${clip}% ${clip}%)`, `ellipse(75% 75%)`];\n },\n};\n\nexport function getNames(options: ScrubAnimationOptions) {\n const { range = 'in' } = options.namedEffect as ShapeScroll;\n return [`motion-shapeScroll${range === 'continuous' ? '-continuous' : ''}`];\n}\n\nexport function web(options: ScrubAnimationOptions, _dom?: DomApi) {\n return style(options, true);\n}\n\nexport function style(options: ScrubAnimationOptions, asWeb = false) {\n const {\n power,\n intensity = 0.5,\n range = 'in',\n } = options.namedEffect as ShapeScroll;\n let { shape = 'circle' } = options.namedEffect as ShapeScroll;\n if (!(shape in SHAPES)) {\n shape = 'circle';\n }\n\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const [start, end] =\n power && SHAPES[shape].start[power]\n ? [SHAPES[shape].start[power], SHAPES[shape].end]\n : RESPONSIVE_SHAPES_MAP[shape](intensity * 100);\n\n const [shapeScroll] = getNames(options);\n\n const custom = {\n '--motion-clip-from': range === 'out' ? end : start,\n '--motion-clip-to': range === 'out' ? start : end,\n };\n\n const easing = getEasing('circInOut');\n\n const keyframes = [\n {\n clipPath: toKeyframeValue(custom, `--motion-clip-from`, asWeb),\n easing,\n },\n { clipPath: toKeyframeValue(custom, `--motion-clip-to`, asWeb) },\n ];\n\n if (range === 'continuous') {\n keyframes[1].easing = easing;\n keyframes.push({\n clipPath: toKeyframeValue(custom, `--motion-clip-from`, asWeb),\n });\n }\n\n return [\n {\n ...options,\n name: shapeScroll,\n fill,\n easing: 'linear',\n custom,\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: {
@@ -27,51 +28,16 @@ const directionMap = {
27
28
  'top-left': [-50, -50],
28
29
  center: [0, 0]
29
30
  };
30
- const RANGES_MAP = {
31
- in: (scaleFrom, _scaleTo, travelY) => ({
32
- fromValues: {
33
- scale: scaleFrom,
34
- travel: travelY
35
- },
36
- toValues: {
37
- scale: 1,
38
- travel: 0
39
- }
40
- }),
41
- out: (_scaleFrom, scaleTo, travelY) => ({
42
- fromValues: {
43
- scale: 1,
44
- travel: 0
45
- },
46
- toValues: {
47
- scale: scaleTo,
48
- travel: -travelY
49
- }
50
- }),
51
- continuous: (scaleFrom, scaleTo, travelY) => ({
52
- fromValues: {
53
- scale: scaleFrom,
54
- travel: travelY
55
- },
56
- toValues: {
57
- scale: scaleTo,
58
- travel: -travelY
59
- }
60
- })
61
- };
62
- function getScrubOffsets(_ref) {
63
- let {
64
- power,
65
- range = 'in',
66
- speed = 0
67
- } = _ref;
68
- const offset = power && POWER_MAP[power] ? POWER_MAP[power].travelY : Math.abs(speed) * MAX_Y_TRAVEL;
69
- return {
70
- start: range === 'out' ? '0px' : `${-offset}vh`,
71
- end: range === 'in' ? '0px' : `${offset}vh`
72
- };
31
+ export function getNames(_) {
32
+ return ['motion-shrinkScroll'];
33
+ }
34
+ export function web(options, _dom) {
35
+ return style(options, true);
73
36
  }
74
- export default function create(options) {
37
+ export function style(options, asWeb) {
38
+ if (asWeb === void 0) {
39
+ asWeb = false;
40
+ }
75
41
  const {
76
42
  power,
77
43
  range = 'in',
@@ -79,6 +45,7 @@ export default function create(options) {
79
45
  direction = 'center',
80
46
  speed = 0
81
47
  } = options.namedEffect;
48
+ const easing = 'linear';
82
49
  const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
83
50
  const {
84
51
  scaleFrom,
@@ -89,66 +56,41 @@ export default function create(options) {
89
56
  scaleTo: scale,
90
57
  travelY: speed
91
58
  };
92
- const {
93
- fromValues,
94
- toValues
95
- } = RANGES_MAP[range](scaleFrom, scaleTo, travelY * -MAX_Y_TRAVEL);
96
- const easing = 'linear';
97
- const {
98
- start: startOffsetAdd,
99
- end: endOffsetAdd
100
- } = getScrubOffsets(options.namedEffect);
101
- const [trnsX, trnsY] = directionMap[direction];
59
+ const travel = travelY * MAX_Y_TRAVEL;
60
+ const fromValues = {
61
+ scale: range === 'out' ? 1 : scaleFrom,
62
+ travel: range === 'out' ? 0 : -travel
63
+ };
64
+ const toValues = {
65
+ scale: range === 'in' ? 1 : scaleTo,
66
+ travel: range === 'in' ? 0 : travel
67
+ };
68
+ const offset = Math.abs(power && POWER_MAP[power] ? POWER_MAP[power].travelY : travel);
69
+ const startOffsetAdd = range === 'out' ? '0px' : `${-offset}vh`;
70
+ const endOffsetAdd = range === 'in' ? '0px' : `${offset}vh`;
71
+ const [trnsX, trnsY] = directionMap[direction] || [0, 0];
72
+ const [shrinkScroll] = getNames(options);
73
+ const custom = {
74
+ '--motion-travel-from': `${fromValues.travel}vh`,
75
+ '--motion-travel-to': `${toValues.travel}vh`,
76
+ '--motion-shrink-from': fromValues.scale,
77
+ '--motion-shrink-to': toValues.scale,
78
+ '--motion-trans-x': `${trnsX}%`,
79
+ '--motion-trans-y': `${trnsY}%`
80
+ };
102
81
  return [{
103
82
  ...options,
83
+ name: shrinkScroll,
104
84
  fill,
105
85
  easing,
86
+ custom,
106
87
  startOffsetAdd,
107
88
  endOffsetAdd,
108
89
  keyframes: [{
109
- transform: `translateY(${fromValues.travel}vh) translate(${trnsX}%, ${trnsY}%) scale(${fromValues.scale}) translate(${-trnsX}%, ${-trnsY}%) rotate(var(--comp-rotate-z, 0))`
90
+ transform: `translateY(${toKeyframeValue(custom, '--motion-travel-from', asWeb)}) translate(${toKeyframeValue(custom, '--motion-trans-x', asWeb)}, ${toKeyframeValue(custom, '--motion-trans-y', asWeb)}) scale(${toKeyframeValue(custom, '--motion-shrink-from', asWeb)}) translate(calc(-1 * ${toKeyframeValue(custom, '--motion-trans-x', asWeb)}), calc(-1 * ${toKeyframeValue(custom, '--motion-trans-y', asWeb)})) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`
110
91
  }, {
111
- transform: `translateY(${toValues.travel}vh) translate(${trnsX}%, ${trnsY}%) scale(${toValues.scale}) translate(${-trnsX}%, ${-trnsY}%) rotate(var(--comp-rotate-z, 0))`
92
+ transform: `translateY(${toKeyframeValue(custom, '--motion-travel-to', asWeb)}) translate(${toKeyframeValue(custom, '--motion-trans-x', asWeb)}, ${toKeyframeValue(custom, '--motion-trans-y', asWeb)}) scale(${toKeyframeValue(custom, '--motion-shrink-to', asWeb)}) translate(calc(-1 * ${toKeyframeValue(custom, '--motion-trans-x', asWeb)}), calc(-1 * ${toKeyframeValue(custom, '--motion-trans-y', asWeb)})) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`
112
93
  }]
113
94
  }];
114
- /* // we may want to squash both animations into a single one and simply generate dynamically all the necessary keyframes to reach same result
115
- * @keyframes <name> {
116
- * from {
117
- * translate: 0 <fromValues.travel>;
118
- * }
119
- * to {
120
- * translate: 0 <toValues.travel>;
121
- * }
122
- * }
123
- *
124
- * @keyframes <name>-scale {
125
- * from {
126
- * scale: <fromValues.scale>;
127
- * animation-timing-function: <scaleEase>;
128
- * }
129
- * <scaleDuration>% {
130
- * scale: <toValues.scale>;
131
- * }
132
- * to {
133
- * scale: <toValues.scale>;
134
- * }
135
- * }
136
- *
137
- * @supports (animation-timeline: view()) {
138
- * #target {
139
- * animation: <name> auto <easing> both,
140
- * <name>-scale auto linear both;
141
- * animation-range: cover <start> cover <end>,
142
- * cover <start> cover <end>;
143
- * animation-timeline: view(), view();
144
- * }
145
- * }
146
- * @supports not (animation-timeline: view()) {
147
- * #target {
148
- * animation: <name> 100ms linear <fill> paused,
149
- * <name>-scale 100ms linear <fill> paused;
150
- * }
151
- * }
152
- */
153
95
  }
154
96
  //# sourceMappingURL=ShrinkScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MAX_Y_TRAVEL","POWER_MAP","soft","scaleFrom","scaleTo","travelY","medium","hard","directionMap","top","right","bottom","left","center","RANGES_MAP","in","_scaleTo","fromValues","scale","travel","toValues","out","_scaleFrom","continuous","getScrubOffsets","_ref","power","range","speed","offset","Math","abs","start","end","create","options","direction","namedEffect","fill","easing","startOffsetAdd","endOffsetAdd","trnsX","trnsY","keyframes","transform"],"sources":["../../../../src/library/scroll/ShrinkScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n ScrubAnimationOptions,\n ShrinkScroll,\n} from '../../types';\n\nconst MAX_Y_TRAVEL = 40;\nconst POWER_MAP = {\n soft: { scaleFrom: 1.2, scaleTo: 0.8, travelY: 0 },\n medium: { scaleFrom: 1.7, scaleTo: 0.3, travelY: 0.5 },\n hard: { scaleFrom: 3.5, scaleTo: 0, travelY: 1 },\n};\n\nconst directionMap = {\n top: [0, -50],\n 'top-right': [50, -50],\n right: [50, 0],\n 'bottom-right': [50, 50],\n bottom: [0, 50],\n 'bottom-left': [-50, 50],\n left: [-50, 0],\n 'top-left': [-50, -50],\n center: [0, 0],\n};\n\nconst RANGES_MAP = {\n in: (scaleFrom: number, _scaleTo: number, travelY: number) => ({\n fromValues: { scale: scaleFrom, travel: travelY },\n toValues: { scale: 1, travel: 0 },\n }),\n out: (_scaleFrom: number, scaleTo: number, travelY: number) => ({\n fromValues: { scale: 1, travel: 0 },\n toValues: { scale: scaleTo, travel: -travelY },\n }),\n continuous: (scaleFrom: number, scaleTo: number, travelY: number) => ({\n fromValues: { scale: scaleFrom, travel: travelY },\n toValues: { scale: scaleTo, travel: -travelY },\n }),\n};\n\nfunction getScrubOffsets({ power, range = 'in', speed = 0 }: ShrinkScroll) {\n const offset =\n power && POWER_MAP[power]\n ? POWER_MAP[power].travelY\n : Math.abs(speed) * MAX_Y_TRAVEL;\n\n return {\n start: range === 'out' ? '0px' : `${-offset}vh`,\n end: range === 'in' ? '0px' : `${offset}vh`,\n };\n}\n\nexport default function create(options: ScrubAnimationOptions) {\n const {\n power,\n range = 'in',\n scale = range === 'in' ? 1.2 : 0.8,\n direction = 'center',\n speed = 0,\n } = options.namedEffect as ShrinkScroll;\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const { scaleFrom, scaleTo, travelY } =\n power && POWER_MAP[power]\n ? POWER_MAP[power]\n : {\n scaleFrom: scale,\n scaleTo: scale,\n travelY: speed,\n };\n\n const { fromValues, toValues } = RANGES_MAP[range](\n scaleFrom,\n scaleTo,\n travelY * -MAX_Y_TRAVEL,\n );\n\n const easing = 'linear';\n\n const { start: startOffsetAdd, end: endOffsetAdd } = getScrubOffsets(\n options.namedEffect as ShrinkScroll,\n );\n\n const [trnsX, trnsY] = directionMap[direction];\n\n return [\n {\n ...options,\n fill,\n easing,\n startOffsetAdd,\n endOffsetAdd,\n keyframes: [\n {\n transform: `translateY(${\n fromValues.travel\n }vh) translate(${trnsX}%, ${trnsY}%) scale(${\n fromValues.scale\n }) translate(${-trnsX}%, ${-trnsY}%) rotate(var(--comp-rotate-z, 0))`,\n },\n {\n transform: `translateY(${\n toValues.travel\n }vh) translate(${trnsX}%, ${trnsY}%) scale(${\n toValues.scale\n }) translate(${-trnsX}%, ${-trnsY}%) rotate(var(--comp-rotate-z, 0))`,\n },\n ],\n },\n ];\n /* // we may want to squash both animations into a single one and simply generate dynamically all the necessary keyframes to reach same result\n * @keyframes <name> {\n * from {\n * translate: 0 <fromValues.travel>;\n * }\n * to {\n * translate: 0 <toValues.travel>;\n * }\n * }\n *\n * @keyframes <name>-scale {\n * from {\n * scale: <fromValues.scale>;\n * animation-timing-function: <scaleEase>;\n * }\n * <scaleDuration>% {\n * scale: <toValues.scale>;\n * }\n * to {\n * scale: <toValues.scale>;\n * }\n * }\n *\n * @supports (animation-timeline: view()) {\n * #target {\n * animation: <name> auto <easing> both,\n * <name>-scale auto linear both;\n * animation-range: cover <start> cover <end>,\n * cover <start> cover <end>;\n * animation-timeline: view(), view();\n * }\n * }\n * @supports not (animation-timeline: view()) {\n * #target {\n * animation: <name> 100ms linear <fill> paused,\n * <name>-scale 100ms linear <fill> paused;\n * }\n * }\n */\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["toKeyframeValue","MAX_Y_TRAVEL","POWER_MAP","soft","scaleFrom","scaleTo","travelY","medium","hard","directionMap","top","right","bottom","left","center","getNames","_","web","options","_dom","style","asWeb","power","range","scale","direction","speed","namedEffect","easing","fill","travel","fromValues","toValues","offset","Math","abs","startOffsetAdd","endOffsetAdd","trnsX","trnsY","shrinkScroll","custom","name","keyframes","transform"],"sources":["../../../../src/library/scroll/ShrinkScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n ScrubAnimationOptions,\n ShrinkScroll,\n DomApi,\n} from '../../types';\nimport { toKeyframeValue } from '../../utils';\n\nconst MAX_Y_TRAVEL = 40;\nconst POWER_MAP = {\n soft: { scaleFrom: 1.2, scaleTo: 0.8, travelY: 0 },\n medium: { scaleFrom: 1.7, scaleTo: 0.3, travelY: 0.5 },\n hard: { scaleFrom: 3.5, scaleTo: 0, travelY: 1 },\n};\n\nconst directionMap = {\n top: [0, -50],\n 'top-right': [50, -50],\n right: [50, 0],\n 'bottom-right': [50, 50],\n bottom: [0, 50],\n 'bottom-left': [-50, 50],\n left: [-50, 0],\n 'top-left': [-50, -50],\n center: [0, 0],\n};\n\nexport function getNames(_: ScrubAnimationOptions) {\n return ['motion-shrinkScroll'];\n}\n\nexport function web(options: ScrubAnimationOptions, _dom?: DomApi) {\n return style(options, true);\n}\n\nexport function style(options: ScrubAnimationOptions, asWeb = false) {\n const {\n power,\n range = 'in',\n scale = range === 'in' ? 1.2 : 0.8,\n direction = 'center',\n speed = 0,\n } = options.namedEffect as ShrinkScroll;\n const easing = 'linear';\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const { scaleFrom, scaleTo, travelY } =\n power && POWER_MAP[power]\n ? POWER_MAP[power]\n : {\n scaleFrom: scale,\n scaleTo: scale,\n travelY: speed,\n };\n const travel = travelY * MAX_Y_TRAVEL;\n\n const fromValues = {\n scale: range === 'out' ? 1 : scaleFrom,\n travel: range === 'out' ? 0 : -travel,\n };\n const toValues = {\n scale: range === 'in' ? 1 : scaleTo,\n travel: range === 'in' ? 0 : travel,\n };\n\n const offset = Math.abs(\n power && POWER_MAP[power] ? POWER_MAP[power].travelY : travel,\n );\n const startOffsetAdd = range === 'out' ? '0px' : `${-offset}vh`;\n const endOffsetAdd = range === 'in' ? '0px' : `${offset}vh`;\n\n const [trnsX, trnsY] = directionMap[direction] || [0, 0];\n\n const [shrinkScroll] = getNames(options);\n\n const custom = {\n '--motion-travel-from': `${fromValues.travel}vh`,\n '--motion-travel-to': `${toValues.travel}vh`,\n '--motion-shrink-from': fromValues.scale,\n '--motion-shrink-to': toValues.scale,\n '--motion-trans-x': `${trnsX}%`,\n '--motion-trans-y': `${trnsY}%`,\n };\n\n return [\n {\n ...options,\n name: shrinkScroll,\n fill,\n easing,\n custom,\n startOffsetAdd,\n endOffsetAdd,\n keyframes: [\n {\n transform: `translateY(${toKeyframeValue(\n custom,\n '--motion-travel-from',\n asWeb,\n )}) translate(${toKeyframeValue(\n custom,\n '--motion-trans-x',\n asWeb,\n )}, ${toKeyframeValue(\n custom,\n '--motion-trans-y',\n asWeb,\n )}) scale(${toKeyframeValue(\n custom,\n '--motion-shrink-from',\n asWeb,\n )}) translate(calc(-1 * ${toKeyframeValue(\n custom,\n '--motion-trans-x',\n asWeb,\n )}), calc(-1 * ${toKeyframeValue(\n custom,\n '--motion-trans-y',\n asWeb,\n )})) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`,\n },\n {\n transform: `translateY(${toKeyframeValue(\n custom,\n '--motion-travel-to',\n asWeb,\n )}) translate(${toKeyframeValue(\n custom,\n '--motion-trans-x',\n asWeb,\n )}, ${toKeyframeValue(\n custom,\n '--motion-trans-y',\n asWeb,\n )}) scale(${toKeyframeValue(\n custom,\n '--motion-shrink-to',\n asWeb,\n )}) translate(calc(-1 * ${toKeyframeValue(\n custom,\n '--motion-trans-x',\n asWeb,\n )}), calc(-1 * ${toKeyframeValue(\n custom,\n '--motion-trans-y',\n asWeb,\n )})) rotate(${toKeyframeValue({}, '--comp-rotate-z', false, '0')})`,\n },\n ],\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,17 @@
1
- import { getShuttersClipPaths, getEasing } from '../../utils';
2
- const OPPOSITE_DIRECTION_MAP = {
3
- top: 'bottom',
4
- right: 'left',
5
- bottom: 'top',
6
- left: 'right'
7
- };
8
- export default function create(options) {
1
+ import { getOppositeDirection, getShuttersClipPaths, getEasing, toKeyframeValue, FOUR_DIRECTIONS } from '../../utils';
2
+ export function getNames(options) {
3
+ const {
4
+ range = 'in'
5
+ } = options.namedEffect;
6
+ return [`motion-shuttersScroll-${range === 'continuous' ? '-continuous' : ''}`];
7
+ }
8
+ export function web(options, _dom) {
9
+ return style(options, true);
10
+ }
11
+ export function style(options, asWeb) {
12
+ if (asWeb === void 0) {
13
+ asWeb = false;
14
+ }
9
15
  const {
10
16
  direction = 'right',
11
17
  shutters = 12,
@@ -14,49 +20,52 @@ export default function create(options) {
14
20
  } = options.namedEffect;
15
21
  const fill = range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill;
16
22
  const easing = range === 'in' ? getEasing('sineIn') : getEasing('sineOut');
17
- const directionOpp = OPPOSITE_DIRECTION_MAP[direction];
23
+ const directionOpp = getOppositeDirection(FOUR_DIRECTIONS, direction);
18
24
  const {
19
25
  clipStart,
20
26
  clipEnd
21
27
  } = getShuttersClipPaths(range === 'out' ? directionOpp : direction, shutters, staggered);
22
- const start = range !== 'out' ? clipStart : clipEnd;
23
- const end = range !== 'out' ? clipEnd : clipStart;
24
- let keyframes;
28
+ const custom = {
29
+ '--motion-shutters-clip-start': range === 'out' ? clipEnd : clipStart,
30
+ '--motion-shutters-clip-end': range === 'out' ? clipStart : clipEnd
31
+ };
32
+ const [shuttersScroll] = getNames(options);
33
+ const keyframes = [{
34
+ clipPath: toKeyframeValue(custom, '--motion-shutters-clip-start', asWeb),
35
+ easing
36
+ }, {
37
+ clipPath: toKeyframeValue(custom, '--motion-shutters-clip-end', asWeb)
38
+ }];
25
39
  if (range === 'continuous') {
40
+ keyframes[1].easing = easing;
41
+ keyframes[1].offset = staggered ? 0.45 : 0.4;
26
42
  const {
27
43
  clipStart: oppClipStart,
28
44
  clipEnd: oppClipEnd
29
45
  } = getShuttersClipPaths(directionOpp, shutters, staggered, true);
30
- keyframes = [{
31
- clipPath: start,
32
- easing
33
- }, {
34
- clipPath: end,
35
- offset: staggered ? 0.45 : 0.4,
36
- easing
37
- }, {
38
- clipPath: end,
39
- offset: staggered ? 0.55 : 0.6,
40
- easing
41
- }, {
42
- clipPath: oppClipEnd,
43
- offset: staggered ? 0.55 : 0.6,
46
+ Object.assign(custom, {
47
+ '--motion-shutters-clip-opp-end': oppClipEnd,
48
+ '--motion-shutters-clip-opp-start': oppClipStart
49
+ });
50
+ const secondOffset = staggered ? 0.55 : 0.6;
51
+ keyframes.push({
52
+ clipPath: toKeyframeValue(custom, '--motion-shutters-clip-end', asWeb),
53
+ offset: secondOffset,
44
54
  easing
45
55
  }, {
46
- clipPath: oppClipStart
47
- }];
48
- } else {
49
- keyframes = [{
50
- clipPath: start,
56
+ clipPath: toKeyframeValue(custom, '--motion-shutters-clip-opp-end', asWeb),
57
+ offset: secondOffset,
51
58
  easing
52
59
  }, {
53
- clipPath: end
54
- }];
60
+ clipPath: toKeyframeValue(custom, '--motion-shutters-clip-opp-start', asWeb)
61
+ });
55
62
  }
56
63
  return [{
57
64
  ...options,
65
+ name: shuttersScroll,
58
66
  fill,
59
67
  easing: 'linear',
68
+ custom,
60
69
  keyframes
61
70
  }];
62
71
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getShuttersClipPaths","getEasing","OPPOSITE_DIRECTION_MAP","top","right","bottom","left","create","options","direction","shutters","staggered","range","namedEffect","fill","easing","directionOpp","clipStart","clipEnd","start","end","keyframes","oppClipStart","oppClipEnd","clipPath","offset"],"sources":["../../../../src/library/scroll/ShuttersScroll.ts"],"sourcesContent":["import {\n EffectFourDirections,\n ShuttersScroll,\n ScrubAnimationOptions,\n AnimationFillMode,\n} from '../../types';\nimport { getShuttersClipPaths, getEasing } from '../../utils';\n\nconst OPPOSITE_DIRECTION_MAP: Record<\n EffectFourDirections,\n EffectFourDirections\n> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n};\n\nexport default function create(options: ScrubAnimationOptions) {\n const {\n direction = 'right',\n shutters = 12,\n staggered = true,\n range = 'in',\n } = options.namedEffect as ShuttersScroll;\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const easing = range === 'in' ? getEasing('sineIn') : getEasing('sineOut');\n const directionOpp = OPPOSITE_DIRECTION_MAP[direction];\n const { clipStart, clipEnd } = getShuttersClipPaths(\n range === 'out' ? directionOpp : direction,\n shutters,\n staggered,\n );\n const start = range !== 'out' ? clipStart : clipEnd;\n const end = range !== 'out' ? clipEnd : clipStart;\n let keyframes;\n\n if (range === 'continuous') {\n const { clipStart: oppClipStart, clipEnd: oppClipEnd } =\n getShuttersClipPaths(directionOpp, shutters, staggered, true);\n\n keyframes = [\n {\n clipPath: start,\n easing,\n },\n {\n clipPath: end,\n offset: staggered ? 0.45 : 0.4,\n easing,\n },\n {\n clipPath: end,\n offset: staggered ? 0.55 : 0.6,\n easing,\n },\n {\n clipPath: oppClipEnd,\n offset: staggered ? 0.55 : 0.6,\n easing,\n },\n {\n clipPath: oppClipStart,\n },\n ];\n } else {\n keyframes = [\n {\n clipPath: start,\n easing,\n },\n {\n clipPath: end,\n },\n ];\n }\n\n return [\n {\n ...options,\n fill,\n easing: 'linear',\n keyframes,\n },\n ];\n}\n"],"mappings":"AAMA,SAASA,oBAAoB,EAAEC,SAAS,QAAQ,aAAa;AAE7D,MAAMC,sBAGL,GAAG;EACFC,GAAG,EAAE,QAAQ;EACbC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE;AACR,CAAC;AAED,eAAe,SAASC,MAAMA,CAACC,OAA8B,EAAE;EAC7D,MAAM;IACJC,SAAS,GAAG,OAAO;IACnBC,QAAQ,GAAG,EAAE;IACbC,SAAS,GAAG,IAAI;IAChBC,KAAK,GAAG;EACV,CAAC,GAAGJ,OAAO,CAACK,WAA6B;EACzC,MAAMC,IAAI,GACRF,KAAK,KAAK,KAAK,GAAG,UAAU,GAAGA,KAAK,KAAK,IAAI,GAAG,WAAW,GAAGJ,OAAO,CAACM,IAClD;EAEtB,MAAMC,MAAM,GAAGH,KAAK,KAAK,IAAI,GAAGX,SAAS,CAAC,QAAQ,CAAC,GAAGA,SAAS,CAAC,SAAS,CAAC;EAC1E,MAAMe,YAAY,GAAGd,sBAAsB,CAACO,SAAS,CAAC;EACtD,MAAM;IAAEQ,SAAS;IAAEC;EAAQ,CAAC,GAAGlB,oBAAoB,CACjDY,KAAK,KAAK,KAAK,GAAGI,YAAY,GAAGP,SAAS,EAC1CC,QAAQ,EACRC,SACF,CAAC;EACD,MAAMQ,KAAK,GAAGP,KAAK,KAAK,KAAK,GAAGK,SAAS,GAAGC,OAAO;EACnD,MAAME,GAAG,GAAGR,KAAK,KAAK,KAAK,GAAGM,OAAO,GAAGD,SAAS;EACjD,IAAII,SAAS;EAEb,IAAIT,KAAK,KAAK,YAAY,EAAE;IAC1B,MAAM;MAAEK,SAAS,EAAEK,YAAY;MAAEJ,OAAO,EAAEK;IAAW,CAAC,GACpDvB,oBAAoB,CAACgB,YAAY,EAAEN,QAAQ,EAAEC,SAAS,EAAE,IAAI,CAAC;IAE/DU,SAAS,GAAG,CACV;MACEG,QAAQ,EAAEL,KAAK;MACfJ;IACF,CAAC,EACD;MACES,QAAQ,EAAEJ,GAAG;MACbK,MAAM,EAAEd,SAAS,GAAG,IAAI,GAAG,GAAG;MAC9BI;IACF,CAAC,EACD;MACES,QAAQ,EAAEJ,GAAG;MACbK,MAAM,EAAEd,SAAS,GAAG,IAAI,GAAG,GAAG;MAC9BI;IACF,CAAC,EACD;MACES,QAAQ,EAAED,UAAU;MACpBE,MAAM,EAAEd,SAAS,GAAG,IAAI,GAAG,GAAG;MAC9BI;IACF,CAAC,EACD;MACES,QAAQ,EAAEF;IACZ,CAAC,CACF;EACH,CAAC,MAAM;IACLD,SAAS,GAAG,CACV;MACEG,QAAQ,EAAEL,KAAK;MACfJ;IACF,CAAC,EACD;MACES,QAAQ,EAAEJ;IACZ,CAAC,CACF;EACH;EAEA,OAAO,CACL;IACE,GAAGZ,OAAO;IACVM,IAAI;IACJC,MAAM,EAAE,QAAQ;IAChBM;EACF,CAAC,CACF;AACH","ignoreList":[]}
1
+ {"version":3,"names":["getOppositeDirection","getShuttersClipPaths","getEasing","toKeyframeValue","FOUR_DIRECTIONS","getNames","options","range","namedEffect","web","_dom","style","asWeb","direction","shutters","staggered","fill","easing","directionOpp","clipStart","clipEnd","custom","shuttersScroll","keyframes","clipPath","offset","oppClipStart","oppClipEnd","Object","assign","secondOffset","push","name"],"sources":["../../../../src/library/scroll/ShuttersScroll.ts"],"sourcesContent":["import type {\n AnimationFillMode,\n ScrubAnimationOptions,\n ShuttersScroll,\n DomApi,\n} from '../../types';\nimport {\n getOppositeDirection,\n getShuttersClipPaths,\n getEasing,\n toKeyframeValue,\n FOUR_DIRECTIONS,\n} from '../../utils';\n\nexport function getNames(options: ScrubAnimationOptions) {\n const { range = 'in' } = options.namedEffect as ShuttersScroll;\n return [\n `motion-shuttersScroll-${range === 'continuous' ? '-continuous' : ''}`,\n ];\n}\n\nexport function web(options: ScrubAnimationOptions, _dom?: DomApi) {\n return style(options, true);\n}\n\nexport function style(options: ScrubAnimationOptions, asWeb = false) {\n const {\n direction = 'right',\n shutters = 12,\n staggered = true,\n range = 'in',\n } = options.namedEffect as ShuttersScroll;\n const fill = (\n range === 'out' ? 'forwards' : range === 'in' ? 'backwards' : options.fill\n ) as AnimationFillMode;\n\n const easing = range === 'in' ? getEasing('sineIn') : getEasing('sineOut');\n\n const directionOpp = getOppositeDirection(FOUR_DIRECTIONS, direction);\n\n const { clipStart, clipEnd } = getShuttersClipPaths(\n range === 'out' ? directionOpp : direction,\n shutters,\n staggered,\n );\n\n const custom = {\n '--motion-shutters-clip-start': range === 'out' ? clipEnd : clipStart,\n '--motion-shutters-clip-end': range === 'out' ? clipStart : clipEnd,\n };\n\n const [shuttersScroll] = getNames(options);\n\n const keyframes: {\n clipPath: string | number;\n easing?: string;\n offset?: number;\n }[] = [\n {\n clipPath: toKeyframeValue(custom, '--motion-shutters-clip-start', asWeb),\n easing,\n },\n {\n clipPath: toKeyframeValue(custom, '--motion-shutters-clip-end', asWeb),\n },\n ];\n\n if (range === 'continuous') {\n keyframes[1].easing = easing;\n keyframes[1].offset = staggered ? 0.45 : 0.4;\n\n const { clipStart: oppClipStart, clipEnd: oppClipEnd } =\n getShuttersClipPaths(directionOpp, shutters, staggered, true);\n Object.assign(custom, {\n '--motion-shutters-clip-opp-end': oppClipEnd,\n '--motion-shutters-clip-opp-start': oppClipStart,\n });\n\n const secondOffset = staggered ? 0.55 : 0.6;\n keyframes.push(\n {\n clipPath: toKeyframeValue(custom, '--motion-shutters-clip-end', asWeb),\n offset: secondOffset,\n easing,\n },\n {\n clipPath: toKeyframeValue(\n custom,\n '--motion-shutters-clip-opp-end',\n asWeb,\n ),\n offset: secondOffset,\n easing,\n },\n {\n clipPath: toKeyframeValue(\n custom,\n '--motion-shutters-clip-opp-start',\n asWeb,\n ),\n },\n );\n }\n\n return [\n {\n ...options,\n name: shuttersScroll,\n fill,\n easing: 'linear',\n custom,\n keyframes,\n },\n ];\n}\n"],"mappings":"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","ignoreList":[]}