@wix/motion 1.644.0 → 1.646.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 (204) hide show
  1. package/README.md +0 -2
  2. package/dist/cjs/api/common.js +7 -3
  3. package/dist/cjs/api/common.js.map +1 -1
  4. package/dist/cjs/api/cssAnimations.js +3 -3
  5. package/dist/cjs/api/cssAnimations.js.map +1 -1
  6. package/dist/cjs/api/webAnimations.js +5 -5
  7. package/dist/cjs/api/webAnimations.js.map +1 -1
  8. package/dist/cjs/library/backgroundScroll/test/testUtils.js +1 -2
  9. package/dist/cjs/library/backgroundScroll/test/testUtils.js.map +1 -1
  10. package/dist/cjs/library/entrance/test/testUtils.js +1 -2
  11. package/dist/cjs/library/entrance/test/testUtils.js.map +1 -1
  12. package/dist/cjs/library/ongoing/test/testUtils.js +1 -2
  13. package/dist/cjs/library/ongoing/test/testUtils.js.map +1 -1
  14. package/dist/cjs/library/scroll/test/testUtils.js +1 -2
  15. package/dist/cjs/library/scroll/test/testUtils.js.map +1 -1
  16. package/dist/cjs/playground/animationMotionBgScroll.stories.js +14 -16
  17. package/dist/cjs/playground/animationMotionBgScroll.stories.js.map +1 -1
  18. package/dist/cjs/playground/animationsMotion.stories.js +11 -12
  19. package/dist/cjs/playground/animationsMotion.stories.js.map +1 -1
  20. package/dist/cjs/playground/animationsMotionMouse.stories.js +14 -15
  21. package/dist/cjs/playground/animationsMotionMouse.stories.js.map +1 -1
  22. package/dist/cjs/playground/animationsMotionOngoing.stories.js +11 -12
  23. package/dist/cjs/playground/animationsMotionOngoing.stories.js.map +1 -1
  24. package/dist/cjs/playground/animationsMotionScroll.stories.js +12 -13
  25. package/dist/cjs/playground/animationsMotionScroll.stories.js.map +1 -1
  26. package/dist/cjs/types.js.map +1 -1
  27. package/dist/esm/api/common.js +7 -4
  28. package/dist/esm/api/common.js.map +1 -1
  29. package/dist/esm/api/cssAnimations.js +4 -4
  30. package/dist/esm/api/cssAnimations.js.map +1 -1
  31. package/dist/esm/api/webAnimations.js +6 -6
  32. package/dist/esm/api/webAnimations.js.map +1 -1
  33. package/dist/esm/library/backgroundScroll/test/testUtils.js +1 -2
  34. package/dist/esm/library/backgroundScroll/test/testUtils.js.map +1 -1
  35. package/dist/esm/library/entrance/test/testUtils.js +1 -2
  36. package/dist/esm/library/entrance/test/testUtils.js.map +1 -1
  37. package/dist/esm/library/ongoing/test/testUtils.js +1 -2
  38. package/dist/esm/library/ongoing/test/testUtils.js.map +1 -1
  39. package/dist/esm/library/scroll/test/testUtils.js +1 -2
  40. package/dist/esm/library/scroll/test/testUtils.js.map +1 -1
  41. package/dist/esm/playground/animationMotionBgScroll.stories.js +0 -2
  42. package/dist/esm/playground/animationMotionBgScroll.stories.js.map +1 -1
  43. package/dist/esm/playground/animationsMotion.stories.js +0 -1
  44. package/dist/esm/playground/animationsMotion.stories.js.map +1 -1
  45. package/dist/esm/playground/animationsMotionMouse.stories.js +0 -1
  46. package/dist/esm/playground/animationsMotionMouse.stories.js.map +1 -1
  47. package/dist/esm/playground/animationsMotionOngoing.stories.js +0 -1
  48. package/dist/esm/playground/animationsMotionOngoing.stories.js.map +1 -1
  49. package/dist/esm/playground/animationsMotionScroll.stories.js +0 -1
  50. package/dist/esm/playground/animationsMotionScroll.stories.js.map +1 -1
  51. package/dist/esm/types.js.map +1 -1
  52. package/dist/types/api/common.d.ts +4 -9
  53. package/dist/types/api/common.d.ts.map +1 -1
  54. package/dist/types/api/cssAnimations.d.ts +1 -1
  55. package/dist/types/api/cssAnimations.d.ts.map +1 -1
  56. package/dist/types/api/webAnimations.d.ts.map +1 -1
  57. package/dist/types/library/backgroundScroll/BgCloseUp.d.ts +0 -2
  58. package/dist/types/library/backgroundScroll/BgCloseUp.d.ts.map +1 -1
  59. package/dist/types/library/backgroundScroll/BgFade.d.ts +0 -1
  60. package/dist/types/library/backgroundScroll/BgFade.d.ts.map +1 -1
  61. package/dist/types/library/backgroundScroll/BgFadeBack.d.ts +0 -2
  62. package/dist/types/library/backgroundScroll/BgFadeBack.d.ts.map +1 -1
  63. package/dist/types/library/backgroundScroll/BgFake3D.d.ts +0 -2
  64. package/dist/types/library/backgroundScroll/BgFake3D.d.ts.map +1 -1
  65. package/dist/types/library/backgroundScroll/BgPan.d.ts +0 -1
  66. package/dist/types/library/backgroundScroll/BgPan.d.ts.map +1 -1
  67. package/dist/types/library/backgroundScroll/BgParallax.d.ts +0 -1
  68. package/dist/types/library/backgroundScroll/BgParallax.d.ts.map +1 -1
  69. package/dist/types/library/backgroundScroll/BgPullBack.d.ts +0 -1
  70. package/dist/types/library/backgroundScroll/BgPullBack.d.ts.map +1 -1
  71. package/dist/types/library/backgroundScroll/BgRotate.d.ts +0 -1
  72. package/dist/types/library/backgroundScroll/BgRotate.d.ts.map +1 -1
  73. package/dist/types/library/backgroundScroll/BgSkew.d.ts +0 -1
  74. package/dist/types/library/backgroundScroll/BgSkew.d.ts.map +1 -1
  75. package/dist/types/library/backgroundScroll/BgZoom.d.ts +0 -3
  76. package/dist/types/library/backgroundScroll/BgZoom.d.ts.map +1 -1
  77. package/dist/types/library/backgroundScroll/ImageParallax.d.ts +0 -1
  78. package/dist/types/library/backgroundScroll/ImageParallax.d.ts.map +1 -1
  79. package/dist/types/library/backgroundScroll/test/testUtils.d.ts.map +1 -1
  80. package/dist/types/library/entrance/ArcIn.d.ts +0 -4
  81. package/dist/types/library/entrance/ArcIn.d.ts.map +1 -1
  82. package/dist/types/library/entrance/BlurIn.d.ts +0 -4
  83. package/dist/types/library/entrance/BlurIn.d.ts.map +1 -1
  84. package/dist/types/library/entrance/BounceIn.d.ts +0 -4
  85. package/dist/types/library/entrance/BounceIn.d.ts.map +1 -1
  86. package/dist/types/library/entrance/CircleIn.d.ts +0 -4
  87. package/dist/types/library/entrance/CircleIn.d.ts.map +1 -1
  88. package/dist/types/library/entrance/CurveIn.d.ts +0 -2
  89. package/dist/types/library/entrance/CurveIn.d.ts.map +1 -1
  90. package/dist/types/library/entrance/DropIn.d.ts +0 -4
  91. package/dist/types/library/entrance/DropIn.d.ts.map +1 -1
  92. package/dist/types/library/entrance/ExpandIn.d.ts +0 -4
  93. package/dist/types/library/entrance/ExpandIn.d.ts.map +1 -1
  94. package/dist/types/library/entrance/FadeIn.d.ts +0 -2
  95. package/dist/types/library/entrance/FadeIn.d.ts.map +1 -1
  96. package/dist/types/library/entrance/FlipIn.d.ts +0 -4
  97. package/dist/types/library/entrance/FlipIn.d.ts.map +1 -1
  98. package/dist/types/library/entrance/FloatIn.d.ts +0 -2
  99. package/dist/types/library/entrance/FloatIn.d.ts.map +1 -1
  100. package/dist/types/library/entrance/FoldIn.d.ts +0 -4
  101. package/dist/types/library/entrance/FoldIn.d.ts.map +1 -1
  102. package/dist/types/library/entrance/GlideIn.d.ts +0 -2
  103. package/dist/types/library/entrance/GlideIn.d.ts.map +1 -1
  104. package/dist/types/library/entrance/GlitchIn.d.ts +0 -2
  105. package/dist/types/library/entrance/GlitchIn.d.ts.map +1 -1
  106. package/dist/types/library/entrance/GrowIn.d.ts +0 -4
  107. package/dist/types/library/entrance/GrowIn.d.ts.map +1 -1
  108. package/dist/types/library/entrance/PunchIn.d.ts +0 -4
  109. package/dist/types/library/entrance/PunchIn.d.ts.map +1 -1
  110. package/dist/types/library/entrance/RevealIn.d.ts +0 -2
  111. package/dist/types/library/entrance/RevealIn.d.ts.map +1 -1
  112. package/dist/types/library/entrance/ShapeIn.d.ts +0 -4
  113. package/dist/types/library/entrance/ShapeIn.d.ts.map +1 -1
  114. package/dist/types/library/entrance/ShuttersIn.d.ts +0 -2
  115. package/dist/types/library/entrance/ShuttersIn.d.ts.map +1 -1
  116. package/dist/types/library/entrance/SlideIn.d.ts +0 -2
  117. package/dist/types/library/entrance/SlideIn.d.ts.map +1 -1
  118. package/dist/types/library/entrance/SpinIn.d.ts +0 -4
  119. package/dist/types/library/entrance/SpinIn.d.ts.map +1 -1
  120. package/dist/types/library/entrance/TiltIn.d.ts +0 -6
  121. package/dist/types/library/entrance/TiltIn.d.ts.map +1 -1
  122. package/dist/types/library/entrance/TurnIn.d.ts +0 -4
  123. package/dist/types/library/entrance/TurnIn.d.ts.map +1 -1
  124. package/dist/types/library/entrance/WinkIn.d.ts +0 -6
  125. package/dist/types/library/entrance/WinkIn.d.ts.map +1 -1
  126. package/dist/types/library/entrance/test/testUtils.d.ts.map +1 -1
  127. package/dist/types/library/ongoing/Blink.d.ts +0 -1
  128. package/dist/types/library/ongoing/Blink.d.ts.map +1 -1
  129. package/dist/types/library/ongoing/Bounce.d.ts +0 -2
  130. package/dist/types/library/ongoing/Bounce.d.ts.map +1 -1
  131. package/dist/types/library/ongoing/Breathe.d.ts +0 -2
  132. package/dist/types/library/ongoing/Breathe.d.ts.map +1 -1
  133. package/dist/types/library/ongoing/Cross.d.ts +0 -1
  134. package/dist/types/library/ongoing/Cross.d.ts.map +1 -1
  135. package/dist/types/library/ongoing/DVD.d.ts +0 -2
  136. package/dist/types/library/ongoing/DVD.d.ts.map +1 -1
  137. package/dist/types/library/ongoing/Flash.d.ts +0 -2
  138. package/dist/types/library/ongoing/Flash.d.ts.map +1 -1
  139. package/dist/types/library/ongoing/Flip.d.ts +0 -2
  140. package/dist/types/library/ongoing/Flip.d.ts.map +1 -1
  141. package/dist/types/library/ongoing/Fold.d.ts +0 -2
  142. package/dist/types/library/ongoing/Fold.d.ts.map +1 -1
  143. package/dist/types/library/ongoing/Jello.d.ts +0 -2
  144. package/dist/types/library/ongoing/Jello.d.ts.map +1 -1
  145. package/dist/types/library/ongoing/Poke.d.ts +0 -2
  146. package/dist/types/library/ongoing/Poke.d.ts.map +1 -1
  147. package/dist/types/library/ongoing/Pulse.d.ts +0 -2
  148. package/dist/types/library/ongoing/Pulse.d.ts.map +1 -1
  149. package/dist/types/library/ongoing/Rubber.d.ts +0 -2
  150. package/dist/types/library/ongoing/Rubber.d.ts.map +1 -1
  151. package/dist/types/library/ongoing/Spin.d.ts +0 -2
  152. package/dist/types/library/ongoing/Spin.d.ts.map +1 -1
  153. package/dist/types/library/ongoing/Swing.d.ts +0 -2
  154. package/dist/types/library/ongoing/Swing.d.ts.map +1 -1
  155. package/dist/types/library/ongoing/Wiggle.d.ts +0 -2
  156. package/dist/types/library/ongoing/Wiggle.d.ts.map +1 -1
  157. package/dist/types/library/ongoing/test/testUtils.d.ts.map +1 -1
  158. package/dist/types/library/scroll/ArcScroll.d.ts +0 -1
  159. package/dist/types/library/scroll/ArcScroll.d.ts.map +1 -1
  160. package/dist/types/library/scroll/BlurScroll.d.ts +0 -1
  161. package/dist/types/library/scroll/BlurScroll.d.ts.map +1 -1
  162. package/dist/types/library/scroll/FadeScroll.d.ts +0 -1
  163. package/dist/types/library/scroll/FadeScroll.d.ts.map +1 -1
  164. package/dist/types/library/scroll/FlipScroll.d.ts +0 -1
  165. package/dist/types/library/scroll/FlipScroll.d.ts.map +1 -1
  166. package/dist/types/library/scroll/GrowScroll.d.ts +0 -1
  167. package/dist/types/library/scroll/GrowScroll.d.ts.map +1 -1
  168. package/dist/types/library/scroll/MoveScroll.d.ts +0 -1
  169. package/dist/types/library/scroll/MoveScroll.d.ts.map +1 -1
  170. package/dist/types/library/scroll/PanScroll.d.ts +0 -1
  171. package/dist/types/library/scroll/PanScroll.d.ts.map +1 -1
  172. package/dist/types/library/scroll/ParallaxScroll.d.ts +0 -1
  173. package/dist/types/library/scroll/ParallaxScroll.d.ts.map +1 -1
  174. package/dist/types/library/scroll/RevealScroll.d.ts +0 -1
  175. package/dist/types/library/scroll/RevealScroll.d.ts.map +1 -1
  176. package/dist/types/library/scroll/ShapeScroll.d.ts +0 -1
  177. package/dist/types/library/scroll/ShapeScroll.d.ts.map +1 -1
  178. package/dist/types/library/scroll/ShrinkScroll.d.ts +0 -1
  179. package/dist/types/library/scroll/ShrinkScroll.d.ts.map +1 -1
  180. package/dist/types/library/scroll/ShuttersScroll.d.ts +0 -1
  181. package/dist/types/library/scroll/ShuttersScroll.d.ts.map +1 -1
  182. package/dist/types/library/scroll/SkewPanScroll.d.ts +0 -1
  183. package/dist/types/library/scroll/SkewPanScroll.d.ts.map +1 -1
  184. package/dist/types/library/scroll/SlideScroll.d.ts +0 -1
  185. package/dist/types/library/scroll/SlideScroll.d.ts.map +1 -1
  186. package/dist/types/library/scroll/Spin3dScroll.d.ts +0 -1
  187. package/dist/types/library/scroll/Spin3dScroll.d.ts.map +1 -1
  188. package/dist/types/library/scroll/SpinScroll.d.ts +0 -1
  189. package/dist/types/library/scroll/SpinScroll.d.ts.map +1 -1
  190. package/dist/types/library/scroll/StretchScroll.d.ts +0 -2
  191. package/dist/types/library/scroll/StretchScroll.d.ts.map +1 -1
  192. package/dist/types/library/scroll/TiltScroll.d.ts +0 -2
  193. package/dist/types/library/scroll/TiltScroll.d.ts.map +1 -1
  194. package/dist/types/library/scroll/TurnScroll.d.ts +0 -1
  195. package/dist/types/library/scroll/TurnScroll.d.ts.map +1 -1
  196. package/dist/types/library/scroll/test/testUtils.d.ts.map +1 -1
  197. package/dist/types/playground/animationMotionBgScroll.stories.d.ts.map +1 -1
  198. package/dist/types/playground/animationsMotion.stories.d.ts.map +1 -1
  199. package/dist/types/playground/animationsMotionMouse.stories.d.ts.map +1 -1
  200. package/dist/types/playground/animationsMotionOngoing.stories.d.ts.map +1 -1
  201. package/dist/types/playground/animationsMotionScroll.stories.d.ts.map +1 -1
  202. package/dist/types/types.d.ts +4 -2
  203. package/dist/types/types.d.ts.map +1 -1
  204. package/package.json +2 -2
package/README.md CHANGED
@@ -30,7 +30,6 @@ import { getWebAnimation } from '@wix/motion';
30
30
  const animation = getWebAnimation(
31
31
  document.getElementById('myElement'),
32
32
  {
33
- type: 'TimeAnimationOptions',
34
33
  namedEffect: { type: 'FadeIn' },
35
34
  duration: 1000,
36
35
  easing: 'easeOut'
@@ -50,7 +49,6 @@ import { getScrubScene } from '@wix/motion';
50
49
  const scene = getScrubScene(
51
50
  document.getElementById('scrollElement'),
52
51
  {
53
- type: 'ScrubAnimationOptions',
54
52
  namedEffect: {
55
53
  type: 'ParallaxScroll',
56
54
  speed: 0.5
@@ -9,6 +9,7 @@ exports.getElementMotionPart = getElementMotionPart;
9
9
  exports.getLength = getLength;
10
10
  exports.getNamedEffect = getNamedEffect;
11
11
  exports.getRanges = getRanges;
12
+ exports.isNotAScrubTrigger = isNotAScrubTrigger;
12
13
  exports.measure = measure;
13
14
  exports.mutate = mutate;
14
15
  var _scroll = require("../library/scroll");
@@ -102,7 +103,7 @@ function getNamedEffect(animation) {
102
103
  }
103
104
  return null;
104
105
  }
105
- function getEffectsData(animations, effectId) {
106
+ function getEffectsData(animations, trigger, effectId) {
106
107
  // process each AnimationData object into a KeyframeEffect object
107
108
  return animations.map((effect, index) => {
108
109
  // prepare the KeyframeEffectOptions object
@@ -114,8 +115,8 @@ function getEffectsData(animations, effectId) {
114
115
  direction: getDirection(effect)
115
116
  };
116
117
 
117
- // if this is a TimeAnimation then set the duration and delay as time values
118
- if (effect.type.startsWith('Time')) {
118
+ // if this is a time-based animation then set the duration and delay as time values
119
+ if (isNotAScrubTrigger(trigger)) {
119
120
  effectOptions.duration = effect.duration;
120
121
  effectOptions.delay = effect.delay || 0;
121
122
  } else {
@@ -138,4 +139,7 @@ function getEffectsData(animations, effectId) {
138
139
  };
139
140
  });
140
141
  }
142
+ function isNotAScrubTrigger(trigger) {
143
+ return !trigger || trigger.trigger !== 'pointer-move' && trigger.trigger !== 'view-progress';
144
+ }
141
145
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_scroll","require","_entrance","_ongoing","_mouse","_backgroundScroll","_utils","_fastdom","_interopRequireDefault","getElement","id","ownerDocument","document","getElementById","getElementMotionPart","element","part","matches","querySelector","getDirection","effect","alternate","reversed","getLength","length","value","getCssUnits","type","getRange","range","add","isEnd","name","offset","getRanges","start","startOffset","startOffsetAdd","end","endOffset","endOffsetAdd","measure","target","fn","fastdom","mutate","getNamedEffect","animation","namedEffect","scrollAnimations","entranceAnimations","ongoingAnimations","mouseAnimations","backgroundScrollAnimations","keyframeEffect","animation_","keyframes","getNames","effectId","uid","web","style","customEffect","getEffectsData","animations","map","index","effectOptions","fill","easing","getEasing","iterations","Infinity","composite","direction","startsWith","duration","delay","window","ViewTimeline","options"],"sources":["../../../src/api/common.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationOptions,\n BackgroundScrollAnimations,\n EntranceAnimations,\n MeasureCallback,\n MouseAnimations,\n OngoingAnimations,\n RangeOffset,\n ScrollAnimations,\n TimeAnimationOptions,\n UnitLengthPercentage,\n} from '../types';\nimport { scrollAnimations } from '../library/scroll';\nimport { entranceAnimations } from '../library/entrance';\nimport { ongoingAnimations } from '../library/ongoing';\nimport { mouseAnimations } from '../library/mouse';\nimport { backgroundScrollAnimations } from '../library/backgroundScroll';\nimport { getCssUnits, getEasing } from '../utils';\nimport fastdom from 'fastdom';\n\nfunction getElement(\n id: string | null,\n ownerDocument?: Document,\n): HTMLElement | null {\n return id ? (ownerDocument || document).getElementById(id) : null;\n}\n\nfunction getElementMotionPart(element: Element | null, part: string) {\n if (element?.matches(`[data-motion-part~=\"${part}\"]`)) {\n return element;\n }\n return element?.querySelector(`[data-motion-part~=\"${part}\"]`);\n}\n\nfunction getDirection(\n effect: AnimationData,\n): KeyframeEffectOptions['direction'] {\n const alternate = effect.alternate ? 'alternate' : '';\n return effect.reversed\n ? (`${alternate ? `${alternate}-` : ''}reverse` as\n | 'reverse'\n | 'alternate-reverse')\n : alternate || 'normal';\n}\n\nfunction getLength(length: UnitLengthPercentage): string {\n return `${length.value}${getCssUnits(length.type)}`;\n}\n\nfunction getRange(\n range: RangeOffset,\n add: string | undefined,\n isEnd?: boolean,\n) {\n // according to the CSS spec if the end range is a <length> then it is calculated from the start of the named range\n // our model assumes that <length> in end range is calculated from the end of the named range\n return `${range.name || 'cover'} ${\n isEnd && range.offset!.type !== 'percentage'\n ? `calc(100% + ${getLength(range.offset!)}${add ? ` + ${add}` : ''})`\n : add\n ? `calc(${getLength(range.offset!)} + ${add})`\n : getLength(range.offset!)\n }`;\n}\n\nfunction getRanges(effect: AnimationDataForScrub) {\n return {\n start: getRange(effect.startOffset!, effect.startOffsetAdd),\n end: getRange(effect.endOffset!, effect.endOffsetAdd, true),\n };\n}\n\nfunction measure(target: HTMLElement | null): MeasureCallback {\n return (fn) => fastdom.measure(() => fn(target));\n}\n\nfunction mutate(target: HTMLElement | null): MeasureCallback {\n return (fn) => fastdom.mutate(() => fn(target));\n}\n\nfunction getNamedEffect(animation: AnimationOptions) {\n if (animation.namedEffect) {\n const name = animation.namedEffect.type;\n\n // check each preset library for the named effect\n if (name in scrollAnimations) {\n return scrollAnimations[name as keyof ScrollAnimations];\n } else if (name in entranceAnimations) {\n return entranceAnimations[name as keyof EntranceAnimations];\n } else if (name in ongoingAnimations) {\n return ongoingAnimations[name as keyof OngoingAnimations];\n } else if (name in mouseAnimations) {\n return mouseAnimations[name as keyof MouseAnimations];\n } else if (name in backgroundScrollAnimations) {\n return backgroundScrollAnimations[\n name as keyof BackgroundScrollAnimations\n ];\n }\n } else if (animation.keyframeEffect) {\n const effect = (animation_: AnimationOptions) => {\n const { name, keyframes } = animation_.keyframeEffect!;\n\n return [{ ...animation_, name, keyframes }];\n };\n const getNames = (animation_: AnimationOptions) => {\n const { effectId } = animation_;\n const { name } = animation_.keyframeEffect!;\n const uid = name || effectId;\n\n return uid ? [uid] : [];\n };\n return { web: effect, style: effect, getNames };\n } else if (animation.customEffect) {\n return (animation_: AnimationOptions) => [{ ...animation_, keyframes: [] }];\n }\n return null;\n}\n\nfunction getEffectsData(animations: AnimationData[], effectId?: string) {\n // process each AnimationData object into a KeyframeEffect object\n return animations.map((effect, index) => {\n // prepare the KeyframeEffectOptions object\n const effectOptions = {\n fill: effect.fill,\n easing: getEasing(effect.easing),\n iterations: effect.iterations === 0 ? Infinity : effect.iterations || 1,\n composite: effect.composite,\n direction: getDirection(effect),\n } as KeyframeEffectOptions & { rangeStart: string; rangeEnd: string };\n\n // if this is a TimeAnimation then set the duration and delay as time values\n if (effect.type.startsWith('Time')) {\n effectOptions.duration = effect.duration as number;\n effectOptions.delay = (effect as TimeAnimationOptions).delay || 0;\n } else {\n // if ViewTimeline is supported\n if (window.ViewTimeline) {\n // set duration to 'auto'\n effectOptions.duration = 'auto';\n } else {\n // if ViewTimeline not supported then put a 100ms value in duration get a progress we can easily relate to\n // we split the duration to 99.99ms and delay of 0.01ms to get the fill-mode effect working\n effectOptions.duration = 99.99;\n effectOptions.delay = 0.01;\n }\n }\n\n return {\n effect,\n options: effectOptions,\n id: effectId && `${effectId}-${index + 1}`,\n part: effect.part,\n };\n });\n}\n\nexport {\n getElement,\n getElementMotionPart,\n getNamedEffect,\n getEffectsData,\n measure,\n mutate,\n getDirection,\n getLength,\n getRanges,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_scroll","require","_entrance","_ongoing","_mouse","_backgroundScroll","_utils","_fastdom","_interopRequireDefault","getElement","id","ownerDocument","document","getElementById","getElementMotionPart","element","part","matches","querySelector","getDirection","effect","alternate","reversed","getLength","length","value","getCssUnits","type","getRange","range","add","isEnd","name","offset","getRanges","start","startOffset","startOffsetAdd","end","endOffset","endOffsetAdd","measure","target","fn","fastdom","mutate","getNamedEffect","animation","namedEffect","scrollAnimations","entranceAnimations","ongoingAnimations","mouseAnimations","backgroundScrollAnimations","keyframeEffect","animation_","keyframes","getNames","effectId","uid","web","style","customEffect","getEffectsData","animations","trigger","map","index","effectOptions","fill","easing","getEasing","iterations","Infinity","composite","direction","isNotAScrubTrigger","duration","delay","window","ViewTimeline","options"],"sources":["../../../src/api/common.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationOptions,\n BackgroundScrollAnimations,\n EntranceAnimations,\n MeasureCallback,\n MouseAnimations,\n OngoingAnimations,\n RangeOffset,\n ScrollAnimations,\n TimeAnimationOptions,\n TriggerVariant,\n UnitLengthPercentage,\n} from '../types';\nimport { scrollAnimations } from '../library/scroll';\nimport { entranceAnimations } from '../library/entrance';\nimport { ongoingAnimations } from '../library/ongoing';\nimport { mouseAnimations } from '../library/mouse';\nimport { backgroundScrollAnimations } from '../library/backgroundScroll';\nimport { getCssUnits, getEasing } from '../utils';\nimport fastdom from 'fastdom';\n\nfunction getElement(\n id: string | null,\n ownerDocument?: Document,\n): HTMLElement | null {\n return id ? (ownerDocument || document).getElementById(id) : null;\n}\n\nfunction getElementMotionPart(element: Element | null, part: string) {\n if (element?.matches(`[data-motion-part~=\"${part}\"]`)) {\n return element;\n }\n return element?.querySelector(`[data-motion-part~=\"${part}\"]`);\n}\n\nfunction getDirection(\n effect: AnimationData,\n): KeyframeEffectOptions['direction'] {\n const alternate = effect.alternate ? 'alternate' : '';\n return effect.reversed\n ? (`${alternate ? `${alternate}-` : ''}reverse` as\n | 'reverse'\n | 'alternate-reverse')\n : alternate || 'normal';\n}\n\nfunction getLength(length: UnitLengthPercentage): string {\n return `${length.value}${getCssUnits(length.type)}`;\n}\n\nfunction getRange(\n range: RangeOffset,\n add: string | undefined,\n isEnd?: boolean,\n) {\n // according to the CSS spec if the end range is a <length> then it is calculated from the start of the named range\n // our model assumes that <length> in end range is calculated from the end of the named range\n return `${range.name || 'cover'} ${\n isEnd && range.offset!.type !== 'percentage'\n ? `calc(100% + ${getLength(range.offset!)}${add ? ` + ${add}` : ''})`\n : add\n ? `calc(${getLength(range.offset!)} + ${add})`\n : getLength(range.offset!)\n }`;\n}\n\nfunction getRanges(effect: AnimationDataForScrub) {\n return {\n start: getRange(effect.startOffset!, effect.startOffsetAdd),\n end: getRange(effect.endOffset!, effect.endOffsetAdd, true),\n };\n}\n\nfunction measure(target: HTMLElement | null): MeasureCallback {\n return (fn) => fastdom.measure(() => fn(target));\n}\n\nfunction mutate(target: HTMLElement | null): MeasureCallback {\n return (fn) => fastdom.mutate(() => fn(target));\n}\n\nfunction getNamedEffect(animation: AnimationOptions) {\n if (animation.namedEffect) {\n const name = animation.namedEffect.type;\n\n // check each preset library for the named effect\n if (name in scrollAnimations) {\n return scrollAnimations[name as keyof ScrollAnimations];\n } else if (name in entranceAnimations) {\n return entranceAnimations[name as keyof EntranceAnimations];\n } else if (name in ongoingAnimations) {\n return ongoingAnimations[name as keyof OngoingAnimations];\n } else if (name in mouseAnimations) {\n return mouseAnimations[name as keyof MouseAnimations];\n } else if (name in backgroundScrollAnimations) {\n return backgroundScrollAnimations[\n name as keyof BackgroundScrollAnimations\n ];\n }\n } else if (animation.keyframeEffect) {\n const effect = (animation_: AnimationOptions) => {\n const { name, keyframes } = animation_.keyframeEffect!;\n\n return [{ ...animation_, name, keyframes }];\n };\n const getNames = (animation_: AnimationOptions) => {\n const { effectId } = animation_;\n const { name } = animation_.keyframeEffect!;\n const uid = name || effectId;\n\n return uid ? [uid] : [];\n };\n return { web: effect, style: effect, getNames };\n } else if (animation.customEffect) {\n return (animation_: AnimationOptions) => [{ ...animation_, keyframes: [] }];\n }\n return null;\n}\n\nfunction getEffectsData(\n animations: AnimationData[],\n trigger?: Partial<TriggerVariant>,\n effectId?: string,\n) {\n // process each AnimationData object into a KeyframeEffect object\n return animations.map((effect, index) => {\n // prepare the KeyframeEffectOptions object\n const effectOptions = {\n fill: effect.fill,\n easing: getEasing(effect.easing),\n iterations: effect.iterations === 0 ? Infinity : effect.iterations || 1,\n composite: effect.composite,\n direction: getDirection(effect),\n } as KeyframeEffectOptions & { rangeStart: string; rangeEnd: string };\n\n // if this is a time-based animation then set the duration and delay as time values\n if (isNotAScrubTrigger(trigger)) {\n effectOptions.duration = effect.duration as number;\n effectOptions.delay = (effect as TimeAnimationOptions).delay || 0;\n } else {\n // if ViewTimeline is supported\n if (window.ViewTimeline) {\n // set duration to 'auto'\n effectOptions.duration = 'auto';\n } else {\n // if ViewTimeline not supported then put a 100ms value in duration get a progress we can easily relate to\n // we split the duration to 99.99ms and delay of 0.01ms to get the fill-mode effect working\n effectOptions.duration = 99.99;\n effectOptions.delay = 0.01;\n }\n }\n\n return {\n effect,\n options: effectOptions,\n id: effectId && `${effectId}-${index + 1}`,\n part: effect.part,\n };\n });\n}\n\nfunction isNotAScrubTrigger(trigger?: Partial<TriggerVariant>) {\n return (\n !trigger ||\n (trigger.trigger !== 'pointer-move' && trigger.trigger !== 'view-progress')\n );\n}\n\nexport {\n isNotAScrubTrigger,\n getElement,\n getElementMotionPart,\n getNamedEffect,\n getEffectsData,\n measure,\n mutate,\n getDirection,\n getLength,\n getRanges,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -21,10 +21,10 @@ function getAnimationAsCSS(data, isRunning) {
21
21
  const isAutoDuration = duration === 'auto';
22
22
  return `${animationName} ${isAutoDuration ? 'auto' : `${duration}ms`}${isAutoDuration ? ' ' : ` ${delay || 1}ms `}${easing}${fill && fill !== 'none' ? ` ${fill}` : ''} ${!iterations || iterations === Infinity ? 'infinite' : iterations}${direction === 'normal' ? '' : ` ${direction}`} ${isRunning ? '' : 'paused'}`;
23
23
  }
24
- function getCSSAnimationEffect(preset, animation) {
24
+ function getCSSAnimationEffect(preset, animation, trigger) {
25
25
  if (preset != null && preset.style) {
26
26
  // validate duration is a number over 0
27
- if (animation.type === 'TimeAnimationOptions') {
27
+ if ((0, _common.isNotAScrubTrigger)(trigger)) {
28
28
  animation.duration = animation.duration || 1;
29
29
  }
30
30
  return preset.style(animation);
@@ -35,7 +35,7 @@ function getCSSAnimation(target, animationOptions, trigger) {
35
35
  // get the preset for the given animation options
36
36
  const namedEffect = (0, _common.getNamedEffect)(animationOptions);
37
37
  const animationsData = getCSSAnimationEffect(namedEffect, animationOptions);
38
- const data = (0, _common.getEffectsData)(animationsData, animationOptions.effectId);
38
+ const data = (0, _common.getEffectsData)(animationsData, trigger, animationOptions.effectId);
39
39
  const isViewProgress = (trigger == null ? void 0 : trigger.trigger) === 'view-progress';
40
40
  return data.map((item, index) => {
41
41
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","getAnimationTarget","target","part","getAnimationAsCSS","data","isRunning","duration","delay","iterations","fill","easing","direction","options","animationName","effect","name","isAutoDuration","Infinity","getCSSAnimationEffect","preset","animation","style","type","getCSSAnimation","animationOptions","trigger","namedEffect","getNamedEffect","animationsData","getEffectsData","effectId","isViewProgress","map","item","index","start","end","getRanges","composition","composite","custom","keyframes","id","animationTimeline","animationRange"],"sources":["../../../src/api/cssAnimations.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationEffectAPI,\n AnimationOptions,\n TriggerVariant,\n} from '../types';\nimport { getEffectsData, getRanges, getNamedEffect } from './common';\n\nfunction getAnimationTarget(target: string | null, part: string | undefined) {\n return target\n ? `#${target}${part ? `[data-motion-part~=\"${part}\"]` : ''}`\n : '';\n}\n\nfunction getAnimationAsCSS(\n data: {\n effect: AnimationData;\n options: KeyframeEffectOptions;\n id: string | undefined;\n part: string | undefined;\n },\n isRunning?: boolean,\n) {\n const {\n duration,\n delay,\n iterations = 1,\n fill,\n easing = 'linear',\n direction,\n } = data.options;\n const animationName = data.effect.name;\n const isAutoDuration = duration === 'auto';\n\n return `${animationName} ${isAutoDuration ? 'auto' : `${duration}ms`}${\n isAutoDuration ? ' ' : ` ${delay || 1}ms `\n }${easing}${fill && fill !== 'none' ? ` ${fill}` : ''} ${\n !iterations || iterations === Infinity ? 'infinite' : iterations\n }${direction === 'normal' ? '' : ` ${direction}`} ${\n isRunning ? '' : 'paused'\n }`;\n}\n\nfunction getCSSAnimationEffect(\n preset: AnimationEffectAPI<any> | null,\n animation: AnimationOptions,\n): AnimationData[] {\n if (preset?.style) {\n // validate duration is a number over 0\n if (animation.type === 'TimeAnimationOptions') {\n animation.duration = animation.duration || 1;\n }\n\n return preset.style(animation);\n }\n\n return [];\n}\n\nfunction getCSSAnimation(\n target: string | null,\n animationOptions: AnimationOptions,\n trigger?: TriggerVariant,\n) {\n // get the preset for the given animation options\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n const animationsData = getCSSAnimationEffect(namedEffect, animationOptions);\n const data = getEffectsData(animationsData, animationOptions.effectId);\n const isViewProgress = trigger?.trigger === 'view-progress';\n\n return data.map((item, index) => {\n const { start, end }: { start?: string; end?: string } = isViewProgress\n ? getRanges(item.effect as AnimationDataForScrub)\n : {};\n\n return {\n target: getAnimationTarget(target, item.part),\n animation: getAnimationAsCSS(item, isViewProgress),\n composition: item.options.composite,\n custom: item.effect.custom,\n name: item.effect.name,\n keyframes: item.effect.keyframes,\n id: item.id && `${item.id}-${index + 1}`,\n animationTimeline: isViewProgress ? `--${trigger?.id}` : '',\n animationRange: start || end ? `${start} ${end}` : '',\n };\n });\n}\n\nexport { getCSSAnimation, getCSSAnimationEffect, getAnimationAsCSS };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_common","require","getAnimationTarget","target","part","getAnimationAsCSS","data","isRunning","duration","delay","iterations","fill","easing","direction","options","animationName","effect","name","isAutoDuration","Infinity","getCSSAnimationEffect","preset","animation","trigger","style","isNotAScrubTrigger","getCSSAnimation","animationOptions","namedEffect","getNamedEffect","animationsData","getEffectsData","effectId","isViewProgress","map","item","index","start","end","getRanges","composition","composite","custom","keyframes","id","animationTimeline","animationRange"],"sources":["../../../src/api/cssAnimations.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationEffectAPI,\n AnimationOptions,\n TriggerVariant,\n} from '../types';\nimport {\n getEffectsData,\n getRanges,\n getNamedEffect,\n isNotAScrubTrigger,\n} from './common';\n\nfunction getAnimationTarget(target: string | null, part: string | undefined) {\n return target\n ? `#${target}${part ? `[data-motion-part~=\"${part}\"]` : ''}`\n : '';\n}\n\nfunction getAnimationAsCSS(\n data: {\n effect: AnimationData;\n options: KeyframeEffectOptions;\n id: string | undefined;\n part: string | undefined;\n },\n isRunning?: boolean,\n) {\n const {\n duration,\n delay,\n iterations = 1,\n fill,\n easing = 'linear',\n direction,\n } = data.options;\n const animationName = data.effect.name;\n const isAutoDuration = duration === 'auto';\n\n return `${animationName} ${isAutoDuration ? 'auto' : `${duration}ms`}${\n isAutoDuration ? ' ' : ` ${delay || 1}ms `\n }${easing}${fill && fill !== 'none' ? ` ${fill}` : ''} ${\n !iterations || iterations === Infinity ? 'infinite' : iterations\n }${direction === 'normal' ? '' : ` ${direction}`} ${\n isRunning ? '' : 'paused'\n }`;\n}\n\nfunction getCSSAnimationEffect(\n preset: AnimationEffectAPI<any> | null,\n animation: AnimationOptions,\n trigger?: Partial<TriggerVariant>,\n): AnimationData[] {\n if (preset?.style) {\n // validate duration is a number over 0\n if (isNotAScrubTrigger(trigger)) {\n animation.duration = animation.duration || 1;\n }\n\n return preset.style(animation);\n }\n\n return [];\n}\n\nfunction getCSSAnimation(\n target: string | null,\n animationOptions: AnimationOptions,\n trigger?: TriggerVariant,\n) {\n // get the preset for the given animation options\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n const animationsData = getCSSAnimationEffect(namedEffect, animationOptions);\n const data = getEffectsData(\n animationsData,\n trigger,\n animationOptions.effectId,\n );\n const isViewProgress = trigger?.trigger === 'view-progress';\n\n return data.map((item, index) => {\n const { start, end }: { start?: string; end?: string } = isViewProgress\n ? getRanges(item.effect as AnimationDataForScrub)\n : {};\n\n return {\n target: getAnimationTarget(target, item.part),\n animation: getAnimationAsCSS(item, isViewProgress),\n composition: item.options.composite,\n custom: item.effect.custom,\n name: item.effect.name,\n keyframes: item.effect.keyframes,\n id: item.id && `${item.id}-${index + 1}`,\n animationTimeline: isViewProgress ? `--${trigger?.id}` : '',\n animationRange: start || end ? `${start} ${end}` : '',\n };\n });\n}\n\nexport { getCSSAnimation, getCSSAnimationEffect, getAnimationAsCSS };\n"],"mappings":"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","ignoreList":[]}
@@ -7,10 +7,10 @@ var _CustomAnimation = require("../CustomAnimation");
7
7
  var _AnimationGroup = require("../AnimationGroup");
8
8
  var _common = require("./common");
9
9
  var _fastdom = _interopRequireDefault(require("fastdom"));
10
- function getWebAnimationEffect(preset, animation, target, options) {
10
+ function getWebAnimationEffect(preset, animation, target, trigger, options) {
11
11
  if (preset) {
12
12
  // validate duration is a number over 0
13
- if (animation.type === 'TimeAnimationOptions') {
13
+ if ((0, _common.isNotAScrubTrigger)(trigger)) {
14
14
  animation.duration = animation.duration || 1;
15
15
  if (options != null && options.reducedMotion) {
16
16
  if (animation.iterations === 1 || animation.iterations == undefined) {
@@ -50,14 +50,14 @@ function getWebAnimation(target, animationOptions, trigger, options, ownerDocume
50
50
 
51
51
  // TODO: need to fix the type here, currently lying about the returned type to be WebAnimationEffectFactory instead of MouseAnimationFactoryCreate
52
52
  const mouseAnimationPreset = (0, _common.getNamedEffect)(effectOptions);
53
- const mouseAnimationFactory = getWebAnimationEffect(mouseAnimationPreset, animationOptions, element, options);
53
+ const mouseAnimationFactory = getWebAnimationEffect(mouseAnimationPreset, animationOptions, element, trigger, options);
54
54
  return mouseAnimationFactory(element);
55
55
  }
56
56
 
57
57
  // get the preset for the given animation options
58
58
  const namedEffect = (0, _common.getNamedEffect)(animationOptions);
59
- const animationsData = getWebAnimationEffect(namedEffect, animationOptions, element, options);
60
- const data = (0, _common.getEffectsData)(animationsData, animationOptions.effectId);
59
+ const animationsData = getWebAnimationEffect(namedEffect, animationOptions, element, trigger, options);
60
+ const data = (0, _common.getEffectsData)(animationsData, trigger, animationOptions.effectId);
61
61
  let timeline;
62
62
  const isViewProgress = (trigger == null ? void 0 : trigger.trigger) === 'view-progress';
63
63
 
@@ -1 +1 @@
1
- {"version":3,"names":["_CustomAnimation","require","_AnimationGroup","_common","_fastdom","_interopRequireDefault","getWebAnimationEffect","preset","animation","target","options","type","duration","reducedMotion","iterations","undefined","domApi","HTMLElement","measure","mutate","web","getWebAnimation","animationOptions","trigger","ownerDocument","element","getElement","effectOptions","customEffect","namedEffect","id","mouseAnimationPreset","getNamedEffect","mouseAnimationFactory","animationsData","data","getEffectsData","effectId","timeline","isViewProgress","window","ViewTimeline","subject","componentId","animations","map","effect","part","effectTarget","getElementMotionPart","keyframeEffect","KeyframeEffect","fastdom","updateTiming","timing","setKeyframes","keyframes","timingOptions","CustomAnimation","Animation","start","end","getRanges","rangeStart","rangeEnd","play","startOffset","endOffset","_offset","_offset2","startOffsetToWrite","endOffsetToWrite","Object","assign","name","offset","value","add","startOffsetAdd","endOffsetAdd","AnimationGroup","measured","Promise","resolve"],"sources":["../../../src/api/webAnimations.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationEffectAPI,\n AnimationOptions,\n MouseAnimationFactory,\n MouseAnimationInstance,\n ScrubAnimationOptions,\n TriggerVariant,\n WebAnimationEffectFactory,\n} from '../types';\nimport { CustomAnimation } from '../CustomAnimation';\nimport { AnimationGroup } from '../AnimationGroup';\nimport {\n getElement,\n getElementMotionPart,\n measure,\n mutate,\n getRanges,\n getNamedEffect,\n getEffectsData,\n} from './common';\nimport fastdom from 'fastdom';\n\nfunction getWebAnimationEffect(\n preset: AnimationEffectAPI<any> | WebAnimationEffectFactory<any> | null,\n animation: AnimationOptions,\n target: HTMLElement | string | null,\n options?: Record<string, any>,\n): AnimationData[] | MouseAnimationFactory {\n if (preset) {\n // validate duration is a number over 0\n if (animation.type === 'TimeAnimationOptions') {\n animation.duration = animation.duration || 1;\n\n if (options?.reducedMotion) {\n if (animation.iterations === 1 || animation.iterations == undefined) {\n animation = { ...animation, duration: 1 };\n } else {\n return [];\n }\n }\n }\n\n let domApi;\n if (target instanceof HTMLElement) {\n domApi = { measure: measure(target), mutate: mutate(target) };\n }\n\n return (preset as AnimationEffectAPI<any>).web\n ? (preset as AnimationEffectAPI<any>).web(animation, domApi, options)\n : (preset as WebAnimationEffectFactory<any>)(animation, domApi, options);\n }\n\n return [];\n}\n\nfunction getWebAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger?: Partial<TriggerVariant> & { element?: HTMLElement },\n options?: Record<string, any>,\n ownerDocument?: Document,\n): AnimationGroup | MouseAnimationInstance {\n const element =\n target instanceof HTMLElement ? target : getElement(target, ownerDocument);\n\n if (trigger?.trigger === 'pointer-move') {\n let effectOptions = animationOptions;\n\n if (animationOptions.customEffect) {\n effectOptions = {\n ...animationOptions,\n namedEffect: { id: '', type: 'CustomMouse' },\n };\n }\n\n // TODO: need to fix the type here, currently lying about the returned type to be WebAnimationEffectFactory instead of MouseAnimationFactoryCreate\n const mouseAnimationPreset = getNamedEffect(\n effectOptions,\n ) as WebAnimationEffectFactory<'scrub'>;\n const mouseAnimationFactory = getWebAnimationEffect(\n mouseAnimationPreset,\n animationOptions,\n element,\n options,\n ) as MouseAnimationFactory;\n\n return mouseAnimationFactory(element as HTMLElement);\n }\n\n // get the preset for the given animation options\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n const animationsData = getWebAnimationEffect(\n namedEffect,\n animationOptions,\n element,\n options,\n ) as AnimationData[];\n const data = getEffectsData(animationsData, animationOptions.effectId);\n\n let timeline: typeof window.ViewTimeline | undefined;\n const isViewProgress = trigger?.trigger === 'view-progress';\n\n // if this is a ScrubAnimation with view-progress trigger and the browser supports the ViewTimeline API\n if (isViewProgress && window.ViewTimeline) {\n // generate the timeline object\n // @ts-expect-error\n timeline = new ViewTimeline({\n subject: trigger.element || getElement(trigger.componentId!),\n });\n }\n\n // generate an Animation object for each data object\n const animations = data.map(\n ({ effect, options: effectOptions, id, part }) => {\n const effectTarget = part ? getElementMotionPart(element, part) : element;\n\n const keyframeEffect = new KeyframeEffect(\n effectTarget || null,\n [],\n effectOptions,\n );\n\n // set the keyframes for the KeyframeEffect after measurements and mutations\n fastdom.mutate(() => {\n if ('timing' in effect) {\n keyframeEffect.updateTiming(effect.timing as OptionalEffectTiming);\n }\n\n keyframeEffect.setKeyframes(effect.keyframes);\n });\n\n const timingOptions =\n isViewProgress && timeline\n ? { timeline: timeline as AnimationTimeline }\n : {};\n const animation =\n typeof effect.customEffect === 'function'\n ? (new CustomAnimation(\n effect.customEffect,\n effectTarget || null,\n effectOptions,\n timingOptions,\n ) as Animation)\n : new Animation(keyframeEffect, timingOptions.timeline);\n\n // if this is a ScrubAnimation with view-progress trigger and the browser supports the ViewTimeline API\n if (isViewProgress) {\n if (timeline) {\n // set the ranges for the animation after measurements and mutations\n fastdom.mutate(() => {\n const { start, end } = getRanges(effect as AnimationDataForScrub);\n // @ts-expect-error\n animation.rangeStart = start;\n // @ts-expect-error\n animation.rangeEnd = end;\n\n animation.play();\n });\n } else {\n const { startOffset, endOffset } =\n animationOptions as ScrubAnimationOptions;\n\n // set the ranges for the animation after measurements and mutations\n fastdom.mutate(() => {\n const startOffsetToWrite =\n (effect as AnimationDataForScrub).startOffset || startOffset;\n const endOffsetToWrite =\n (effect as AnimationDataForScrub).endOffset || endOffset;\n\n Object.assign(animation, {\n start: {\n name: startOffsetToWrite!.name,\n offset: startOffsetToWrite!.offset?.value,\n add: (effect as AnimationDataForScrub)!.startOffsetAdd,\n },\n end: {\n name: endOffsetToWrite!.name,\n offset: endOffsetToWrite!.offset?.value,\n add: (effect as AnimationDataForScrub)!.endOffsetAdd,\n },\n });\n });\n }\n }\n\n if (id) {\n animation.id = id;\n }\n\n return animation;\n },\n );\n\n // create an AnimationGroup with the generate animations\n return new AnimationGroup(animations, {\n ...animationOptions,\n trigger: { ...(trigger || ({} as Partial<TriggerVariant>)) },\n // make sure the group is ready after all animation targets are measured and mutated\n measured: new Promise((resolve) => fastdom.mutate(resolve)),\n });\n}\n\nexport { getWebAnimation };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_CustomAnimation","require","_AnimationGroup","_common","_fastdom","_interopRequireDefault","getWebAnimationEffect","preset","animation","target","trigger","options","isNotAScrubTrigger","duration","reducedMotion","iterations","undefined","domApi","HTMLElement","measure","mutate","web","getWebAnimation","animationOptions","ownerDocument","element","getElement","effectOptions","customEffect","namedEffect","id","type","mouseAnimationPreset","getNamedEffect","mouseAnimationFactory","animationsData","data","getEffectsData","effectId","timeline","isViewProgress","window","ViewTimeline","subject","componentId","animations","map","effect","part","effectTarget","getElementMotionPart","keyframeEffect","KeyframeEffect","fastdom","updateTiming","timing","setKeyframes","keyframes","timingOptions","CustomAnimation","Animation","start","end","getRanges","rangeStart","rangeEnd","play","startOffset","endOffset","_offset","_offset2","startOffsetToWrite","endOffsetToWrite","Object","assign","name","offset","value","add","startOffsetAdd","endOffsetAdd","AnimationGroup","measured","Promise","resolve"],"sources":["../../../src/api/webAnimations.ts"],"sourcesContent":["import type {\n AnimationData,\n AnimationDataForScrub,\n AnimationEffectAPI,\n AnimationOptions,\n MouseAnimationFactory,\n MouseAnimationInstance,\n ScrubAnimationOptions,\n TriggerVariant,\n WebAnimationEffectFactory,\n} from '../types';\nimport { CustomAnimation } from '../CustomAnimation';\nimport { AnimationGroup } from '../AnimationGroup';\nimport {\n getElement,\n getElementMotionPart,\n measure,\n mutate,\n getRanges,\n getNamedEffect,\n getEffectsData,\n isNotAScrubTrigger,\n} from './common';\nimport fastdom from 'fastdom';\n\nfunction getWebAnimationEffect(\n preset: AnimationEffectAPI<any> | WebAnimationEffectFactory<any> | null,\n animation: AnimationOptions,\n target: HTMLElement | string | null,\n trigger?: Partial<TriggerVariant>,\n options?: Record<string, any>,\n): AnimationData[] | MouseAnimationFactory {\n if (preset) {\n // validate duration is a number over 0\n if (isNotAScrubTrigger(trigger)) {\n animation.duration = animation.duration || 1;\n\n if (options?.reducedMotion) {\n if (animation.iterations === 1 || animation.iterations == undefined) {\n animation = { ...animation, duration: 1 };\n } else {\n return [];\n }\n }\n }\n\n let domApi;\n if (target instanceof HTMLElement) {\n domApi = { measure: measure(target), mutate: mutate(target) };\n }\n\n return (preset as AnimationEffectAPI<any>).web\n ? (preset as AnimationEffectAPI<any>).web(animation, domApi, options)\n : (preset as WebAnimationEffectFactory<any>)(animation, domApi, options);\n }\n\n return [];\n}\n\nfunction getWebAnimation(\n target: HTMLElement | string | null,\n animationOptions: AnimationOptions,\n trigger?: Partial<TriggerVariant> & { element?: HTMLElement },\n options?: Record<string, any>,\n ownerDocument?: Document,\n): AnimationGroup | MouseAnimationInstance {\n const element =\n target instanceof HTMLElement ? target : getElement(target, ownerDocument);\n\n if (trigger?.trigger === 'pointer-move') {\n let effectOptions = animationOptions;\n\n if (animationOptions.customEffect) {\n effectOptions = {\n ...animationOptions,\n namedEffect: { id: '', type: 'CustomMouse' },\n };\n }\n\n // TODO: need to fix the type here, currently lying about the returned type to be WebAnimationEffectFactory instead of MouseAnimationFactoryCreate\n const mouseAnimationPreset = getNamedEffect(\n effectOptions,\n ) as WebAnimationEffectFactory<'scrub'>;\n const mouseAnimationFactory = getWebAnimationEffect(\n mouseAnimationPreset,\n animationOptions,\n element,\n trigger,\n options,\n ) as MouseAnimationFactory;\n\n return mouseAnimationFactory(element as HTMLElement);\n }\n\n // get the preset for the given animation options\n const namedEffect = getNamedEffect(\n animationOptions,\n ) as AnimationEffectAPI<any> | null;\n\n const animationsData = getWebAnimationEffect(\n namedEffect,\n animationOptions,\n element,\n trigger,\n options,\n ) as AnimationData[];\n const data = getEffectsData(\n animationsData,\n trigger,\n animationOptions.effectId,\n );\n\n let timeline: typeof window.ViewTimeline | undefined;\n const isViewProgress = trigger?.trigger === 'view-progress';\n\n // if this is a ScrubAnimation with view-progress trigger and the browser supports the ViewTimeline API\n if (isViewProgress && window.ViewTimeline) {\n // generate the timeline object\n // @ts-expect-error\n timeline = new ViewTimeline({\n subject: trigger.element || getElement(trigger.componentId!),\n });\n }\n\n // generate an Animation object for each data object\n const animations = data.map(\n ({ effect, options: effectOptions, id, part }) => {\n const effectTarget = part ? getElementMotionPart(element, part) : element;\n\n const keyframeEffect = new KeyframeEffect(\n effectTarget || null,\n [],\n effectOptions,\n );\n\n // set the keyframes for the KeyframeEffect after measurements and mutations\n fastdom.mutate(() => {\n if ('timing' in effect) {\n keyframeEffect.updateTiming(effect.timing as OptionalEffectTiming);\n }\n\n keyframeEffect.setKeyframes(effect.keyframes);\n });\n\n const timingOptions =\n isViewProgress && timeline\n ? { timeline: timeline as AnimationTimeline }\n : {};\n const animation: Animation | CustomAnimation =\n typeof effect.customEffect === 'function'\n ? (new CustomAnimation(\n effect.customEffect,\n effectTarget || null,\n effectOptions,\n timingOptions,\n ) as Animation)\n : new Animation(keyframeEffect, timingOptions.timeline);\n\n // if this is a ScrubAnimation with view-progress trigger and the browser supports the ViewTimeline API\n if (isViewProgress) {\n if (timeline) {\n // set the ranges for the animation after measurements and mutations\n fastdom.mutate(() => {\n const { start, end } = getRanges(effect as AnimationDataForScrub);\n // @ts-expect-error\n animation.rangeStart = start;\n // @ts-expect-error\n animation.rangeEnd = end;\n\n animation.play();\n });\n } else {\n const { startOffset, endOffset } =\n animationOptions as ScrubAnimationOptions;\n\n // set the ranges for the animation after measurements and mutations\n fastdom.mutate(() => {\n const startOffsetToWrite =\n (effect as AnimationDataForScrub).startOffset || startOffset;\n const endOffsetToWrite =\n (effect as AnimationDataForScrub).endOffset || endOffset;\n\n Object.assign(animation, {\n start: {\n name: startOffsetToWrite!.name,\n offset: startOffsetToWrite!.offset?.value,\n add: (effect as AnimationDataForScrub)!.startOffsetAdd,\n },\n end: {\n name: endOffsetToWrite!.name,\n offset: endOffsetToWrite!.offset?.value,\n add: (effect as AnimationDataForScrub)!.endOffsetAdd,\n },\n });\n });\n }\n }\n\n if (id) {\n animation.id = id;\n }\n\n return animation;\n },\n );\n\n // create an AnimationGroup with the generate animations\n return new AnimationGroup(animations, {\n ...animationOptions,\n trigger: { ...(trigger || ({} as Partial<TriggerVariant>)) },\n // make sure the group is ready after all animation targets are measured and mutated\n measured: new Promise((resolve) => fastdom.mutate(resolve)),\n });\n}\n\nexport { getWebAnimation };\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  exports.baseMockOptions = void 0;
5
5
  const baseMockOptions = exports.baseMockOptions = {
6
- id: '1',
7
- type: 'ScrubAnimationOptions'
6
+ id: '1'
8
7
  };
9
8
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["baseMockOptions","exports","id","type"],"sources":["../../../../../src/library/backgroundScroll/test/testUtils.ts"],"sourcesContent":["import type { ScrubAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: ScrubAnimationOptions = {\n id: '1',\n type: 'ScrubAnimationOptions',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAsC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACpDE,EAAE,EAAE,GAAG;EACPC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["baseMockOptions","exports","id"],"sources":["../../../../../src/library/backgroundScroll/test/testUtils.ts"],"sourcesContent":["import type { ScrubAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: ScrubAnimationOptions = {\n id: '1',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAsC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACpDE,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  exports.baseMockOptions = void 0;
5
5
  const baseMockOptions = exports.baseMockOptions = {
6
- id: '1',
7
- type: 'TimeAnimationOptions'
6
+ id: '1'
8
7
  };
9
8
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["baseMockOptions","exports","id","type"],"sources":["../../../../../src/library/entrance/test/testUtils.ts"],"sourcesContent":["import type { TimeAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: TimeAnimationOptions = {\n id: '1',\n type: 'TimeAnimationOptions',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAqC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACnDE,EAAE,EAAE,GAAG;EACPC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["baseMockOptions","exports","id"],"sources":["../../../../../src/library/entrance/test/testUtils.ts"],"sourcesContent":["import type { TimeAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: TimeAnimationOptions = {\n id: '1',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAqC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACnDE,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  exports.baseMockOptions = void 0;
5
5
  const baseMockOptions = exports.baseMockOptions = {
6
- id: 'test-id',
7
- type: 'TimeAnimationOptions'
6
+ id: 'test-id'
8
7
  };
9
8
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["baseMockOptions","exports","id","type"],"sources":["../../../../../src/library/ongoing/test/testUtils.ts"],"sourcesContent":["import { TimeAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: TimeAnimationOptions = {\n id: 'test-id',\n type: 'TimeAnimationOptions',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAqC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACnDE,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["baseMockOptions","exports","id"],"sources":["../../../../../src/library/ongoing/test/testUtils.ts"],"sourcesContent":["import { TimeAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: TimeAnimationOptions = {\n id: 'test-id',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAqC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACnDE,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  exports.__esModule = true;
4
4
  exports.baseMockOptions = void 0;
5
5
  const baseMockOptions = exports.baseMockOptions = {
6
- id: 'test-id',
7
- type: 'ScrubAnimationOptions'
6
+ id: 'test-id'
8
7
  };
9
8
  //# sourceMappingURL=testUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["baseMockOptions","exports","id","type"],"sources":["../../../../../src/library/scroll/test/testUtils.ts"],"sourcesContent":["import { ScrubAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: ScrubAnimationOptions = {\n id: 'test-id',\n type: 'ScrubAnimationOptions',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAsC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACpDE,EAAE,EAAE,SAAS;EACbC,IAAI,EAAE;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["baseMockOptions","exports","id"],"sources":["../../../../../src/library/scroll/test/testUtils.ts"],"sourcesContent":["import { ScrubAnimationOptions } from '../../../types';\n\nexport const baseMockOptions: ScrubAnimationOptions = {\n id: 'test-id',\n};\n"],"mappings":";;;;AAEO,MAAMA,eAAsC,GAAAC,OAAA,CAAAD,eAAA,GAAG;EACpDE,EAAE,EAAE;AACN,CAAC","ignoreList":[]}
@@ -125,7 +125,6 @@ const BackgroundScroll = () => {
125
125
  (_animationGroup = animationGroup) == null || _animationGroup.cancel();
126
126
  animationGroup = (0, _index.getWebAnimation)(el.id, {
127
127
  id: '',
128
- type: 'ScrubAnimationOptions',
129
128
  namedEffect: {
130
129
  id: '',
131
130
  type: name,
@@ -146,7 +145,6 @@ const BackgroundScroll = () => {
146
145
  var _scroll;
147
146
  animationScene = (0, _index.getScrubScene)(el.id, {
148
147
  id: '',
149
- type: 'ScrubAnimationOptions',
150
148
  namedEffect: {
151
149
  id: '',
152
150
  type: name,
@@ -209,7 +207,7 @@ const BackgroundScroll = () => {
209
207
  __self: void 0,
210
208
  __source: {
211
209
  fileName: _jsxFileName,
212
- lineNumber: 314,
210
+ lineNumber: 312,
213
211
  columnNumber: 5
214
212
  }
215
213
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -221,7 +219,7 @@ const BackgroundScroll = () => {
221
219
  __self: void 0,
222
220
  __source: {
223
221
  fileName: _jsxFileName,
224
- lineNumber: 318,
222
+ lineNumber: 316,
225
223
  columnNumber: 7
226
224
  }
227
225
  }, [0, 1].map((_, i) => /*#__PURE__*/_react.default.createElement("div", {
@@ -232,7 +230,7 @@ const BackgroundScroll = () => {
232
230
  __self: void 0,
233
231
  __source: {
234
232
  fileName: _jsxFileName,
235
- lineNumber: 328,
233
+ lineNumber: 326,
236
234
  columnNumber: 11
237
235
  }
238
236
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -242,7 +240,7 @@ const BackgroundScroll = () => {
242
240
  __self: void 0,
243
241
  __source: {
244
242
  fileName: _jsxFileName,
245
- lineNumber: 336,
243
+ lineNumber: 334,
246
244
  columnNumber: 13
247
245
  }
248
246
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -253,7 +251,7 @@ const BackgroundScroll = () => {
253
251
  __self: void 0,
254
252
  __source: {
255
253
  fileName: _jsxFileName,
256
- lineNumber: 341,
254
+ lineNumber: 339,
257
255
  columnNumber: 15
258
256
  }
259
257
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -263,7 +261,7 @@ const BackgroundScroll = () => {
263
261
  __self: void 0,
264
262
  __source: {
265
263
  fileName: _jsxFileName,
266
- lineNumber: 354,
264
+ lineNumber: 352,
267
265
  columnNumber: 17
268
266
  }
269
267
  }))), /*#__PURE__*/_react.default.createElement("div", {
@@ -272,7 +270,7 @@ const BackgroundScroll = () => {
272
270
  __self: void 0,
273
271
  __source: {
274
272
  fileName: _jsxFileName,
275
- lineNumber: 368,
273
+ lineNumber: 366,
276
274
  columnNumber: 13
277
275
  }
278
276
  }, "Background Scrub")))), /*#__PURE__*/_react.default.createElement("div", {
@@ -280,7 +278,7 @@ const BackgroundScroll = () => {
280
278
  __self: void 0,
281
279
  __source: {
282
280
  fileName: _jsxFileName,
283
- lineNumber: 374,
281
+ lineNumber: 372,
284
282
  columnNumber: 7
285
283
  }
286
284
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -288,7 +286,7 @@ const BackgroundScroll = () => {
288
286
  __self: void 0,
289
287
  __source: {
290
288
  fileName: _jsxFileName,
291
- lineNumber: 375,
289
+ lineNumber: 373,
292
290
  columnNumber: 9
293
291
  }
294
292
  }, /*#__PURE__*/_react.default.createElement(_controls.SelectInput, {
@@ -302,7 +300,7 @@ const BackgroundScroll = () => {
302
300
  __self: void 0,
303
301
  __source: {
304
302
  fileName: _jsxFileName,
305
- lineNumber: 376,
303
+ lineNumber: 374,
306
304
  columnNumber: 11
307
305
  }
308
306
  }), /*#__PURE__*/_react.default.createElement(_controls.SelectInput, {
@@ -316,7 +314,7 @@ const BackgroundScroll = () => {
316
314
  __self: void 0,
317
315
  __source: {
318
316
  fileName: _jsxFileName,
319
- lineNumber: 385,
317
+ lineNumber: 383,
320
318
  columnNumber: 11
321
319
  }
322
320
  }), /*#__PURE__*/_react.default.createElement(_controls.SelectInput, {
@@ -334,7 +332,7 @@ const BackgroundScroll = () => {
334
332
  __self: void 0,
335
333
  __source: {
336
334
  fileName: _jsxFileName,
337
- lineNumber: 397,
335
+ lineNumber: 395,
338
336
  columnNumber: 11
339
337
  }
340
338
  })), /*#__PURE__*/_react.default.createElement("div", {
@@ -342,7 +340,7 @@ const BackgroundScroll = () => {
342
340
  __self: void 0,
343
341
  __source: {
344
342
  fileName: _jsxFileName,
345
- lineNumber: 428,
343
+ lineNumber: 426,
346
344
  columnNumber: 9
347
345
  }
348
346
  }, Object.entries(schema[selectedRange]).sort(([a], [b]) => {
@@ -362,7 +360,7 @@ const BackgroundScroll = () => {
362
360
  __self: void 0,
363
361
  __source: {
364
362
  fileName: _jsxFileName,
365
- lineNumber: 440,
363
+ lineNumber: 438,
366
364
  columnNumber: 15
367
365
  }
368
366
  }))))));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_fizban","_index","_controls","_playgroundModule","_backgroundScroll","_playgroundCommon","_effectsKit","_jsxFileName","_default","exports","default","title","effectToClassMap","BgParallax","styles","bgParallax","BgReveal","bgReveal","BgFake3D","bgFakeThreeD","BgSkew","bgSkew","BgRotate","bgRotate","BgPan","bgPan","ImageParallax","imageParallax","BgZoomIn","bgZoomIn","BgZoomOut","bgZoomOut","effectToCssVars","params","Math","tan","Number","angle","PI","cos","sin","speed","getCssVars","name","styleMapper","_","getEffectFullName","direction","BackgroundScroll","_bgAnimations","siteRef","React","useRef","compRefs","stageRef","animationGroupRefs","animationSceneRefs","scrollRefs","attachment","useState","schemaEditor","setSchemaEditor","selectedRange","setSelectedRange","bgAnimations","Object","fromEntries","getPresets","CONFIG","schemaMapper","bgScrub","map","preset","schema","range","useEffect","setData","mapSchemaToDefaultData","animName","implementedAnimations","keys","defs","filter","animationName","setAnimName","data","handleControlChange","value","currentData","cleanContainerRules","styleSheet","document","styleSheets","cssRules","i","length","cssText","startsWith","deleteRule","insertBgRotateContainerRules","insertRule","sqrt","pow","animateBg","el","animationScene","animationGroup","scroll","easing","window","ViewTimeline","_animationGroup","cancel","getWebAnimation","id","type","namedEffect","fill","iterations","componentId","element","trigger","play","_scroll","getScrubScene","startOffset","offset","endOffset","destroy","ScrollLib","root","current","observeViewportEntry","scenes","start","forEach","elId","_document$getElementB","getElementById","getAnimations","a","createElement","className","stage","scrollStage","ref","__self","__source","fileName","lineNumber","columnNumber","components","style","bgComponent","bgComponentTwo","imageComponent","key","bgLayer","bgMedia","bgImage","content","panels","globalControls","SelectInput","onChange","event","target","options","mainSelect","enum","includes","controls","entries","sort","b","controlProps","Control","_extends2","label","_e"],"sources":["../../../src/playground/animationMotionBgScroll.stories.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\nimport { Scroll as ScrollLib } from 'fizban';\n\nimport {\n AnimationGroup,\n BackgroundScrollAnimation,\n getWebAnimation,\n getScrubScene,\n} from '../index';\nimport { Control, SelectInput } from './controls';\nimport styles from './playground.module.scss';\nimport { backgroundScrollAnimations as defs } from '../library/backgroundScroll';\n\nimport {\n mapSchemaToDefaultData,\n SchemaEditor,\n schemaMapper,\n} from './playground-common';\n\nimport {\n getPresets,\n CONFIG,\n AllEffectsNames,\n OneOfBgScrubEffects,\n SchemaValues,\n ScrollEffectConfig,\n} from '@wix/effects-kit';\n\nimport type { Meta } from '@wix/yoshi-storybook-dependencies';\nimport type { EffectScrollRange } from '../index';\n\nexport default {\n title: 'Animation Playground/Background Scroll',\n} as Meta;\n\nconst effectToClassMap = {\n BgParallax: styles.bgParallax,\n BgReveal: styles.bgReveal,\n BgFake3D: styles.bgFakeThreeD,\n BgSkew: styles.bgSkew,\n BgRotate: styles.bgRotate,\n BgPan: styles.bgPan,\n ImageParallax: styles.imageParallax,\n BgZoomIn: styles.bgZoomIn,\n BgZoomOut: styles.bgZoomOut,\n};\n\nconst effectToCssVars = {\n BgSkew: (params: any) => ({\n '--tan-angle': `${Math.tan((Number(params.angle || 20) * Math.PI) / 180)}`,\n }),\n BgRotate: (params: any) => ({\n '--cos-angle': `${Math.cos((Number(params.angle || 22) * Math.PI) / 180)}`,\n '--sin-angle': `${Math.sin((Number(params.angle || 22) * Math.PI) / 180)}`,\n }),\n BgPan: (params: any) => ({\n '--speed': `${Number(params.speed || 0.2)}`,\n }),\n ImageParallax: (params: any) => ({\n '--speed': `${Number(params.speed || 1.5)}`,\n }),\n};\n\nfunction getCssVars(\n name: BackgroundScrollAnimation['type'],\n params: any,\n): CSSProperties {\n const styleMapper =\n effectToCssVars[name as keyof typeof effectToCssVars] || ((_) => {});\n return styleMapper(params) as CSSProperties;\n}\n\nfunction getEffectFullName(\n name: BackgroundScrollAnimation['type'],\n params: any,\n): string {\n return name !== 'BgZoom'\n ? name\n : params.direction === 'in'\n ? 'BgZoomIn'\n : 'BgZoomOut';\n}\nexport const BackgroundScroll: React.FC<any> = () => {\n const siteRef = React.useRef<HTMLDivElement>(null);\n\n const compRefs = React.useRef<HTMLDivElement[]>([]);\n\n const stageRef = React.useRef<HTMLDivElement>(null);\n\n const animationGroupRefs = React.useRef<AnimationGroup[]>([]);\n const animationSceneRefs = React.useRef<ReturnType<typeof getScrubScene>[]>(\n [],\n );\n const scrollRefs = React.useRef<(typeof ScrollLib)[]>([]);\n\n const [attachment] = React.useState<string>('scroll');\n\n const [schemaEditor, setSchemaEditor] =\n React.useState<SchemaEditor>('responsive');\n\n const [selectedRange, setSelectedRange] =\n React.useState<EffectScrollRange>('continuous');\n\n const bgAnimations = Object.fromEntries(\n getPresets(\n CONFIG[schemaMapper[schemaEditor]].bgScrub,\n ['background', 'image'],\n true,\n ).map((preset) => [\n preset.name,\n {\n schema: preset.schema,\n range: (preset as ScrollEffectConfig<OneOfBgScrubEffects>).range,\n },\n ]),\n ) as Record<AllEffectsNames, ScrollEffectConfig<OneOfBgScrubEffects>>;\n\n React.useEffect(() => {\n setData(\n mapSchemaToDefaultData(\n bgAnimations[animName].schema[\n selectedRange\n ] as ScrollEffectConfig<OneOfBgScrubEffects>['schema'][EffectScrollRange],\n schemaEditor,\n ),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [schemaEditor, selectedRange]);\n\n const implementedAnimations = Object.keys(defs).filter(\n (animationName) => bgAnimations[animationName as keyof typeof defs],\n ) as AllEffectsNames[];\n\n const [animName, setAnimName] = React.useState<keyof typeof defs>(\n implementedAnimations[0] as keyof typeof defs,\n );\n\n const schema = (bgAnimations[animName].schema ||\n {}) as ScrollEffectConfig<OneOfBgScrubEffects>['schema'];\n\n const [data, setData] = React.useState<Record<string, any>>(\n mapSchemaToDefaultData(schema[selectedRange], schemaEditor),\n );\n\n function handleControlChange(name: string, value: any) {\n setData((currentData) => ({\n ...currentData,\n [name]: value,\n }));\n }\n\n function cleanContainerRules() {\n const styleSheet = document.styleSheets[0];\n const { cssRules } = styleSheet;\n for (let i = 0; i < cssRules.length; i++) {\n if (cssRules[i].cssText.startsWith('@container')) {\n styleSheet.deleteRule(i);\n i--;\n }\n }\n }\n\n function insertBgRotateContainerRules(angle: number) {\n const styleSheet = document.styleSheets[0];\n\n /*\n @container (max-aspect-ratio: tan(angle)) {\n #bgMedia-0, #bgMedia-1 {\n height: calc(100% + min(100% * (sqrt(1 + tan(angle)^2) - 1), 100cqw * sin(angle)));\n }\n }\n */\n styleSheet.insertRule(\n `@container (max-aspect-ratio: ${Math.tan(\n (angle * Math.PI) / 180,\n )}) { #bgMedia-0, #bgMedia-1 { height: calc(100% + min(${\n 100 *\n (Math.sqrt(1 + Math.pow(Math.tan((angle * Math.PI) / 180), 2)) - 1)\n }%, ${100 * Math.sin((angle * Math.PI) / 180)}cqw)) } }`,\n 0,\n );\n\n /*\n @container (max-aspect-ratio: tan(90 - angle)) {\n #bgMedia-0, #bgMedia-1 {\n width: calc(100% + min(100% * (sqrt(1 + tan(angle)^2) - 1), 100cqh * sin(angle)));\n }\n }\n */\n styleSheet.insertRule(\n `@container (min-aspect-ratio: ${Math.tan(\n ((90 - angle) * Math.PI) / 180,\n )}) { #bgMedia-0, #bgMedia-1 { width: calc(100% + min(${\n 100 *\n (Math.sqrt(1 + Math.pow(Math.tan((angle * Math.PI) / 180), 2)) - 1)\n }%, ${100 * Math.sin((angle * Math.PI) / 180)}cqh)) } }`,\n 0,\n );\n }\n\n function animateBg(\n el: HTMLElement,\n name: string,\n animationScene: ReturnType<typeof getScrubScene>,\n animationGroup: AnimationGroup,\n scroll: typeof ScrollLib,\n { easing = '', range = selectedRange, ...params },\n ) {\n cleanContainerRules();\n if (name === 'BgRotate') {\n insertBgRotateContainerRules(params.angle || 22);\n }\n if (window.ViewTimeline) {\n animationGroup?.cancel();\n\n animationGroup = getWebAnimation(\n el.id,\n {\n id: '',\n type: 'ScrubAnimationOptions',\n namedEffect: {\n id: '',\n type: name,\n range,\n ...params,\n } as BackgroundScrollAnimation,\n fill: 'both',\n iterations: 1,\n easing,\n },\n { componentId: el.id, element: el, trigger: 'view-progress', id: '' },\n ) as AnimationGroup;\n animationGroup!.play();\n } else {\n animationScene = getScrubScene(\n el.id,\n {\n id: '',\n type: 'ScrubAnimationOptions',\n namedEffect: {\n id: '',\n type: name,\n range,\n ...params,\n } as BackgroundScrollAnimation,\n fill: 'both',\n iterations: 1,\n startOffset: {\n name: 'cover',\n offset: {\n value: 0,\n type: 'percentage',\n },\n },\n endOffset: {\n name: 'cover',\n offset: {\n value: 100,\n type: 'percentage',\n },\n },\n easing,\n },\n { componentId: el.id, element: el, trigger: 'view-progress', id: '' },\n );\n\n scroll?.destroy();\n\n scroll = new ScrollLib({\n root: stageRef.current,\n observeViewportEntry: false,\n scenes: [animationScene],\n });\n scroll.start();\n }\n }\n\n React.useEffect(() => {\n for (let i = 0; i < 2; ++i) {\n animateBg(\n compRefs.current[i]!,\n animName,\n animationSceneRefs.current[i],\n animationGroupRefs.current[i],\n scrollRefs.current[i],\n {\n ...data,\n },\n );\n }\n return () => {\n if (window.ViewTimeline) {\n [\n 'bgLayer-0',\n 'bgLayer-1',\n 'bgMedia-0',\n 'bgMedia-1',\n 'bgImage-0',\n 'bgImage-1',\n ].forEach((elId) => {\n document\n .getElementById(elId)\n ?.getAnimations()\n .forEach((a) => {\n a.cancel();\n });\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animName, data]);\n\n return (\n <div\n className={`${styles.stage} ${styles.scrollStage} ${styles.bgScrub}`}\n ref={stageRef}\n >\n <div\n className={styles.components}\n ref={siteRef}\n style={\n {\n '--attachment': attachment,\n } as CSSProperties\n }\n >\n {[0, 1].map((_, i) => (\n <div\n id={`comp-${i}`}\n className={`${styles.bgComponent} ${\n i ? styles.bgComponentTwo : ''\n } ${animName === 'ImageParallax' ? styles.imageComponent : ''}`}\n ref={(ref: HTMLDivElement | null) => (compRefs.current[i] = ref!)}\n key={`comp-${i}`}\n >\n <div\n id={`bgLayer-${i}`}\n className={styles.bgLayer}\n data-motion-part={`BG_LAYER comp-${i}`}\n >\n <div\n id={`bgMedia-${i}`}\n className={`${styles.bgMedia} ${\n effectToClassMap[\n getEffectFullName(\n animName,\n data,\n ) as keyof typeof effectToClassMap\n ] || ''\n }`}\n data-motion-part={`BG_MEDIA comp-${i}`}\n style={getCssVars(animName || 'BgCloseUp', data)}\n >\n <div\n id={`bgImage-${i}`}\n className={`${styles.bgImage} ${\n effectToClassMap[\n getEffectFullName(\n animName,\n data,\n ) as keyof typeof effectToClassMap\n ] || ''\n }`}\n data-motion-part={`BG_IMG comp-${i}`}\n ></div>\n </div>\n </div>\n <div id=\"content\" className={styles.content}>\n Background Scrub\n </div>\n </div>\n ))}\n </div>\n <div className={styles.panels}>\n <div className={styles.globalControls}>\n <SelectInput\n onChange={(event) => {\n const value: SchemaEditor = event.target.value;\n setSchemaEditor(value);\n }}\n value={schemaEditor}\n options={['desktop', 'mobile', 'responsive']}\n className={styles.mainSelect}\n />\n <SelectInput\n onChange={(event) => {\n const value: EffectScrollRange = event.target.value;\n setSelectedRange(value);\n }}\n value={selectedRange}\n options={\n bgAnimations[animName as AllEffectsNames]?.range\n ?.enum as EffectScrollRange[]\n }\n className={styles.mainSelect}\n />\n <SelectInput\n onChange={(event) => {\n const value = event.target.value;\n setAnimName(value);\n if (\n !bgAnimations[value as typeof animName].schema[selectedRange]\n ) {\n setSelectedRange(\n bgAnimations[value as typeof animName].range.enum![0],\n );\n }\n setData(\n mapSchemaToDefaultData(\n (bgAnimations[value as typeof animName].schema[\n selectedRange\n ] ||\n {}) as ScrollEffectConfig<OneOfBgScrubEffects>['schema'][EffectScrollRange],\n schemaEditor,\n ),\n );\n }}\n value={animName}\n options={\n Object.keys(bgAnimations).map((name) => [\n name,\n implementedAnimations.includes(name as AllEffectsNames),\n ]) as [string, boolean][]\n }\n className={styles.mainSelect}\n />\n </div>\n <div className={styles.controls}>\n {Object.entries(schema[selectedRange]!)\n .sort(([a], [b]) => {\n if (a === 'duration' || (b !== 'duration' && a === 'delay')) {\n return -1;\n }\n if (b === 'allowReplay') {\n return -1;\n }\n return 0;\n })\n .map(([name, controlProps], i) => (\n <Control\n key={`key-control-${i}`}\n {...(controlProps as SchemaValues)}\n value={data[name]}\n label={name}\n onChange={(_e, value) => handleControlChange(name, value)}\n />\n ))}\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_fizban","_index","_controls","_playgroundModule","_backgroundScroll","_playgroundCommon","_effectsKit","_jsxFileName","_default","exports","default","title","effectToClassMap","BgParallax","styles","bgParallax","BgReveal","bgReveal","BgFake3D","bgFakeThreeD","BgSkew","bgSkew","BgRotate","bgRotate","BgPan","bgPan","ImageParallax","imageParallax","BgZoomIn","bgZoomIn","BgZoomOut","bgZoomOut","effectToCssVars","params","Math","tan","Number","angle","PI","cos","sin","speed","getCssVars","name","styleMapper","_","getEffectFullName","direction","BackgroundScroll","_bgAnimations","siteRef","React","useRef","compRefs","stageRef","animationGroupRefs","animationSceneRefs","scrollRefs","attachment","useState","schemaEditor","setSchemaEditor","selectedRange","setSelectedRange","bgAnimations","Object","fromEntries","getPresets","CONFIG","schemaMapper","bgScrub","map","preset","schema","range","useEffect","setData","mapSchemaToDefaultData","animName","implementedAnimations","keys","defs","filter","animationName","setAnimName","data","handleControlChange","value","currentData","cleanContainerRules","styleSheet","document","styleSheets","cssRules","i","length","cssText","startsWith","deleteRule","insertBgRotateContainerRules","insertRule","sqrt","pow","animateBg","el","animationScene","animationGroup","scroll","easing","window","ViewTimeline","_animationGroup","cancel","getWebAnimation","id","namedEffect","type","fill","iterations","componentId","element","trigger","play","_scroll","getScrubScene","startOffset","offset","endOffset","destroy","ScrollLib","root","current","observeViewportEntry","scenes","start","forEach","elId","_document$getElementB","getElementById","getAnimations","a","createElement","className","stage","scrollStage","ref","__self","__source","fileName","lineNumber","columnNumber","components","style","bgComponent","bgComponentTwo","imageComponent","key","bgLayer","bgMedia","bgImage","content","panels","globalControls","SelectInput","onChange","event","target","options","mainSelect","enum","includes","controls","entries","sort","b","controlProps","Control","_extends2","label","_e"],"sources":["../../../src/playground/animationMotionBgScroll.stories.tsx"],"sourcesContent":["import React, { CSSProperties } from 'react';\nimport { Scroll as ScrollLib } from 'fizban';\n\nimport {\n AnimationGroup,\n BackgroundScrollAnimation,\n getWebAnimation,\n getScrubScene,\n} from '../index';\nimport { Control, SelectInput } from './controls';\nimport styles from './playground.module.scss';\nimport { backgroundScrollAnimations as defs } from '../library/backgroundScroll';\n\nimport {\n mapSchemaToDefaultData,\n SchemaEditor,\n schemaMapper,\n} from './playground-common';\n\nimport {\n getPresets,\n CONFIG,\n AllEffectsNames,\n OneOfBgScrubEffects,\n SchemaValues,\n ScrollEffectConfig,\n} from '@wix/effects-kit';\n\nimport type { Meta } from '@wix/yoshi-storybook-dependencies';\nimport type { EffectScrollRange } from '../index';\n\nexport default {\n title: 'Animation Playground/Background Scroll',\n} as Meta;\n\nconst effectToClassMap = {\n BgParallax: styles.bgParallax,\n BgReveal: styles.bgReveal,\n BgFake3D: styles.bgFakeThreeD,\n BgSkew: styles.bgSkew,\n BgRotate: styles.bgRotate,\n BgPan: styles.bgPan,\n ImageParallax: styles.imageParallax,\n BgZoomIn: styles.bgZoomIn,\n BgZoomOut: styles.bgZoomOut,\n};\n\nconst effectToCssVars = {\n BgSkew: (params: any) => ({\n '--tan-angle': `${Math.tan((Number(params.angle || 20) * Math.PI) / 180)}`,\n }),\n BgRotate: (params: any) => ({\n '--cos-angle': `${Math.cos((Number(params.angle || 22) * Math.PI) / 180)}`,\n '--sin-angle': `${Math.sin((Number(params.angle || 22) * Math.PI) / 180)}`,\n }),\n BgPan: (params: any) => ({\n '--speed': `${Number(params.speed || 0.2)}`,\n }),\n ImageParallax: (params: any) => ({\n '--speed': `${Number(params.speed || 1.5)}`,\n }),\n};\n\nfunction getCssVars(\n name: BackgroundScrollAnimation['type'],\n params: any,\n): CSSProperties {\n const styleMapper =\n effectToCssVars[name as keyof typeof effectToCssVars] || ((_) => {});\n return styleMapper(params) as CSSProperties;\n}\n\nfunction getEffectFullName(\n name: BackgroundScrollAnimation['type'],\n params: any,\n): string {\n return name !== 'BgZoom'\n ? name\n : params.direction === 'in'\n ? 'BgZoomIn'\n : 'BgZoomOut';\n}\nexport const BackgroundScroll: React.FC<any> = () => {\n const siteRef = React.useRef<HTMLDivElement>(null);\n\n const compRefs = React.useRef<HTMLDivElement[]>([]);\n\n const stageRef = React.useRef<HTMLDivElement>(null);\n\n const animationGroupRefs = React.useRef<AnimationGroup[]>([]);\n const animationSceneRefs = React.useRef<ReturnType<typeof getScrubScene>[]>(\n [],\n );\n const scrollRefs = React.useRef<(typeof ScrollLib)[]>([]);\n\n const [attachment] = React.useState<string>('scroll');\n\n const [schemaEditor, setSchemaEditor] =\n React.useState<SchemaEditor>('responsive');\n\n const [selectedRange, setSelectedRange] =\n React.useState<EffectScrollRange>('continuous');\n\n const bgAnimations = Object.fromEntries(\n getPresets(\n CONFIG[schemaMapper[schemaEditor]].bgScrub,\n ['background', 'image'],\n true,\n ).map((preset) => [\n preset.name,\n {\n schema: preset.schema,\n range: (preset as ScrollEffectConfig<OneOfBgScrubEffects>).range,\n },\n ]),\n ) as Record<AllEffectsNames, ScrollEffectConfig<OneOfBgScrubEffects>>;\n\n React.useEffect(() => {\n setData(\n mapSchemaToDefaultData(\n bgAnimations[animName].schema[\n selectedRange\n ] as ScrollEffectConfig<OneOfBgScrubEffects>['schema'][EffectScrollRange],\n schemaEditor,\n ),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [schemaEditor, selectedRange]);\n\n const implementedAnimations = Object.keys(defs).filter(\n (animationName) => bgAnimations[animationName as keyof typeof defs],\n ) as AllEffectsNames[];\n\n const [animName, setAnimName] = React.useState<keyof typeof defs>(\n implementedAnimations[0] as keyof typeof defs,\n );\n\n const schema = (bgAnimations[animName].schema ||\n {}) as ScrollEffectConfig<OneOfBgScrubEffects>['schema'];\n\n const [data, setData] = React.useState<Record<string, any>>(\n mapSchemaToDefaultData(schema[selectedRange], schemaEditor),\n );\n\n function handleControlChange(name: string, value: any) {\n setData((currentData) => ({\n ...currentData,\n [name]: value,\n }));\n }\n\n function cleanContainerRules() {\n const styleSheet = document.styleSheets[0];\n const { cssRules } = styleSheet;\n for (let i = 0; i < cssRules.length; i++) {\n if (cssRules[i].cssText.startsWith('@container')) {\n styleSheet.deleteRule(i);\n i--;\n }\n }\n }\n\n function insertBgRotateContainerRules(angle: number) {\n const styleSheet = document.styleSheets[0];\n\n /*\n @container (max-aspect-ratio: tan(angle)) {\n #bgMedia-0, #bgMedia-1 {\n height: calc(100% + min(100% * (sqrt(1 + tan(angle)^2) - 1), 100cqw * sin(angle)));\n }\n }\n */\n styleSheet.insertRule(\n `@container (max-aspect-ratio: ${Math.tan(\n (angle * Math.PI) / 180,\n )}) { #bgMedia-0, #bgMedia-1 { height: calc(100% + min(${\n 100 *\n (Math.sqrt(1 + Math.pow(Math.tan((angle * Math.PI) / 180), 2)) - 1)\n }%, ${100 * Math.sin((angle * Math.PI) / 180)}cqw)) } }`,\n 0,\n );\n\n /*\n @container (max-aspect-ratio: tan(90 - angle)) {\n #bgMedia-0, #bgMedia-1 {\n width: calc(100% + min(100% * (sqrt(1 + tan(angle)^2) - 1), 100cqh * sin(angle)));\n }\n }\n */\n styleSheet.insertRule(\n `@container (min-aspect-ratio: ${Math.tan(\n ((90 - angle) * Math.PI) / 180,\n )}) { #bgMedia-0, #bgMedia-1 { width: calc(100% + min(${\n 100 *\n (Math.sqrt(1 + Math.pow(Math.tan((angle * Math.PI) / 180), 2)) - 1)\n }%, ${100 * Math.sin((angle * Math.PI) / 180)}cqh)) } }`,\n 0,\n );\n }\n\n function animateBg(\n el: HTMLElement,\n name: string,\n animationScene: ReturnType<typeof getScrubScene>,\n animationGroup: AnimationGroup,\n scroll: typeof ScrollLib,\n { easing = '', range = selectedRange, ...params },\n ) {\n cleanContainerRules();\n if (name === 'BgRotate') {\n insertBgRotateContainerRules(params.angle || 22);\n }\n if (window.ViewTimeline) {\n animationGroup?.cancel();\n\n animationGroup = getWebAnimation(\n el.id,\n {\n id: '',\n namedEffect: {\n id: '',\n type: name,\n range,\n ...params,\n } as BackgroundScrollAnimation,\n fill: 'both',\n iterations: 1,\n easing,\n },\n { componentId: el.id, element: el, trigger: 'view-progress', id: '' },\n ) as AnimationGroup;\n animationGroup!.play();\n } else {\n animationScene = getScrubScene(\n el.id,\n {\n id: '',\n namedEffect: {\n id: '',\n type: name,\n range,\n ...params,\n } as BackgroundScrollAnimation,\n fill: 'both',\n iterations: 1,\n startOffset: {\n name: 'cover',\n offset: {\n value: 0,\n type: 'percentage',\n },\n },\n endOffset: {\n name: 'cover',\n offset: {\n value: 100,\n type: 'percentage',\n },\n },\n easing,\n },\n { componentId: el.id, element: el, trigger: 'view-progress', id: '' },\n );\n\n scroll?.destroy();\n\n scroll = new ScrollLib({\n root: stageRef.current,\n observeViewportEntry: false,\n scenes: [animationScene],\n });\n scroll.start();\n }\n }\n\n React.useEffect(() => {\n for (let i = 0; i < 2; ++i) {\n animateBg(\n compRefs.current[i]!,\n animName,\n animationSceneRefs.current[i],\n animationGroupRefs.current[i],\n scrollRefs.current[i],\n {\n ...data,\n },\n );\n }\n return () => {\n if (window.ViewTimeline) {\n [\n 'bgLayer-0',\n 'bgLayer-1',\n 'bgMedia-0',\n 'bgMedia-1',\n 'bgImage-0',\n 'bgImage-1',\n ].forEach((elId) => {\n document\n .getElementById(elId)\n ?.getAnimations()\n .forEach((a) => {\n a.cancel();\n });\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animName, data]);\n\n return (\n <div\n className={`${styles.stage} ${styles.scrollStage} ${styles.bgScrub}`}\n ref={stageRef}\n >\n <div\n className={styles.components}\n ref={siteRef}\n style={\n {\n '--attachment': attachment,\n } as CSSProperties\n }\n >\n {[0, 1].map((_, i) => (\n <div\n id={`comp-${i}`}\n className={`${styles.bgComponent} ${\n i ? styles.bgComponentTwo : ''\n } ${animName === 'ImageParallax' ? styles.imageComponent : ''}`}\n ref={(ref: HTMLDivElement | null) => (compRefs.current[i] = ref!)}\n key={`comp-${i}`}\n >\n <div\n id={`bgLayer-${i}`}\n className={styles.bgLayer}\n data-motion-part={`BG_LAYER comp-${i}`}\n >\n <div\n id={`bgMedia-${i}`}\n className={`${styles.bgMedia} ${\n effectToClassMap[\n getEffectFullName(\n animName,\n data,\n ) as keyof typeof effectToClassMap\n ] || ''\n }`}\n data-motion-part={`BG_MEDIA comp-${i}`}\n style={getCssVars(animName || 'BgCloseUp', data)}\n >\n <div\n id={`bgImage-${i}`}\n className={`${styles.bgImage} ${\n effectToClassMap[\n getEffectFullName(\n animName,\n data,\n ) as keyof typeof effectToClassMap\n ] || ''\n }`}\n data-motion-part={`BG_IMG comp-${i}`}\n ></div>\n </div>\n </div>\n <div id=\"content\" className={styles.content}>\n Background Scrub\n </div>\n </div>\n ))}\n </div>\n <div className={styles.panels}>\n <div className={styles.globalControls}>\n <SelectInput\n onChange={(event) => {\n const value: SchemaEditor = event.target.value;\n setSchemaEditor(value);\n }}\n value={schemaEditor}\n options={['desktop', 'mobile', 'responsive']}\n className={styles.mainSelect}\n />\n <SelectInput\n onChange={(event) => {\n const value: EffectScrollRange = event.target.value;\n setSelectedRange(value);\n }}\n value={selectedRange}\n options={\n bgAnimations[animName as AllEffectsNames]?.range\n ?.enum as EffectScrollRange[]\n }\n className={styles.mainSelect}\n />\n <SelectInput\n onChange={(event) => {\n const value = event.target.value;\n setAnimName(value);\n if (\n !bgAnimations[value as typeof animName].schema[selectedRange]\n ) {\n setSelectedRange(\n bgAnimations[value as typeof animName].range.enum![0],\n );\n }\n setData(\n mapSchemaToDefaultData(\n (bgAnimations[value as typeof animName].schema[\n selectedRange\n ] ||\n {}) as ScrollEffectConfig<OneOfBgScrubEffects>['schema'][EffectScrollRange],\n schemaEditor,\n ),\n );\n }}\n value={animName}\n options={\n Object.keys(bgAnimations).map((name) => [\n name,\n implementedAnimations.includes(name as AllEffectsNames),\n ]) as [string, boolean][]\n }\n className={styles.mainSelect}\n />\n </div>\n <div className={styles.controls}>\n {Object.entries(schema[selectedRange]!)\n .sort(([a], [b]) => {\n if (a === 'duration' || (b !== 'duration' && a === 'delay')) {\n return -1;\n }\n if (b === 'allowReplay') {\n return -1;\n }\n return 0;\n })\n .map(([name, controlProps], i) => (\n <Control\n key={`key-control-${i}`}\n {...(controlProps as SchemaValues)}\n value={data[name]}\n label={name}\n onChange={(_e, value) => handleControlChange(name, value)}\n />\n ))}\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}