react-native-reanimated 3.13.0-rc.2 → 3.13.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 (153) hide show
  1. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.cpp +8 -2
  2. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.h +3 -1
  3. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp +58 -33
  4. package/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.h +19 -9
  5. package/Common/cpp/LayoutAnimations/LayoutAnimationsUtils.cpp +11 -7
  6. package/Common/cpp/LayoutAnimations/LayoutAnimationsUtils.h +14 -6
  7. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +1 -1
  8. package/Common/cpp/NativeModules/NativeReanimatedModule.h +1 -1
  9. package/Common/cpp/ReanimatedRuntime/WorkletRuntime.cpp +1 -1
  10. package/Common/cpp/ReanimatedRuntime/WorkletRuntime.h +1 -1
  11. package/Common/cpp/ReanimatedRuntime/WorkletRuntimeDecorator.cpp +6 -6
  12. package/Common/cpp/SharedItems/Shareables.cpp +25 -8
  13. package/Common/cpp/SharedItems/Shareables.h +12 -7
  14. package/android/CMakeLists.txt +1 -1
  15. package/android/src/main/cpp/LayoutAnimations.cpp +14 -0
  16. package/android/src/main/cpp/LayoutAnimations.h +5 -0
  17. package/android/src/main/cpp/NativeProxy.cpp +10 -0
  18. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +10 -2
  19. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -0
  20. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/NativeMethodsHolder.java +2 -0
  21. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +10 -0
  22. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/ScreensHelper.java +83 -0
  23. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java +130 -31
  24. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/Snapshot.java +36 -0
  25. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/TabNavigatorObserver.java +128 -0
  26. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +8 -0
  27. package/android/src/reactNativeVersionPatch/RuntimeExecutor/73/com/swmansion/reanimated/NativeProxy.java +6 -0
  28. package/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java +6 -0
  29. package/apple/LayoutReanimation/REAAnimationsManager.h +2 -0
  30. package/apple/LayoutReanimation/REAAnimationsManager.m +5 -0
  31. package/apple/LayoutReanimation/REAScreensHelper.h +6 -0
  32. package/apple/LayoutReanimation/REAScreensHelper.m +92 -4
  33. package/apple/LayoutReanimation/REASharedTransitionManager.h +1 -0
  34. package/apple/LayoutReanimation/REASharedTransitionManager.m +254 -55
  35. package/apple/native/NativeProxy.mm +12 -0
  36. package/lib/module/Colors.js +5 -2
  37. package/lib/module/Colors.js.map +1 -1
  38. package/lib/module/UpdateProps.js +8 -8
  39. package/lib/module/UpdateProps.js.map +1 -1
  40. package/lib/module/ViewDescriptorsSet.js +0 -27
  41. package/lib/module/ViewDescriptorsSet.js.map +1 -1
  42. package/lib/module/createAnimatedComponent/InlinePropManager.js +1 -7
  43. package/lib/module/createAnimatedComponent/InlinePropManager.js.map +1 -1
  44. package/lib/module/createAnimatedComponent/PropsFilter.js +1 -6
  45. package/lib/module/createAnimatedComponent/PropsFilter.js.map +1 -1
  46. package/lib/module/createAnimatedComponent/commonTypes.js.map +1 -1
  47. package/lib/module/createAnimatedComponent/createAnimatedComponent.js +1 -5
  48. package/lib/module/createAnimatedComponent/createAnimatedComponent.js.map +1 -1
  49. package/lib/module/hook/commonTypes.js.map +1 -1
  50. package/lib/module/hook/useAnimatedStyle.js +12 -15
  51. package/lib/module/hook/useAnimatedStyle.js.map +1 -1
  52. package/lib/module/hook/useFrameCallback.js +2 -2
  53. package/lib/module/hook/useFrameCallback.js.map +1 -1
  54. package/lib/module/hook/useWorkletCallback.js +1 -1
  55. package/lib/module/hook/useWorkletCallback.js.map +1 -1
  56. package/lib/module/js-reanimated/index.js +3 -28
  57. package/lib/module/js-reanimated/index.js.map +1 -1
  58. package/lib/module/js-reanimated/webUtils.js +9 -0
  59. package/lib/module/js-reanimated/webUtils.js.map +1 -0
  60. package/lib/module/js-reanimated/webUtils.web.js +25 -0
  61. package/lib/module/js-reanimated/webUtils.web.js.map +1 -0
  62. package/lib/module/layoutReanimation/defaultTransitions/CurvedTransition.js +1 -0
  63. package/lib/module/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  64. package/lib/module/layoutReanimation/defaultTransitions/EntryExitTransition.js +1 -0
  65. package/lib/module/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  66. package/lib/module/layoutReanimation/defaultTransitions/FadingTransition.js +11 -10
  67. package/lib/module/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  68. package/lib/module/layoutReanimation/defaultTransitions/JumpingTransition.js +1 -0
  69. package/lib/module/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  70. package/lib/module/layoutReanimation/defaultTransitions/LinearTransition.js +1 -0
  71. package/lib/module/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  72. package/lib/module/layoutReanimation/defaultTransitions/SequencedTransition.js +1 -0
  73. package/lib/module/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  74. package/lib/module/layoutReanimation/web/Easing.web.js +14 -0
  75. package/lib/module/layoutReanimation/web/Easing.web.js.map +1 -0
  76. package/lib/module/layoutReanimation/web/animationParser.js +16 -1
  77. package/lib/module/layoutReanimation/web/animationParser.js.map +1 -1
  78. package/lib/module/layoutReanimation/web/animationsManager.js +25 -8
  79. package/lib/module/layoutReanimation/web/animationsManager.js.map +1 -1
  80. package/lib/module/layoutReanimation/web/componentStyle.js +12 -16
  81. package/lib/module/layoutReanimation/web/componentStyle.js.map +1 -1
  82. package/lib/module/layoutReanimation/web/componentUtils.js +53 -18
  83. package/lib/module/layoutReanimation/web/componentUtils.js.map +1 -1
  84. package/lib/module/layoutReanimation/web/config.js +1 -12
  85. package/lib/module/layoutReanimation/web/config.js.map +1 -1
  86. package/lib/module/layoutReanimation/web/createAnimation.js +21 -2
  87. package/lib/module/layoutReanimation/web/createAnimation.js.map +1 -1
  88. package/lib/module/layoutReanimation/web/domUtils.js +6 -5
  89. package/lib/module/layoutReanimation/web/domUtils.js.map +1 -1
  90. package/lib/module/layoutReanimation/web/transition/Jumping.web.js +43 -0
  91. package/lib/module/layoutReanimation/web/transition/Jumping.web.js.map +1 -0
  92. package/lib/module/platform-specific/RNRenderer.web.js +1 -1
  93. package/lib/module/platform-specific/RNRenderer.web.js.map +1 -1
  94. package/lib/module/platform-specific/jsVersion.js +1 -1
  95. package/lib/module/platform-specific/jsVersion.js.map +1 -1
  96. package/lib/module/platformFunctions/setNativeProps.web.js +1 -3
  97. package/lib/module/platformFunctions/setNativeProps.web.js.map +1 -1
  98. package/lib/typescript/UpdateProps.d.ts +2 -3
  99. package/lib/typescript/ViewDescriptorsSet.d.ts +0 -9
  100. package/lib/typescript/createAnimatedComponent/commonTypes.d.ts +1 -2
  101. package/lib/typescript/hook/commonTypes.d.ts +3 -6
  102. package/lib/typescript/hook/useWorkletCallback.d.ts +1 -1
  103. package/lib/typescript/js-reanimated/index.d.ts +2 -4
  104. package/lib/typescript/js-reanimated/webUtils.d.ts +3 -0
  105. package/lib/typescript/js-reanimated/webUtils.web.d.ts +3 -0
  106. package/lib/typescript/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +1 -0
  107. package/lib/typescript/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +1 -0
  108. package/lib/typescript/layoutReanimation/defaultTransitions/FadingTransition.d.ts +1 -0
  109. package/lib/typescript/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +1 -0
  110. package/lib/typescript/layoutReanimation/defaultTransitions/LinearTransition.d.ts +1 -0
  111. package/lib/typescript/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +1 -0
  112. package/lib/typescript/layoutReanimation/web/Easing.web.d.ts +10 -0
  113. package/lib/typescript/layoutReanimation/web/animationParser.d.ts +1 -2
  114. package/lib/typescript/layoutReanimation/web/componentStyle.d.ts +1 -1
  115. package/lib/typescript/layoutReanimation/web/componentUtils.d.ts +4 -3
  116. package/lib/typescript/layoutReanimation/web/config.d.ts +5 -12
  117. package/lib/typescript/layoutReanimation/web/createAnimation.d.ts +2 -0
  118. package/lib/typescript/layoutReanimation/web/domUtils.d.ts +1 -1
  119. package/lib/typescript/layoutReanimation/web/transition/Jumping.web.d.ts +29 -0
  120. package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
  121. package/package.json +4 -3
  122. package/src/Colors.ts +5 -2
  123. package/src/UpdateProps.ts +8 -11
  124. package/src/ViewDescriptorsSet.ts +0 -42
  125. package/src/createAnimatedComponent/InlinePropManager.ts +2 -8
  126. package/src/createAnimatedComponent/PropsFilter.tsx +0 -4
  127. package/src/createAnimatedComponent/commonTypes.ts +1 -2
  128. package/src/createAnimatedComponent/createAnimatedComponent.tsx +1 -5
  129. package/src/hook/commonTypes.ts +3 -6
  130. package/src/hook/useAnimatedStyle.ts +9 -26
  131. package/src/hook/useFrameCallback.ts +2 -2
  132. package/src/hook/useWorkletCallback.ts +1 -1
  133. package/src/js-reanimated/index.ts +11 -37
  134. package/src/js-reanimated/webUtils.ts +8 -0
  135. package/src/js-reanimated/webUtils.web.ts +27 -0
  136. package/src/layoutReanimation/defaultTransitions/CurvedTransition.ts +2 -0
  137. package/src/layoutReanimation/defaultTransitions/EntryExitTransition.ts +2 -0
  138. package/src/layoutReanimation/defaultTransitions/FadingTransition.ts +12 -10
  139. package/src/layoutReanimation/defaultTransitions/JumpingTransition.ts +2 -0
  140. package/src/layoutReanimation/defaultTransitions/LinearTransition.ts +2 -0
  141. package/src/layoutReanimation/defaultTransitions/SequencedTransition.ts +2 -0
  142. package/src/layoutReanimation/web/Easing.web.ts +15 -0
  143. package/src/layoutReanimation/web/animationParser.ts +30 -2
  144. package/src/layoutReanimation/web/animationsManager.ts +45 -12
  145. package/src/layoutReanimation/web/componentStyle.ts +13 -16
  146. package/src/layoutReanimation/web/componentUtils.ts +68 -25
  147. package/src/layoutReanimation/web/config.ts +5 -14
  148. package/src/layoutReanimation/web/createAnimation.ts +38 -4
  149. package/src/layoutReanimation/web/domUtils.ts +15 -5
  150. package/src/layoutReanimation/web/transition/Jumping.web.ts +44 -0
  151. package/src/platform-specific/RNRenderer.web.ts +1 -1
  152. package/src/platform-specific/jsVersion.ts +1 -1
  153. package/src/platformFunctions/setNativeProps.web.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","obj","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","t","_toPrimitive","r","e","Symbol","toPrimitive","TypeError","String","Number","React","findNodeHandle","Platform","invariant","adaptViewConfig","RNRenderer","enableLayoutAnimations","SharedTransition","LayoutAnimationType","getShadowNodeWrapperFromRef","removeFromPropsRegistry","getReduceMotionFromConfig","maybeBuild","SkipEnteringContext","JSPropsUpdater","flattenArray","setAndForwardRef","isFabric","isJest","isWeb","shouldBeUseWeb","InlinePropManager","PropsFilter","startWebLayoutAnimation","tryActivateLayoutTransition","configureWebLayoutAnimations","getReducedMotionFromConfig","saveSnapshot","updateLayoutAnimations","addHTMLMutationObserver","getViewInfo","NativeEventsManager","IS_WEB","onlyAnimatedStyles","styles","filter","style","viewDescriptors","id","createAnimatedComponent","Component","options","isReactComponent","name","AnimatedComponent","constructor","props","getForwardedRef","forwardedRef","setLocalRef","ref","tag","_componentViewTag","layout","entering","exiting","sharedTransitionTag","_this$context","_configureSharedTransition","reduceMotionInExiting","getReduceMotion","_this$props","EXITING","displayName","skipEntering","context","current","_this$props2","ENTERING","_component","jestAnimatedStyle","_this$props3","reanimatedID","componentDidMount","_this$_NativeEventsMa","_getComponentViewTag","_NativeEventsManager","attachEvents","_jsPropsUpdater","addOnJSPropsChangeListener","_attachAnimatedStyles","_InlinePropManager","attachInlineProps","_getViewInfo","_configureLayoutTransition","_isFirstRender","componentWillUnmount","_this$_NativeEventsMa2","_this$_sharedElementT","detachEvents","removeOnJSPropsChangeListener","_detachStyles","detachInlineProps","_sharedElementTransition","unregisterTransition","_this$props4","viewTag","_styles","viewsRef","remove","_this$props$animatedP","animatedProps","_updateFromNative","setNativeProps","_this$_component","_this$_component$setN","_this$_component2","_getAnimatableRef","_ref","_viewInfo","undefined","viewName","shadowNodeWrapper","viewConfig","component","getAnimatableRef","hostInstance","findHostInstance_DEPRECATED","Error","viewInfo","_this$props$animatedP2","_this$props$animatedP3","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","some","forEach","add","initial","componentDidUpdate","prevProps","_prevState","snapshot","_this$_NativeEventsMa3","oldLayout","updateEvents","LAYOUT","isUnmounting","_this$_sharedElementT2","sharedElementTransition","sharedTransitionStyle","registerTransition","getSnapshotBeforeUpdate","_this$_component3","getBoundingClientRect","render","_this$context2","filteredProps","_PropsFilter","filterNonAnimatedProps","visibility","platformProps","select","web","default","collapsable","nativeID","createElement","_setComponentRef","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["'use strict';\nimport type {\n Component,\n ComponentClass,\n ComponentType,\n FunctionComponent,\n MutableRefObject,\n} from 'react';\nimport React from 'react';\nimport { findNodeHandle, Platform } from 'react-native';\nimport '../layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from '../ConfigHelper';\nimport { RNRenderer } from '../platform-specific/RNRenderer';\nimport { enableLayoutAnimations } from '../core';\nimport { SharedTransition, LayoutAnimationType } from '../layoutReanimation';\nimport type { StyleProps, ShadowNodeWrapper } from '../commonTypes';\nimport { getShadowNodeWrapperFromRef } from '../fabricUtils';\nimport { removeFromPropsRegistry } from '../PropsRegistry';\nimport { getReduceMotionFromConfig } from '../animation/util';\nimport { maybeBuild } from '../animationBuilder';\nimport { SkipEnteringContext } from '../component/LayoutAnimationConfig';\nimport type { AnimateProps } from '../helperTypes';\nimport JSPropsUpdater from './JSPropsUpdater';\nimport type {\n AnimatedComponentProps,\n AnimatedProps,\n InitialComponentProps,\n AnimatedComponentRef,\n IAnimatedComponentInternal,\n ViewInfo,\n INativeEventsManager,\n} from './commonTypes';\nimport { flattenArray } from './utils';\nimport setAndForwardRef from './setAndForwardRef';\nimport { isFabric, isJest, isWeb, shouldBeUseWeb } from '../PlatformChecker';\nimport { InlinePropManager } from './InlinePropManager';\nimport { PropsFilter } from './PropsFilter';\nimport {\n startWebLayoutAnimation,\n tryActivateLayoutTransition,\n configureWebLayoutAnimations,\n getReducedMotionFromConfig,\n saveSnapshot,\n} from '../layoutReanimation/web';\nimport { updateLayoutAnimations } from '../UpdateLayoutAnimations';\nimport type { CustomConfig } from '../layoutReanimation/web/config';\nimport type { FlatList, FlatListProps } from 'react-native';\nimport { addHTMLMutationObserver } from '../layoutReanimation/web/domUtils';\nimport { getViewInfo } from './getViewInfo';\nimport { NativeEventsManager } from './NativeEventsManager';\n\nconst IS_WEB = isWeb();\n\nif (IS_WEB) {\n configureWebLayoutAnimations();\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]): StyleProps[] {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\ntype Options<P> = {\n setNativeProps: (ref: AnimatedComponentRef, props: P) => void;\n};\n\n/**\n * Lets you create an Animated version of any React Native component.\n *\n * @param component - The component you want to make animatable.\n * @returns A component that Reanimated is capable of animating.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/core/createAnimatedComponent\n */\n\n// Don't change the order of overloads, since such a change breaks current behavior\nexport function createAnimatedComponent<P extends object>(\n component: FunctionComponent<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>>;\n\nexport function createAnimatedComponent<P extends object>(\n component: ComponentClass<P>,\n options?: Options<P>\n): ComponentClass<AnimateProps<P>>;\n\nexport function createAnimatedComponent<P extends object>(\n // Actually ComponentType<P = {}> = ComponentClass<P> | FunctionComponent<P> but we need this overload too\n // since some external components (like FastImage) are typed just as ComponentType\n component: ComponentType<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>> | ComponentClass<AnimateProps<P>>;\n\n/**\n * @deprecated Please use `Animated.FlatList` component instead of calling `Animated.createAnimatedComponent(FlatList)` manually.\n */\n// @ts-ignore This is required to create this overload, since type of createAnimatedComponent is incorrect and doesn't include typeof FlatList\nexport function createAnimatedComponent(\n component: typeof FlatList<unknown>,\n options?: Options<any>\n): ComponentClass<AnimateProps<FlatListProps<unknown>>>;\n\nlet id = 0;\n\nexport function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): any {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n `Looks like you're passing a function component \\`${Component.name}\\` to \\`createAnimatedComponent\\` function which supports only class components. Please wrap your function component with \\`React.forwardRef()\\` or use a class component instead.`\n );\n\n class AnimatedComponent\n extends React.Component<AnimatedComponentProps<InitialComponentProps>>\n implements IAnimatedComponentInternal\n {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _componentViewTag = -1;\n _isFirstRender = true;\n jestAnimatedStyle: { value: StyleProps } = { value: {} };\n _component: AnimatedComponentRef | HTMLElement | null = null;\n _sharedElementTransition: SharedTransition | null = null;\n _jsPropsUpdater = new JSPropsUpdater();\n _InlinePropManager = new InlinePropManager();\n _PropsFilter = new PropsFilter();\n _NativeEventsManager?: INativeEventsManager;\n _viewInfo?: ViewInfo;\n static displayName: string;\n static contextType = SkipEnteringContext;\n context!: React.ContextType<typeof SkipEnteringContext>;\n reanimatedID = id++;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.jestAnimatedStyle = { value: {} };\n }\n const entering = this.props.entering;\n if (entering && isFabric()) {\n updateLayoutAnimations(\n this.reanimatedID,\n LayoutAnimationType.ENTERING,\n maybeBuild(entering, this.props?.style, AnimatedComponent.displayName)\n );\n }\n }\n\n componentDidMount() {\n this._componentViewTag = this._getComponentViewTag();\n if (!IS_WEB) {\n // It exists only on native platforms. We initialize it here because the ref to the animated component is available only post-mount\n this._NativeEventsManager = new NativeEventsManager(this, options);\n }\n this._NativeEventsManager?.attachEvents();\n this._jsPropsUpdater.addOnJSPropsChangeListener(this);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n const layout = this.props.layout;\n if (layout) {\n this._configureLayoutTransition();\n }\n\n if (IS_WEB) {\n if (this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n if (\n !this.props.entering ||\n getReducedMotionFromConfig(this.props.entering as CustomConfig)\n ) {\n this._isFirstRender = false;\n return;\n }\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.ENTERING\n );\n }\n\n this._isFirstRender = false;\n }\n\n componentWillUnmount() {\n this._NativeEventsManager?.detachEvents();\n this._jsPropsUpdater.removeOnJSPropsChangeListener(this);\n this._detachStyles();\n this._InlinePropManager.detachInlineProps();\n if (this.props.sharedTransitionTag) {\n this._configureSharedTransition(true);\n }\n this._sharedElementTransition?.unregisterTransition(\n this._componentViewTag,\n true\n );\n\n const exiting = this.props.exiting;\n\n if (\n IS_WEB &&\n this._component &&\n exiting &&\n !getReducedMotionFromConfig(exiting as CustomConfig)\n ) {\n addHTMLMutationObserver();\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.EXITING\n );\n } else if (exiting && !IS_WEB && !isFabric()) {\n const reduceMotionInExiting =\n 'getReduceMotion' in exiting &&\n typeof exiting.getReduceMotion === 'function'\n ? getReduceMotionFromConfig(exiting.getReduceMotion())\n : getReduceMotionFromConfig();\n if (!reduceMotionInExiting) {\n updateLayoutAnimations(\n this._componentViewTag,\n LayoutAnimationType.EXITING,\n maybeBuild(\n exiting,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n }\n\n _getComponentViewTag() {\n return this._getViewInfo().viewTag as number;\n }\n\n _detachStyles() {\n if (IS_WEB && this._styles !== null) {\n for (const style of this._styles) {\n style.viewsRef.remove(this);\n }\n } else if (this._componentViewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._componentViewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(\n this._componentViewTag\n );\n }\n if (isFabric()) {\n removeFromPropsRegistry(this._componentViewTag);\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n options.setNativeProps(this._component as AnimatedComponentRef, props);\n } else {\n (this._component as AnimatedComponentRef)?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo(): ViewInfo {\n if (this._viewInfo !== undefined) {\n return this._viewInfo;\n }\n\n let viewTag: number | HTMLElement | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n // Component can specify ref which should be animated when animated version of the component is created.\n // Otherwise, we animate the component itself.\n const component = (this._component as AnimatedComponentRef)\n ?.getAnimatableRef\n ? (this._component as AnimatedComponentRef).getAnimatableRef?.()\n : this;\n\n if (IS_WEB) {\n // At this point I assume that `_setComponentRef` was already called and `_component` is set.\n // `this._component` on web represents HTMLElement of our component, that's why we use casting\n viewTag = this._component as HTMLElement;\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(component);\n if (!hostInstance) {\n throw new Error(\n '[Reanimated] Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n\n const viewInfo = getViewInfo(hostInstance);\n viewTag = viewInfo.viewTag;\n viewName = viewInfo.viewName;\n viewConfig = viewInfo.viewConfig;\n shadowNodeWrapper = isFabric()\n ? getShadowNodeWrapperFromRef(this)\n : null;\n }\n this._viewInfo = { viewTag, viewName, shadowNodeWrapper, viewConfig };\n return this._viewInfo;\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._componentViewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n styles[0] === prevStyles[0];\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) => style === prevStyle);\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.jestAnimatedStyle.value = {\n ...this.jestAnimatedStyle.value,\n ...style.initial.value,\n };\n style.jestAnimatedStyle.current = this.jestAnimatedStyle;\n }\n });\n\n // detach old animatedProps\n if (prevAnimatedProps && prevAnimatedProps !== this.props.animatedProps) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n tag: viewTag as number,\n name: viewName!,\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>,\n _prevState: Readonly<unknown>,\n // This type comes straight from React\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n snapshot: DOMRect | null\n ) {\n const layout = this.props.layout;\n const oldLayout = prevProps.layout;\n if (layout !== oldLayout) {\n this._configureLayoutTransition();\n }\n if (\n this.props.sharedTransitionTag !== undefined ||\n prevProps.sharedTransitionTag !== undefined\n ) {\n this._configureSharedTransition();\n }\n this._NativeEventsManager?.updateEvents(prevProps);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n if (IS_WEB && this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n // Snapshot won't be undefined because it comes from getSnapshotBeforeUpdate method\n if (\n IS_WEB &&\n snapshot !== null &&\n this.props.layout &&\n !getReducedMotionFromConfig(this.props.layout as CustomConfig)\n ) {\n tryActivateLayoutTransition(\n this.props,\n this._component as HTMLElement,\n snapshot\n );\n }\n }\n\n _configureLayoutTransition() {\n if (IS_WEB) {\n return;\n }\n\n const layout = this.props.layout\n ? maybeBuild(\n this.props.layout,\n undefined /* We don't have to warn user if style has common properties with animation for LAYOUT */,\n AnimatedComponent.displayName\n )\n : undefined;\n updateLayoutAnimations(\n this._componentViewTag,\n LayoutAnimationType.LAYOUT,\n layout\n );\n }\n\n _configureSharedTransition(isUnmounting = false) {\n if (IS_WEB) {\n return;\n }\n\n const { sharedTransitionTag } = this.props;\n if (!sharedTransitionTag) {\n this._sharedElementTransition?.unregisterTransition(\n this._componentViewTag,\n isUnmounting\n );\n this._sharedElementTransition = null;\n return;\n }\n const sharedElementTransition =\n this.props.sharedTransitionStyle ??\n this._sharedElementTransition ??\n new SharedTransition();\n sharedElementTransition.registerTransition(\n this._componentViewTag,\n sharedTransitionTag,\n isUnmounting\n );\n this._sharedElementTransition = sharedElementTransition;\n }\n\n _setComponentRef = setAndForwardRef<Component | HTMLElement>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n\n const tag = IS_WEB\n ? (ref as HTMLElement)\n : findNodeHandle(ref as Component);\n\n this._componentViewTag = tag as number;\n\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n\n if (sharedTransitionTag) {\n this._configureSharedTransition();\n }\n if (exiting && isFabric()) {\n const reduceMotionInExiting =\n 'getReduceMotion' in exiting &&\n typeof exiting.getReduceMotion === 'function'\n ? getReduceMotionFromConfig(exiting.getReduceMotion())\n : getReduceMotionFromConfig();\n if (!reduceMotionInExiting) {\n updateLayoutAnimations(\n tag as number,\n LayoutAnimationType.EXITING,\n maybeBuild(\n exiting,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n\n const skipEntering = this.context?.current;\n if (entering && !skipEntering && !IS_WEB) {\n updateLayoutAnimations(\n tag as number,\n LayoutAnimationType.ENTERING,\n maybeBuild(\n entering,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n // This is a component lifecycle method from React, therefore we are not calling it directly.\n // It is called before the component gets rerendered. This way we can access components' position before it changed\n // and later on, in componentDidUpdate, calculate translation for layout transition.\n getSnapshotBeforeUpdate() {\n if (\n IS_WEB &&\n (this._component as HTMLElement)?.getBoundingClientRect !== undefined\n ) {\n return (this._component as HTMLElement).getBoundingClientRect();\n }\n\n return null;\n }\n\n render() {\n const filteredProps = this._PropsFilter.filterNonAnimatedProps(this);\n\n if (isJest()) {\n filteredProps.jestAnimatedStyle = this.jestAnimatedStyle;\n }\n\n // Layout animations on web are set inside `componentDidMount` method, which is called after first render.\n // Because of that we can encounter a situation in which component is visible for a short amount of time, and later on animation triggers.\n // I've tested that on various browsers and devices and it did not happen to me. To be sure that it won't happen to someone else,\n // I've decided to hide component at first render. Its visibility is reset in `componentDidMount`.\n if (\n this._isFirstRender &&\n IS_WEB &&\n filteredProps.entering &&\n !getReducedMotionFromConfig(filteredProps.entering as CustomConfig)\n ) {\n filteredProps.style = {\n ...(filteredProps.style ?? {}),\n visibility: 'hidden', // Hide component until `componentDidMount` triggers\n };\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n\n const skipEntering = this.context?.current;\n const nativeID =\n skipEntering || !isFabric() ? undefined : `${this.reanimatedID}`;\n\n return (\n <Component\n nativeID={nativeID}\n {...filteredProps}\n // Casting is used here, because ref can be null - in that case it cannot be assigned to HTMLElement.\n // After spending some time trying to figure out what to do with this problem, we decided to leave it this way\n ref={this._setComponentRef as (ref: Component) => void}\n {...platformProps}\n />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"AAAA,YAAY;;AAAC,SAAAA,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,gBAAAC,GAAA,EAAAN,GAAA,EAAAO,KAAA,IAAAP,GAAA,GAAAQ,cAAA,CAAAR,GAAA,OAAAA,GAAA,IAAAM,GAAA,IAAAd,MAAA,CAAAiB,cAAA,CAAAH,GAAA,EAAAN,GAAA,IAAAO,KAAA,EAAAA,KAAA,EAAAG,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAN,GAAA,CAAAN,GAAA,IAAAO,KAAA,WAAAD,GAAA;AAAA,SAAAE,eAAAK,CAAA,QAAAjB,CAAA,GAAAkB,YAAA,CAAAD,CAAA,uCAAAjB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAkB,aAAAD,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAG,CAAA,GAAAH,CAAA,CAAAI,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAApB,CAAA,GAAAoB,CAAA,CAAAb,IAAA,CAAAU,CAAA,EAAAE,CAAA,uCAAAnB,CAAA,SAAAA,CAAA,YAAAuB,SAAA,yEAAAJ,CAAA,GAAAK,MAAA,GAAAC,MAAA,EAAAR,CAAA;AAQb,OAAOS,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,EAAEC,QAAQ,QAAQ,cAAc;AACvD,OAAO,wCAAwC;AAC/C,OAAOC,SAAS,MAAM,WAAW;AACjC,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SAASC,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,gBAAgB,EAAEC,mBAAmB,QAAQ,sBAAsB;AAE5E,SAASC,2BAA2B,QAAQ,gBAAgB;AAC5D,SAASC,uBAAuB,QAAQ,kBAAkB;AAC1D,SAASC,yBAAyB,QAAQ,mBAAmB;AAC7D,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,mBAAmB,QAAQ,oCAAoC;AAExE,OAAOC,cAAc,MAAM,kBAAkB;AAU7C,SAASC,YAAY,QAAQ,SAAS;AACtC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,cAAc,QAAQ,oBAAoB;AAC5E,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,uBAAuB,EACvBC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,YAAY,QACP,0BAA0B;AACjC,SAASC,sBAAsB,QAAQ,2BAA2B;AAGlE,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,MAAM,GAAGb,KAAK,CAAC,CAAC;AAEtB,IAAIa,MAAM,EAAE;EACVP,4BAA4B,CAAC,CAAC;AAChC;AAEA,SAASQ,kBAAkBA,CAACC,MAAoB,EAAgB;EAC9D,OAAOA,MAAM,CAACC,MAAM,CAAEC,KAAK,IAAKA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,eAAe,CAAC;AACzD;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAkBA;AACA;AACA;AACA;;AAMA,IAAIC,EAAE,GAAG,CAAC;AAEV,OAAO,SAASC,uBAAuBA,CACrCC,SAA+C,EAC/CC,OAAwC,EACnC;EACLtC,SAAS,CACP,OAAOqC,SAAS,KAAK,UAAU,IAC5BA,SAAS,CAAC7D,SAAS,IAAI6D,SAAS,CAAC7D,SAAS,CAAC+D,gBAAiB,EAC9D,oDAAmDF,SAAS,CAACG,IAAK,oLACrE,CAAC;EAED,MAAMC,iBAAiB,SACb5C,KAAK,CAACwC,SAAS,CAEzB;IAkBEK,WAAWA,CAACC,KAAoD,EAAE;MAChE,KAAK,CAACA,KAAK,CAAC;MAAC/D,eAAA,kBAlBgB,IAAI;MAAAA,eAAA;MAAAA,eAAA,4BAEf,CAAC,CAAC;MAAAA,eAAA,yBACL,IAAI;MAAAA,eAAA,4BACsB;QAAEE,KAAK,EAAE,CAAC;MAAE,CAAC;MAAAF,eAAA,qBACA,IAAI;MAAAA,eAAA,mCACR,IAAI;MAAAA,eAAA,0BACtC,IAAI+B,cAAc,CAAC,CAAC;MAAA/B,eAAA,6BACjB,IAAIsC,iBAAiB,CAAC,CAAC;MAAAtC,eAAA,uBAC7B,IAAIuC,WAAW,CAAC,CAAC;MAAAvC,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA,uBAMjBuD,EAAE,EAAE;MAAAvD,eAAA,2BAuVAiC,gBAAgB,CAA0B;QAC3D+B,eAAe,EAAEA,CAAA,KACf,IAAI,CAACD,KAAK,CAACE,YAEV;QACHC,WAAW,EAAGC,GAAG,IAAK;UACpB;;UAEA,MAAMC,GAAG,GAAGnB,MAAM,GACbkB,GAAG,GACJjD,cAAc,CAACiD,GAAgB,CAAC;UAEpC,IAAI,CAACE,iBAAiB,GAAGD,GAAa;UAEtC,MAAM;YAAEE,MAAM;YAAEC,QAAQ;YAAEC,OAAO;YAAEC;UAAoB,CAAC,GAAG,IAAI,CAACV,KAAK;UACrE,IACE,CAACO,MAAM,IAAIC,QAAQ,IAAIC,OAAO,IAAIC,mBAAmB,KACrDL,GAAG,IAAI,IAAI,EACX;YAAA,IAAAM,aAAA;YACA,IAAI,CAACrC,cAAc,CAAC,CAAC,EAAE;cACrBd,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC;YACrC;YAEA,IAAIkD,mBAAmB,EAAE;cACvB,IAAI,CAACE,0BAA0B,CAAC,CAAC;YACnC;YACA,IAAIH,OAAO,IAAItC,QAAQ,CAAC,CAAC,EAAE;cACzB,MAAM0C,qBAAqB,GACzB,iBAAiB,IAAIJ,OAAO,IAC5B,OAAOA,OAAO,CAACK,eAAe,KAAK,UAAU,GACzCjD,yBAAyB,CAAC4C,OAAO,CAACK,eAAe,CAAC,CAAC,CAAC,GACpDjD,yBAAyB,CAAC,CAAC;cACjC,IAAI,CAACgD,qBAAqB,EAAE;gBAAA,IAAAE,WAAA;gBAC1BjC,sBAAsB,CACpBuB,GAAG,EACH3C,mBAAmB,CAACsD,OAAO,EAC3BlD,UAAU,CACR2C,OAAO,GAAAM,WAAA,GACP,IAAI,CAACf,KAAK,cAAAe,WAAA,uBAAVA,WAAA,CAAYzB,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;cACH;YACF;YAEA,MAAMC,YAAY,IAAAP,aAAA,GAAG,IAAI,CAACQ,OAAO,cAAAR,aAAA,uBAAZA,aAAA,CAAcS,OAAO;YAC1C,IAAIZ,QAAQ,IAAI,CAACU,YAAY,IAAI,CAAChC,MAAM,EAAE;cAAA,IAAAmC,YAAA;cACxCvC,sBAAsB,CACpBuB,GAAG,EACH3C,mBAAmB,CAAC4D,QAAQ,EAC5BxD,UAAU,CACR0C,QAAQ,GAAAa,YAAA,GACR,IAAI,CAACrB,KAAK,cAAAqB,YAAA,uBAAVA,YAAA,CAAY/B,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;YACH;UACF;UAEA,IAAIb,GAAG,KAAK,IAAI,CAACmB,UAAU,EAAE;YAC3B,IAAI,CAACA,UAAU,GAAGnB,GAAG;UACvB;QACF;MACF,CAAC,CAAC;MAlZA,IAAIhC,MAAM,CAAC,CAAC,EAAE;QACZ,IAAI,CAACoD,iBAAiB,GAAG;UAAErF,KAAK,EAAE,CAAC;QAAE,CAAC;MACxC;MACA,MAAMqE,SAAQ,GAAG,IAAI,CAACR,KAAK,CAACQ,QAAQ;MACpC,IAAIA,SAAQ,IAAIrC,QAAQ,CAAC,CAAC,EAAE;QAAA,IAAAsD,YAAA;QAC1B3C,sBAAsB,CACpB,IAAI,CAAC4C,YAAY,EACjBhE,mBAAmB,CAAC4D,QAAQ,EAC5BxD,UAAU,CAAC0C,SAAQ,GAAAiB,YAAA,GAAE,IAAI,CAACzB,KAAK,cAAAyB,YAAA,uBAAVA,YAAA,CAAYnC,KAAK,EAAEQ,iBAAiB,CAACmB,WAAW,CACvE,CAAC;MACH;IACF;IAEAU,iBAAiBA,CAAA,EAAG;MAAA,IAAAC,qBAAA;MAClB,IAAI,CAACtB,iBAAiB,GAAG,IAAI,CAACuB,oBAAoB,CAAC,CAAC;MACpD,IAAI,CAAC3C,MAAM,EAAE;QACX;QACA,IAAI,CAAC4C,oBAAoB,GAAG,IAAI7C,mBAAmB,CAAC,IAAI,EAAEU,OAAO,CAAC;MACpE;MACA,CAAAiC,qBAAA,OAAI,CAACE,oBAAoB,cAAAF,qBAAA,eAAzBA,qBAAA,CAA2BG,YAAY,CAAC,CAAC;MACzC,IAAI,CAACC,eAAe,CAACC,0BAA0B,CAAC,IAAI,CAAC;MACrD,IAAI,CAACC,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,kBAAkB,CAACC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC;MAEpE,MAAM9B,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM;MAChC,IAAIA,MAAM,EAAE;QACV,IAAI,CAAC+B,0BAA0B,CAAC,CAAC;MACnC;MAEA,IAAIpD,MAAM,EAAE;QACV,IAAI,IAAI,CAACc,KAAK,CAACS,OAAO,EAAE;UACtB5B,YAAY,CAAC,IAAI,CAAC0C,UAAyB,CAAC;QAC9C;QAEA,IACE,CAAC,IAAI,CAACvB,KAAK,CAACQ,QAAQ,IACpB5B,0BAA0B,CAAC,IAAI,CAACoB,KAAK,CAACQ,QAAwB,CAAC,EAC/D;UACA,IAAI,CAAC+B,cAAc,GAAG,KAAK;UAC3B;QACF;QAEA9D,uBAAuB,CACrB,IAAI,CAACuB,KAAK,EACV,IAAI,CAACuB,UAAU,EACf7D,mBAAmB,CAAC4D,QACtB,CAAC;MACH;MAEA,IAAI,CAACiB,cAAc,GAAG,KAAK;IAC7B;IAEAC,oBAAoBA,CAAA,EAAG;MAAA,IAAAC,sBAAA,EAAAC,qBAAA;MACrB,CAAAD,sBAAA,OAAI,CAACX,oBAAoB,cAAAW,sBAAA,eAAzBA,sBAAA,CAA2BE,YAAY,CAAC,CAAC;MACzC,IAAI,CAACX,eAAe,CAACY,6BAA6B,CAAC,IAAI,CAAC;MACxD,IAAI,CAACC,aAAa,CAAC,CAAC;MACpB,IAAI,CAACV,kBAAkB,CAACW,iBAAiB,CAAC,CAAC;MAC3C,IAAI,IAAI,CAAC9C,KAAK,CAACU,mBAAmB,EAAE;QAClC,IAAI,CAACE,0BAA0B,CAAC,IAAI,CAAC;MACvC;MACA,CAAA8B,qBAAA,OAAI,CAACK,wBAAwB,cAAAL,qBAAA,eAA7BA,qBAAA,CAA+BM,oBAAoB,CACjD,IAAI,CAAC1C,iBAAiB,EACtB,IACF,CAAC;MAED,MAAMG,OAAO,GAAG,IAAI,CAACT,KAAK,CAACS,OAAO;MAElC,IACEvB,MAAM,IACN,IAAI,CAACqC,UAAU,IACfd,OAAO,IACP,CAAC7B,0BAA0B,CAAC6B,OAAuB,CAAC,EACpD;QACA1B,uBAAuB,CAAC,CAAC;QAEzBN,uBAAuB,CACrB,IAAI,CAACuB,KAAK,EACV,IAAI,CAACuB,UAAU,EACf7D,mBAAmB,CAACsD,OACtB,CAAC;MACH,CAAC,MAAM,IAAIP,OAAO,IAAI,CAACvB,MAAM,IAAI,CAACf,QAAQ,CAAC,CAAC,EAAE;QAC5C,MAAM0C,qBAAqB,GACzB,iBAAiB,IAAIJ,OAAO,IAC5B,OAAOA,OAAO,CAACK,eAAe,KAAK,UAAU,GACzCjD,yBAAyB,CAAC4C,OAAO,CAACK,eAAe,CAAC,CAAC,CAAC,GACpDjD,yBAAyB,CAAC,CAAC;QACjC,IAAI,CAACgD,qBAAqB,EAAE;UAAA,IAAAoC,YAAA;UAC1BnE,sBAAsB,CACpB,IAAI,CAACwB,iBAAiB,EACtB5C,mBAAmB,CAACsD,OAAO,EAC3BlD,UAAU,CACR2C,OAAO,GAAAwC,YAAA,GACP,IAAI,CAACjD,KAAK,cAAAiD,YAAA,uBAAVA,YAAA,CAAY3D,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;QACH;MACF;IACF;IAEAY,oBAAoBA,CAAA,EAAG;MACrB,OAAO,IAAI,CAACQ,YAAY,CAAC,CAAC,CAACa,OAAO;IACpC;IAEAL,aAAaA,CAAA,EAAG;MACd,IAAI3D,MAAM,IAAI,IAAI,CAACiE,OAAO,KAAK,IAAI,EAAE;QACnC,KAAK,MAAM7D,KAAK,IAAI,IAAI,CAAC6D,OAAO,EAAE;UAChC7D,KAAK,CAAC8D,QAAQ,CAACC,MAAM,CAAC,IAAI,CAAC;QAC7B;MACF,CAAC,MAAM,IAAI,IAAI,CAAC/C,iBAAiB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC6C,OAAO,KAAK,IAAI,EAAE;QAAA,IAAAG,qBAAA;QACjE,KAAK,MAAMhE,KAAK,IAAI,IAAI,CAAC6D,OAAO,EAAE;UAChC7D,KAAK,CAACC,eAAe,CAAC8D,MAAM,CAAC,IAAI,CAAC/C,iBAAiB,CAAC;QACtD;QACA,KAAAgD,qBAAA,GAAI,IAAI,CAACtD,KAAK,CAACuD,aAAa,cAAAD,qBAAA,eAAxBA,qBAAA,CAA0B/D,eAAe,EAAE;UAC7C,IAAI,CAACS,KAAK,CAACuD,aAAa,CAAChE,eAAe,CAAC8D,MAAM,CAC7C,IAAI,CAAC/C,iBACP,CAAC;QACH;QACA,IAAInC,QAAQ,CAAC,CAAC,EAAE;UACdP,uBAAuB,CAAC,IAAI,CAAC0C,iBAAiB,CAAC;QACjD;MACF;IACF;IAEAkD,iBAAiBA,CAACxD,KAAiB,EAAE;MACnC,IAAIL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE8D,cAAc,EAAE;QAC3B9D,OAAO,CAAC8D,cAAc,CAAC,IAAI,CAAClC,UAAU,EAA0BvB,KAAK,CAAC;MACxE,CAAC,MAAM;QAAA,IAAA0D,gBAAA,EAAAC,qBAAA;QACL,CAAAD,gBAAA,GAAC,IAAI,CAACnC,UAAU,cAAAmC,gBAAA,gBAAAC,qBAAA,GAAhBD,gBAAA,CAA2CD,cAAc,cAAAE,qBAAA,eAAzDA,qBAAA,CAAA5H,IAAA,CAAA2H,gBAAA,EAA4D1D,KAAK,CAAC;MACpE;IACF;IAEAqC,YAAYA,CAAA,EAAa;MAAA,IAAAuB,iBAAA,EAAAC,iBAAA,EAAAC,IAAA;MACvB,IAAI,IAAI,CAACC,SAAS,KAAKC,SAAS,EAAE;QAChC,OAAO,IAAI,CAACD,SAAS;MACvB;MAEA,IAAIb,OAAoC;MACxC,IAAIe,QAAuB;MAC3B,IAAIC,iBAA2C,GAAG,IAAI;MACtD,IAAIC,UAAU;MACd;MACA;MACA,MAAMC,SAAS,GAAG,CAAAR,iBAAA,GAAC,IAAI,CAACrC,UAAU,cAAAqC,iBAAA,eAAhBA,iBAAA,CACdS,gBAAgB,IAAAR,iBAAA,GAChB,CAAAC,IAAA,GAAC,IAAI,CAACvC,UAAU,EAA0B8C,gBAAgB,cAAAR,iBAAA,uBAA1DA,iBAAA,CAAA9H,IAAA,CAAA+H,IAA6D,CAAC,GAC9D,IAAI;MAER,IAAI5E,MAAM,EAAE;QACV;QACA;QACAgE,OAAO,GAAG,IAAI,CAAC3B,UAAyB;QACxC0C,QAAQ,GAAG,IAAI;QACfC,iBAAiB,GAAG,IAAI;QACxBC,UAAU,GAAG,IAAI;MACnB,CAAC,MAAM;QACL;QACA,MAAMG,YAAY,GAAG/G,UAAU,CAACgH,2BAA2B,CAACH,SAAS,CAAC;QACtE,IAAI,CAACE,YAAY,EAAE;UACjB,MAAM,IAAIE,KAAK,CACb,sFACF,CAAC;QACH;QAEA,MAAMC,QAAQ,GAAGzF,WAAW,CAACsF,YAAY,CAAC;QAC1CpB,OAAO,GAAGuB,QAAQ,CAACvB,OAAO;QAC1Be,QAAQ,GAAGQ,QAAQ,CAACR,QAAQ;QAC5BE,UAAU,GAAGM,QAAQ,CAACN,UAAU;QAChCD,iBAAiB,GAAG/F,QAAQ,CAAC,CAAC,GAC1BR,2BAA2B,CAAC,IAAI,CAAC,GACjC,IAAI;MACV;MACA,IAAI,CAACoG,SAAS,GAAG;QAAEb,OAAO;QAAEe,QAAQ;QAAEC,iBAAiB;QAAEC;MAAW,CAAC;MACrE,OAAO,IAAI,CAACJ,SAAS;IACvB;IAEA7B,qBAAqBA,CAAA,EAAG;MAAA,IAAAwC,sBAAA,EAAAC,sBAAA;MACtB,MAAMvF,MAAM,GAAG,IAAI,CAACY,KAAK,CAACV,KAAK,GAC3BH,kBAAkB,CAAClB,YAAY,CAAa,IAAI,CAAC+B,KAAK,CAACV,KAAK,CAAC,CAAC,GAC9D,EAAE;MACN,MAAMsF,UAAU,GAAG,IAAI,CAACzB,OAAO;MAC/B,IAAI,CAACA,OAAO,GAAG/D,MAAM;MAErB,MAAMyF,iBAAiB,GAAG,IAAI,CAACC,cAAc;MAC7C,IAAI,CAACA,cAAc,GAAG,IAAI,CAAC9E,KAAK,CAACuD,aAAa;MAE9C,MAAM;QAAEL,OAAO;QAAEe,QAAQ;QAAEC,iBAAiB;QAAEC;MAAW,CAAC,GACxD,IAAI,CAAC9B,YAAY,CAAC,CAAC;;MAErB;MACA,MAAM0C,mBAAmB,GACvB,EAAAL,sBAAA,OAAI,CAAC1E,KAAK,CAACuD,aAAa,cAAAmB,sBAAA,uBAAxBA,sBAAA,CAA0BnF,eAAe,KAAIH,MAAM,CAAC1D,MAAM;MAC5D,IAAIqJ,mBAAmB,IAAIZ,UAAU,EAAE;QACrC7G,eAAe,CAAC6G,UAAU,CAAC;MAC7B;MAEA,IAAI,CAAC7D,iBAAiB,GAAG4C,OAAiB;;MAE1C;MACA,IAAI0B,UAAU,EAAE;QACd;QACA,MAAMI,eAAe,GACnB5F,MAAM,CAAC1D,MAAM,KAAK,CAAC,IACnBkJ,UAAU,CAAClJ,MAAM,KAAK,CAAC,IACvB0D,MAAM,CAAC,CAAC,CAAC,KAAKwF,UAAU,CAAC,CAAC,CAAC;QAE7B,IAAI,CAACI,eAAe,EAAE;UACpB;UACA,KAAK,MAAMC,SAAS,IAAIL,UAAU,EAAE;YAClC,MAAMM,SAAS,GAAG9F,MAAM,CAAC+F,IAAI,CAAE7F,KAAK,IAAKA,KAAK,KAAK2F,SAAS,CAAC;YAC7D,IAAI,CAACC,SAAS,EAAE;cACdD,SAAS,CAAC1F,eAAe,CAAC8D,MAAM,CAACH,OAAO,CAAC;YAC3C;UACF;QACF;MACF;MAEA9D,MAAM,CAACgG,OAAO,CAAE9F,KAAK,IAAK;QACxBA,KAAK,CAACC,eAAe,CAAC8F,GAAG,CAAC;UACxBhF,GAAG,EAAE6C,OAAO;UACZrD,IAAI,EAAEoE,QAAQ;UACdC;QACF,CAAC,CAAC;QACF,IAAI9F,MAAM,CAAC,CAAC,EAAE;UACZ;AACV;AACA;AACA;AACA;AACA;UACU,IAAI,CAACoD,iBAAiB,CAACrF,KAAK,GAAG;YAC7B,GAAG,IAAI,CAACqF,iBAAiB,CAACrF,KAAK;YAC/B,GAAGmD,KAAK,CAACgG,OAAO,CAACnJ;UACnB,CAAC;UACDmD,KAAK,CAACkC,iBAAiB,CAACJ,OAAO,GAAG,IAAI,CAACI,iBAAiB;QAC1D;MACF,CAAC,CAAC;;MAEF;MACA,IAAIqD,iBAAiB,IAAIA,iBAAiB,KAAK,IAAI,CAAC7E,KAAK,CAACuD,aAAa,EAAE;QACvEsB,iBAAiB,CAACtF,eAAe,CAAE8D,MAAM,CAACH,OAAiB,CAAC;MAC9D;;MAEA;MACA,KAAAyB,sBAAA,GAAI,IAAI,CAAC3E,KAAK,CAACuD,aAAa,cAAAoB,sBAAA,eAAxBA,sBAAA,CAA0BpF,eAAe,EAAE;QAC7C,IAAI,CAACS,KAAK,CAACuD,aAAa,CAAChE,eAAe,CAAC8F,GAAG,CAAC;UAC3ChF,GAAG,EAAE6C,OAAiB;UACtBrD,IAAI,EAAEoE,QAAS;UACfC,iBAAiB,EAAEA;QACrB,CAAC,CAAC;MACJ;IACF;IAEAqB,kBAAkBA,CAChBC,SAAwD,EACxDC,UAA6B;IAC7B;IACA;IACAC,QAAwB,EACxB;MAAA,IAAAC,sBAAA;MACA,MAAMpF,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM;MAChC,MAAMqF,SAAS,GAAGJ,SAAS,CAACjF,MAAM;MAClC,IAAIA,MAAM,KAAKqF,SAAS,EAAE;QACxB,IAAI,CAACtD,0BAA0B,CAAC,CAAC;MACnC;MACA,IACE,IAAI,CAACtC,KAAK,CAACU,mBAAmB,KAAKsD,SAAS,IAC5CwB,SAAS,CAAC9E,mBAAmB,KAAKsD,SAAS,EAC3C;QACA,IAAI,CAACpD,0BAA0B,CAAC,CAAC;MACnC;MACA,CAAA+E,sBAAA,OAAI,CAAC7D,oBAAoB,cAAA6D,sBAAA,eAAzBA,sBAAA,CAA2BE,YAAY,CAACL,SAAS,CAAC;MAClD,IAAI,CAACtD,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,kBAAkB,CAACC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC;MAEpE,IAAInD,MAAM,IAAI,IAAI,CAACc,KAAK,CAACS,OAAO,EAAE;QAChC5B,YAAY,CAAC,IAAI,CAAC0C,UAAyB,CAAC;MAC9C;;MAEA;MACA,IACErC,MAAM,IACNwG,QAAQ,KAAK,IAAI,IACjB,IAAI,CAAC1F,KAAK,CAACO,MAAM,IACjB,CAAC3B,0BAA0B,CAAC,IAAI,CAACoB,KAAK,CAACO,MAAsB,CAAC,EAC9D;QACA7B,2BAA2B,CACzB,IAAI,CAACsB,KAAK,EACV,IAAI,CAACuB,UAAU,EACfmE,QACF,CAAC;MACH;IACF;IAEApD,0BAA0BA,CAAA,EAAG;MAC3B,IAAIpD,MAAM,EAAE;QACV;MACF;MAEA,MAAMqB,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM,GAC5BzC,UAAU,CACR,IAAI,CAACkC,KAAK,CAACO,MAAM,EACjByD,SAAS,CAAC,2FACVlE,iBAAiB,CAACmB,WACpB,CAAC,GACD+C,SAAS;MACblF,sBAAsB,CACpB,IAAI,CAACwB,iBAAiB,EACtB5C,mBAAmB,CAACoI,MAAM,EAC1BvF,MACF,CAAC;IACH;IAEAK,0BAA0BA,CAACmF,YAAY,GAAG,KAAK,EAAE;MAC/C,IAAI7G,MAAM,EAAE;QACV;MACF;MAEA,MAAM;QAAEwB;MAAoB,CAAC,GAAG,IAAI,CAACV,KAAK;MAC1C,IAAI,CAACU,mBAAmB,EAAE;QAAA,IAAAsF,sBAAA;QACxB,CAAAA,sBAAA,OAAI,CAACjD,wBAAwB,cAAAiD,sBAAA,eAA7BA,sBAAA,CAA+BhD,oBAAoB,CACjD,IAAI,CAAC1C,iBAAiB,EACtByF,YACF,CAAC;QACD,IAAI,CAAChD,wBAAwB,GAAG,IAAI;QACpC;MACF;MACA,MAAMkD,uBAAuB,GAC3B,IAAI,CAACjG,KAAK,CAACkG,qBAAqB,IAChC,IAAI,CAACnD,wBAAwB,IAC7B,IAAItF,gBAAgB,CAAC,CAAC;MACxBwI,uBAAuB,CAACE,kBAAkB,CACxC,IAAI,CAAC7F,iBAAiB,EACtBI,mBAAmB,EACnBqF,YACF,CAAC;MACD,IAAI,CAAChD,wBAAwB,GAAGkD,uBAAuB;IACzD;IAmEA;IACA;IACA;IACAG,uBAAuBA,CAAA,EAAG;MAAA,IAAAC,iBAAA;MACxB,IACEnH,MAAM,IACN,EAAAmH,iBAAA,GAAC,IAAI,CAAC9E,UAAU,cAAA8E,iBAAA,uBAAhBA,iBAAA,CAAkCC,qBAAqB,MAAKtC,SAAS,EACrE;QACA,OAAQ,IAAI,CAACzC,UAAU,CAAiB+E,qBAAqB,CAAC,CAAC;MACjE;MAEA,OAAO,IAAI;IACb;IAEAC,MAAMA,CAAA,EAAG;MAAA,IAAAC,cAAA;MACP,MAAMC,aAAa,GAAG,IAAI,CAACC,YAAY,CAACC,sBAAsB,CAAC,IAAI,CAAC;MAEpE,IAAIvI,MAAM,CAAC,CAAC,EAAE;QACZqI,aAAa,CAACjF,iBAAiB,GAAG,IAAI,CAACA,iBAAiB;MAC1D;;MAEA;MACA;MACA;MACA;MACA,IACE,IAAI,CAACe,cAAc,IACnBrD,MAAM,IACNuH,aAAa,CAACjG,QAAQ,IACtB,CAAC5B,0BAA0B,CAAC6H,aAAa,CAACjG,QAAwB,CAAC,EACnE;QACAiG,aAAa,CAACnH,KAAK,GAAG;UACpB,IAAImH,aAAa,CAACnH,KAAK,IAAI,CAAC,CAAC,CAAC;UAC9BsH,UAAU,EAAE,QAAQ,CAAE;QACxB,CAAC;MACH;MAEA,MAAMC,aAAa,GAAGzJ,QAAQ,CAAC0J,MAAM,CAAC;QACpCC,GAAG,EAAE,CAAC,CAAC;QACPC,OAAO,EAAE;UAAEC,WAAW,EAAE;QAAM;MAChC,CAAC,CAAC;MAEF,MAAM/F,YAAY,IAAAsF,cAAA,GAAG,IAAI,CAACrF,OAAO,cAAAqF,cAAA,uBAAZA,cAAA,CAAcpF,OAAO;MAC1C,MAAM8F,QAAQ,GACZhG,YAAY,IAAI,CAAC/C,QAAQ,CAAC,CAAC,GAAG6F,SAAS,GAAI,GAAE,IAAI,CAACtC,YAAa,EAAC;MAElE,oBACExE,KAAA,CAAAiK,aAAA,CAACzH,SAAS,EAAAvE,QAAA;QACR+L,QAAQ,EAAEA;MAAS,GACfT,aAAa;QACjB;QACA;QACArG,GAAG,EAAE,IAAI,CAACgH;MAA6C,GACnDP,aAAa,CAClB,CAAC;IAEN;EACF;EAAC5K,eAAA,CApeK6D,iBAAiB;EAAA7D,eAAA,CAAjB6D,iBAAiB,iBAiBA/B,mBAAmB;EAqd1C+B,iBAAiB,CAACmB,WAAW,GAAI,qBAC/BvB,SAAS,CAACuB,WAAW,IAAIvB,SAAS,CAACG,IAAI,IAAI,WAC5C,GAAE;EAEH,oBAAO3C,KAAK,CAACmK,UAAU,CAAY,CAACrH,KAAK,EAAEI,GAAG,KAAK;IACjD,oBACElD,KAAA,CAAAiK,aAAA,CAACrH,iBAAiB,EAAA3E,QAAA,KACZ6E,KAAK,EACJI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG;MAAEF,YAAY,EAAEE;IAAI,CAAC,CACjD,CAAC;EAEN,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","obj","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","t","_toPrimitive","r","e","Symbol","toPrimitive","TypeError","String","Number","React","findNodeHandle","Platform","invariant","adaptViewConfig","RNRenderer","enableLayoutAnimations","SharedTransition","LayoutAnimationType","getShadowNodeWrapperFromRef","removeFromPropsRegistry","getReduceMotionFromConfig","maybeBuild","SkipEnteringContext","JSPropsUpdater","flattenArray","setAndForwardRef","isFabric","isJest","isWeb","shouldBeUseWeb","InlinePropManager","PropsFilter","startWebLayoutAnimation","tryActivateLayoutTransition","configureWebLayoutAnimations","getReducedMotionFromConfig","saveSnapshot","updateLayoutAnimations","addHTMLMutationObserver","getViewInfo","NativeEventsManager","IS_WEB","onlyAnimatedStyles","styles","filter","style","viewDescriptors","id","createAnimatedComponent","Component","options","isReactComponent","name","AnimatedComponent","constructor","props","getForwardedRef","forwardedRef","setLocalRef","ref","tag","_componentViewTag","layout","entering","exiting","sharedTransitionTag","_this$context","_configureSharedTransition","reduceMotionInExiting","getReduceMotion","_this$props","EXITING","displayName","skipEntering","context","current","_this$props2","ENTERING","_component","jestAnimatedStyle","_this$props3","reanimatedID","componentDidMount","_this$_NativeEventsMa","_getComponentViewTag","_NativeEventsManager","attachEvents","_jsPropsUpdater","addOnJSPropsChangeListener","_attachAnimatedStyles","_InlinePropManager","attachInlineProps","_getViewInfo","_configureLayoutTransition","_isFirstRender","componentWillUnmount","_this$_NativeEventsMa2","_this$_sharedElementT","detachEvents","removeOnJSPropsChangeListener","_detachStyles","detachInlineProps","_sharedElementTransition","unregisterTransition","_this$props4","viewTag","_styles","_this$props$animatedP","remove","animatedProps","_updateFromNative","setNativeProps","_this$_component","_this$_component$setN","_this$_component2","_getAnimatableRef","_ref","_viewInfo","undefined","viewName","shadowNodeWrapper","viewConfig","component","getAnimatableRef","hostInstance","findHostInstance_DEPRECATED","Error","viewInfo","_this$props$animatedP2","_this$props$animatedP3","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","some","forEach","add","initial","componentDidUpdate","prevProps","_prevState","snapshot","_this$_NativeEventsMa3","oldLayout","updateEvents","LAYOUT","isUnmounting","_this$_sharedElementT2","sharedElementTransition","sharedTransitionStyle","registerTransition","getSnapshotBeforeUpdate","_this$_component3","getBoundingClientRect","render","_this$context2","filteredProps","_PropsFilter","filterNonAnimatedProps","visibility","platformProps","select","web","default","collapsable","nativeID","createElement","_setComponentRef","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["'use strict';\nimport type {\n Component,\n ComponentClass,\n ComponentType,\n FunctionComponent,\n MutableRefObject,\n} from 'react';\nimport React from 'react';\nimport { findNodeHandle, Platform } from 'react-native';\nimport '../layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from '../ConfigHelper';\nimport { RNRenderer } from '../platform-specific/RNRenderer';\nimport { enableLayoutAnimations } from '../core';\nimport { SharedTransition, LayoutAnimationType } from '../layoutReanimation';\nimport type { StyleProps, ShadowNodeWrapper } from '../commonTypes';\nimport { getShadowNodeWrapperFromRef } from '../fabricUtils';\nimport { removeFromPropsRegistry } from '../PropsRegistry';\nimport { getReduceMotionFromConfig } from '../animation/util';\nimport { maybeBuild } from '../animationBuilder';\nimport { SkipEnteringContext } from '../component/LayoutAnimationConfig';\nimport type { AnimateProps } from '../helperTypes';\nimport JSPropsUpdater from './JSPropsUpdater';\nimport type {\n AnimatedComponentProps,\n AnimatedProps,\n InitialComponentProps,\n AnimatedComponentRef,\n IAnimatedComponentInternal,\n ViewInfo,\n INativeEventsManager,\n} from './commonTypes';\nimport { flattenArray } from './utils';\nimport setAndForwardRef from './setAndForwardRef';\nimport { isFabric, isJest, isWeb, shouldBeUseWeb } from '../PlatformChecker';\nimport { InlinePropManager } from './InlinePropManager';\nimport { PropsFilter } from './PropsFilter';\nimport {\n startWebLayoutAnimation,\n tryActivateLayoutTransition,\n configureWebLayoutAnimations,\n getReducedMotionFromConfig,\n saveSnapshot,\n} from '../layoutReanimation/web';\nimport { updateLayoutAnimations } from '../UpdateLayoutAnimations';\nimport type { CustomConfig } from '../layoutReanimation/web/config';\nimport type { FlatList, FlatListProps } from 'react-native';\nimport { addHTMLMutationObserver } from '../layoutReanimation/web/domUtils';\nimport { getViewInfo } from './getViewInfo';\nimport { NativeEventsManager } from './NativeEventsManager';\n\nconst IS_WEB = isWeb();\n\nif (IS_WEB) {\n configureWebLayoutAnimations();\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]): StyleProps[] {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\ntype Options<P> = {\n setNativeProps: (ref: AnimatedComponentRef, props: P) => void;\n};\n\n/**\n * Lets you create an Animated version of any React Native component.\n *\n * @param component - The component you want to make animatable.\n * @returns A component that Reanimated is capable of animating.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/core/createAnimatedComponent\n */\n\n// Don't change the order of overloads, since such a change breaks current behavior\nexport function createAnimatedComponent<P extends object>(\n component: FunctionComponent<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>>;\n\nexport function createAnimatedComponent<P extends object>(\n component: ComponentClass<P>,\n options?: Options<P>\n): ComponentClass<AnimateProps<P>>;\n\nexport function createAnimatedComponent<P extends object>(\n // Actually ComponentType<P = {}> = ComponentClass<P> | FunctionComponent<P> but we need this overload too\n // since some external components (like FastImage) are typed just as ComponentType\n component: ComponentType<P>,\n options?: Options<P>\n): FunctionComponent<AnimateProps<P>> | ComponentClass<AnimateProps<P>>;\n\n/**\n * @deprecated Please use `Animated.FlatList` component instead of calling `Animated.createAnimatedComponent(FlatList)` manually.\n */\n// @ts-ignore This is required to create this overload, since type of createAnimatedComponent is incorrect and doesn't include typeof FlatList\nexport function createAnimatedComponent(\n component: typeof FlatList<unknown>,\n options?: Options<any>\n): ComponentClass<AnimateProps<FlatListProps<unknown>>>;\n\nlet id = 0;\n\nexport function createAnimatedComponent(\n Component: ComponentType<InitialComponentProps>,\n options?: Options<InitialComponentProps>\n): any {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n `Looks like you're passing a function component \\`${Component.name}\\` to \\`createAnimatedComponent\\` function which supports only class components. Please wrap your function component with \\`React.forwardRef()\\` or use a class component instead.`\n );\n\n class AnimatedComponent\n extends React.Component<AnimatedComponentProps<InitialComponentProps>>\n implements IAnimatedComponentInternal\n {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial<AnimatedComponentProps<AnimatedProps>>;\n _componentViewTag = -1;\n _isFirstRender = true;\n jestAnimatedStyle: { value: StyleProps } = { value: {} };\n _component: AnimatedComponentRef | HTMLElement | null = null;\n _sharedElementTransition: SharedTransition | null = null;\n _jsPropsUpdater = new JSPropsUpdater();\n _InlinePropManager = new InlinePropManager();\n _PropsFilter = new PropsFilter();\n _NativeEventsManager?: INativeEventsManager;\n _viewInfo?: ViewInfo;\n static displayName: string;\n static contextType = SkipEnteringContext;\n context!: React.ContextType<typeof SkipEnteringContext>;\n reanimatedID = id++;\n\n constructor(props: AnimatedComponentProps<InitialComponentProps>) {\n super(props);\n if (isJest()) {\n this.jestAnimatedStyle = { value: {} };\n }\n const entering = this.props.entering;\n if (entering && isFabric()) {\n updateLayoutAnimations(\n this.reanimatedID,\n LayoutAnimationType.ENTERING,\n maybeBuild(entering, this.props?.style, AnimatedComponent.displayName)\n );\n }\n }\n\n componentDidMount() {\n this._componentViewTag = this._getComponentViewTag();\n if (!IS_WEB) {\n // It exists only on native platforms. We initialize it here because the ref to the animated component is available only post-mount\n this._NativeEventsManager = new NativeEventsManager(this, options);\n }\n this._NativeEventsManager?.attachEvents();\n this._jsPropsUpdater.addOnJSPropsChangeListener(this);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n const layout = this.props.layout;\n if (layout) {\n this._configureLayoutTransition();\n }\n\n if (IS_WEB) {\n if (this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n if (\n !this.props.entering ||\n getReducedMotionFromConfig(this.props.entering as CustomConfig)\n ) {\n this._isFirstRender = false;\n return;\n }\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.ENTERING\n );\n }\n\n this._isFirstRender = false;\n }\n\n componentWillUnmount() {\n this._NativeEventsManager?.detachEvents();\n this._jsPropsUpdater.removeOnJSPropsChangeListener(this);\n this._detachStyles();\n this._InlinePropManager.detachInlineProps();\n if (this.props.sharedTransitionTag) {\n this._configureSharedTransition(true);\n }\n this._sharedElementTransition?.unregisterTransition(\n this._componentViewTag,\n true\n );\n\n const exiting = this.props.exiting;\n\n if (\n IS_WEB &&\n this._component &&\n exiting &&\n !getReducedMotionFromConfig(exiting as CustomConfig)\n ) {\n addHTMLMutationObserver();\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.EXITING\n );\n } else if (exiting && !IS_WEB && !isFabric()) {\n const reduceMotionInExiting =\n 'getReduceMotion' in exiting &&\n typeof exiting.getReduceMotion === 'function'\n ? getReduceMotionFromConfig(exiting.getReduceMotion())\n : getReduceMotionFromConfig();\n if (!reduceMotionInExiting) {\n updateLayoutAnimations(\n this._componentViewTag,\n LayoutAnimationType.EXITING,\n maybeBuild(\n exiting,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n }\n\n _getComponentViewTag() {\n return this._getViewInfo().viewTag as number;\n }\n\n _detachStyles() {\n if (this._componentViewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._componentViewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(\n this._componentViewTag\n );\n }\n if (isFabric()) {\n removeFromPropsRegistry(this._componentViewTag);\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n options.setNativeProps(this._component as AnimatedComponentRef, props);\n } else {\n (this._component as AnimatedComponentRef)?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo(): ViewInfo {\n if (this._viewInfo !== undefined) {\n return this._viewInfo;\n }\n\n let viewTag: number | HTMLElement | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n // Component can specify ref which should be animated when animated version of the component is created.\n // Otherwise, we animate the component itself.\n const component = (this._component as AnimatedComponentRef)\n ?.getAnimatableRef\n ? (this._component as AnimatedComponentRef).getAnimatableRef?.()\n : this;\n\n if (IS_WEB) {\n // At this point I assume that `_setComponentRef` was already called and `_component` is set.\n // `this._component` on web represents HTMLElement of our component, that's why we use casting\n viewTag = this._component as HTMLElement;\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(component);\n if (!hostInstance) {\n throw new Error(\n '[Reanimated] Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n\n const viewInfo = getViewInfo(hostInstance);\n viewTag = viewInfo.viewTag;\n viewName = viewInfo.viewName;\n viewConfig = viewInfo.viewConfig;\n shadowNodeWrapper = isFabric()\n ? getShadowNodeWrapperFromRef(this)\n : null;\n }\n this._viewInfo = { viewTag, viewName, shadowNodeWrapper, viewConfig };\n return this._viewInfo;\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray<StyleProps>(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._componentViewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n styles[0] === prevStyles[0];\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) => style === prevStyle);\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.jestAnimatedStyle.value = {\n ...this.jestAnimatedStyle.value,\n ...style.initial.value,\n };\n style.jestAnimatedStyle.current = this.jestAnimatedStyle;\n }\n });\n\n // detach old animatedProps\n if (prevAnimatedProps && prevAnimatedProps !== this.props.animatedProps) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n tag: viewTag as number,\n name: viewName!,\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps<InitialComponentProps>,\n _prevState: Readonly<unknown>,\n // This type comes straight from React\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n snapshot: DOMRect | null\n ) {\n const layout = this.props.layout;\n const oldLayout = prevProps.layout;\n if (layout !== oldLayout) {\n this._configureLayoutTransition();\n }\n if (\n this.props.sharedTransitionTag !== undefined ||\n prevProps.sharedTransitionTag !== undefined\n ) {\n this._configureSharedTransition();\n }\n this._NativeEventsManager?.updateEvents(prevProps);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n if (IS_WEB && this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n // Snapshot won't be undefined because it comes from getSnapshotBeforeUpdate method\n if (\n IS_WEB &&\n snapshot !== null &&\n this.props.layout &&\n !getReducedMotionFromConfig(this.props.layout as CustomConfig)\n ) {\n tryActivateLayoutTransition(\n this.props,\n this._component as HTMLElement,\n snapshot\n );\n }\n }\n\n _configureLayoutTransition() {\n if (IS_WEB) {\n return;\n }\n\n const layout = this.props.layout\n ? maybeBuild(\n this.props.layout,\n undefined /* We don't have to warn user if style has common properties with animation for LAYOUT */,\n AnimatedComponent.displayName\n )\n : undefined;\n updateLayoutAnimations(\n this._componentViewTag,\n LayoutAnimationType.LAYOUT,\n layout\n );\n }\n\n _configureSharedTransition(isUnmounting = false) {\n if (IS_WEB) {\n return;\n }\n\n const { sharedTransitionTag } = this.props;\n if (!sharedTransitionTag) {\n this._sharedElementTransition?.unregisterTransition(\n this._componentViewTag,\n isUnmounting\n );\n this._sharedElementTransition = null;\n return;\n }\n const sharedElementTransition =\n this.props.sharedTransitionStyle ??\n this._sharedElementTransition ??\n new SharedTransition();\n sharedElementTransition.registerTransition(\n this._componentViewTag,\n sharedTransitionTag,\n isUnmounting\n );\n this._sharedElementTransition = sharedElementTransition;\n }\n\n _setComponentRef = setAndForwardRef<Component | HTMLElement>({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component<Record<string, unknown>, Record<string, unknown>, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n\n const tag = IS_WEB\n ? (ref as HTMLElement)\n : findNodeHandle(ref as Component);\n\n this._componentViewTag = tag as number;\n\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n\n if (sharedTransitionTag) {\n this._configureSharedTransition();\n }\n if (exiting && isFabric()) {\n const reduceMotionInExiting =\n 'getReduceMotion' in exiting &&\n typeof exiting.getReduceMotion === 'function'\n ? getReduceMotionFromConfig(exiting.getReduceMotion())\n : getReduceMotionFromConfig();\n if (!reduceMotionInExiting) {\n updateLayoutAnimations(\n tag as number,\n LayoutAnimationType.EXITING,\n maybeBuild(\n exiting,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n\n const skipEntering = this.context?.current;\n if (entering && !skipEntering && !IS_WEB) {\n updateLayoutAnimations(\n tag as number,\n LayoutAnimationType.ENTERING,\n maybeBuild(\n entering,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n // This is a component lifecycle method from React, therefore we are not calling it directly.\n // It is called before the component gets rerendered. This way we can access components' position before it changed\n // and later on, in componentDidUpdate, calculate translation for layout transition.\n getSnapshotBeforeUpdate() {\n if (\n IS_WEB &&\n (this._component as HTMLElement)?.getBoundingClientRect !== undefined\n ) {\n return (this._component as HTMLElement).getBoundingClientRect();\n }\n\n return null;\n }\n\n render() {\n const filteredProps = this._PropsFilter.filterNonAnimatedProps(this);\n\n if (isJest()) {\n filteredProps.jestAnimatedStyle = this.jestAnimatedStyle;\n }\n\n // Layout animations on web are set inside `componentDidMount` method, which is called after first render.\n // Because of that we can encounter a situation in which component is visible for a short amount of time, and later on animation triggers.\n // I've tested that on various browsers and devices and it did not happen to me. To be sure that it won't happen to someone else,\n // I've decided to hide component at first render. Its visibility is reset in `componentDidMount`.\n if (\n this._isFirstRender &&\n IS_WEB &&\n filteredProps.entering &&\n !getReducedMotionFromConfig(filteredProps.entering as CustomConfig)\n ) {\n filteredProps.style = {\n ...(filteredProps.style ?? {}),\n visibility: 'hidden', // Hide component until `componentDidMount` triggers\n };\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n\n const skipEntering = this.context?.current;\n const nativeID =\n skipEntering || !isFabric() ? undefined : `${this.reanimatedID}`;\n\n return (\n <Component\n nativeID={nativeID}\n {...filteredProps}\n // Casting is used here, because ref can be null - in that case it cannot be assigned to HTMLElement.\n // After spending some time trying to figure out what to do with this problem, we decided to leave it this way\n ref={this._setComponentRef as (ref: Component) => void}\n {...platformProps}\n />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef<Component>((props, ref) => {\n return (\n <AnimatedComponent\n {...props}\n {...(ref === null ? null : { forwardedRef: ref })}\n />\n );\n });\n}\n"],"mappings":"AAAA,YAAY;;AAAC,SAAAA,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,gBAAAC,GAAA,EAAAN,GAAA,EAAAO,KAAA,IAAAP,GAAA,GAAAQ,cAAA,CAAAR,GAAA,OAAAA,GAAA,IAAAM,GAAA,IAAAd,MAAA,CAAAiB,cAAA,CAAAH,GAAA,EAAAN,GAAA,IAAAO,KAAA,EAAAA,KAAA,EAAAG,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAN,GAAA,CAAAN,GAAA,IAAAO,KAAA,WAAAD,GAAA;AAAA,SAAAE,eAAAK,CAAA,QAAAjB,CAAA,GAAAkB,YAAA,CAAAD,CAAA,uCAAAjB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAkB,aAAAD,CAAA,EAAAE,CAAA,2BAAAF,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAG,CAAA,GAAAH,CAAA,CAAAI,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAApB,CAAA,GAAAoB,CAAA,CAAAb,IAAA,CAAAU,CAAA,EAAAE,CAAA,uCAAAnB,CAAA,SAAAA,CAAA,YAAAuB,SAAA,yEAAAJ,CAAA,GAAAK,MAAA,GAAAC,MAAA,EAAAR,CAAA;AAQb,OAAOS,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,EAAEC,QAAQ,QAAQ,cAAc;AACvD,OAAO,wCAAwC;AAC/C,OAAOC,SAAS,MAAM,WAAW;AACjC,SAASC,eAAe,QAAQ,iBAAiB;AACjD,SAASC,UAAU,QAAQ,iCAAiC;AAC5D,SAASC,sBAAsB,QAAQ,SAAS;AAChD,SAASC,gBAAgB,EAAEC,mBAAmB,QAAQ,sBAAsB;AAE5E,SAASC,2BAA2B,QAAQ,gBAAgB;AAC5D,SAASC,uBAAuB,QAAQ,kBAAkB;AAC1D,SAASC,yBAAyB,QAAQ,mBAAmB;AAC7D,SAASC,UAAU,QAAQ,qBAAqB;AAChD,SAASC,mBAAmB,QAAQ,oCAAoC;AAExE,OAAOC,cAAc,MAAM,kBAAkB;AAU7C,SAASC,YAAY,QAAQ,SAAS;AACtC,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAEC,cAAc,QAAQ,oBAAoB;AAC5E,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,uBAAuB,EACvBC,2BAA2B,EAC3BC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,YAAY,QACP,0BAA0B;AACjC,SAASC,sBAAsB,QAAQ,2BAA2B;AAGlE,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,MAAM,GAAGb,KAAK,CAAC,CAAC;AAEtB,IAAIa,MAAM,EAAE;EACVP,4BAA4B,CAAC,CAAC;AAChC;AAEA,SAASQ,kBAAkBA,CAACC,MAAoB,EAAgB;EAC9D,OAAOA,MAAM,CAACC,MAAM,CAAEC,KAAK,IAAKA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,eAAe,CAAC;AACzD;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAkBA;AACA;AACA;AACA;;AAMA,IAAIC,EAAE,GAAG,CAAC;AAEV,OAAO,SAASC,uBAAuBA,CACrCC,SAA+C,EAC/CC,OAAwC,EACnC;EACLtC,SAAS,CACP,OAAOqC,SAAS,KAAK,UAAU,IAC5BA,SAAS,CAAC7D,SAAS,IAAI6D,SAAS,CAAC7D,SAAS,CAAC+D,gBAAiB,EAC9D,oDAAmDF,SAAS,CAACG,IAAK,oLACrE,CAAC;EAED,MAAMC,iBAAiB,SACb5C,KAAK,CAACwC,SAAS,CAEzB;IAkBEK,WAAWA,CAACC,KAAoD,EAAE;MAChE,KAAK,CAACA,KAAK,CAAC;MAAC/D,eAAA,kBAlBgB,IAAI;MAAAA,eAAA;MAAAA,eAAA,4BAEf,CAAC,CAAC;MAAAA,eAAA,yBACL,IAAI;MAAAA,eAAA,4BACsB;QAAEE,KAAK,EAAE,CAAC;MAAE,CAAC;MAAAF,eAAA,qBACA,IAAI;MAAAA,eAAA,mCACR,IAAI;MAAAA,eAAA,0BACtC,IAAI+B,cAAc,CAAC,CAAC;MAAA/B,eAAA,6BACjB,IAAIsC,iBAAiB,CAAC,CAAC;MAAAtC,eAAA,uBAC7B,IAAIuC,WAAW,CAAC,CAAC;MAAAvC,eAAA;MAAAA,eAAA;MAAAA,eAAA;MAAAA,eAAA,uBAMjBuD,EAAE,EAAE;MAAAvD,eAAA,2BAmVAiC,gBAAgB,CAA0B;QAC3D+B,eAAe,EAAEA,CAAA,KACf,IAAI,CAACD,KAAK,CAACE,YAEV;QACHC,WAAW,EAAGC,GAAG,IAAK;UACpB;;UAEA,MAAMC,GAAG,GAAGnB,MAAM,GACbkB,GAAG,GACJjD,cAAc,CAACiD,GAAgB,CAAC;UAEpC,IAAI,CAACE,iBAAiB,GAAGD,GAAa;UAEtC,MAAM;YAAEE,MAAM;YAAEC,QAAQ;YAAEC,OAAO;YAAEC;UAAoB,CAAC,GAAG,IAAI,CAACV,KAAK;UACrE,IACE,CAACO,MAAM,IAAIC,QAAQ,IAAIC,OAAO,IAAIC,mBAAmB,KACrDL,GAAG,IAAI,IAAI,EACX;YAAA,IAAAM,aAAA;YACA,IAAI,CAACrC,cAAc,CAAC,CAAC,EAAE;cACrBd,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC;YACrC;YAEA,IAAIkD,mBAAmB,EAAE;cACvB,IAAI,CAACE,0BAA0B,CAAC,CAAC;YACnC;YACA,IAAIH,OAAO,IAAItC,QAAQ,CAAC,CAAC,EAAE;cACzB,MAAM0C,qBAAqB,GACzB,iBAAiB,IAAIJ,OAAO,IAC5B,OAAOA,OAAO,CAACK,eAAe,KAAK,UAAU,GACzCjD,yBAAyB,CAAC4C,OAAO,CAACK,eAAe,CAAC,CAAC,CAAC,GACpDjD,yBAAyB,CAAC,CAAC;cACjC,IAAI,CAACgD,qBAAqB,EAAE;gBAAA,IAAAE,WAAA;gBAC1BjC,sBAAsB,CACpBuB,GAAG,EACH3C,mBAAmB,CAACsD,OAAO,EAC3BlD,UAAU,CACR2C,OAAO,GAAAM,WAAA,GACP,IAAI,CAACf,KAAK,cAAAe,WAAA,uBAAVA,WAAA,CAAYzB,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;cACH;YACF;YAEA,MAAMC,YAAY,IAAAP,aAAA,GAAG,IAAI,CAACQ,OAAO,cAAAR,aAAA,uBAAZA,aAAA,CAAcS,OAAO;YAC1C,IAAIZ,QAAQ,IAAI,CAACU,YAAY,IAAI,CAAChC,MAAM,EAAE;cAAA,IAAAmC,YAAA;cACxCvC,sBAAsB,CACpBuB,GAAG,EACH3C,mBAAmB,CAAC4D,QAAQ,EAC5BxD,UAAU,CACR0C,QAAQ,GAAAa,YAAA,GACR,IAAI,CAACrB,KAAK,cAAAqB,YAAA,uBAAVA,YAAA,CAAY/B,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;YACH;UACF;UAEA,IAAIb,GAAG,KAAK,IAAI,CAACmB,UAAU,EAAE;YAC3B,IAAI,CAACA,UAAU,GAAGnB,GAAG;UACvB;QACF;MACF,CAAC,CAAC;MA9YA,IAAIhC,MAAM,CAAC,CAAC,EAAE;QACZ,IAAI,CAACoD,iBAAiB,GAAG;UAAErF,KAAK,EAAE,CAAC;QAAE,CAAC;MACxC;MACA,MAAMqE,SAAQ,GAAG,IAAI,CAACR,KAAK,CAACQ,QAAQ;MACpC,IAAIA,SAAQ,IAAIrC,QAAQ,CAAC,CAAC,EAAE;QAAA,IAAAsD,YAAA;QAC1B3C,sBAAsB,CACpB,IAAI,CAAC4C,YAAY,EACjBhE,mBAAmB,CAAC4D,QAAQ,EAC5BxD,UAAU,CAAC0C,SAAQ,GAAAiB,YAAA,GAAE,IAAI,CAACzB,KAAK,cAAAyB,YAAA,uBAAVA,YAAA,CAAYnC,KAAK,EAAEQ,iBAAiB,CAACmB,WAAW,CACvE,CAAC;MACH;IACF;IAEAU,iBAAiBA,CAAA,EAAG;MAAA,IAAAC,qBAAA;MAClB,IAAI,CAACtB,iBAAiB,GAAG,IAAI,CAACuB,oBAAoB,CAAC,CAAC;MACpD,IAAI,CAAC3C,MAAM,EAAE;QACX;QACA,IAAI,CAAC4C,oBAAoB,GAAG,IAAI7C,mBAAmB,CAAC,IAAI,EAAEU,OAAO,CAAC;MACpE;MACA,CAAAiC,qBAAA,OAAI,CAACE,oBAAoB,cAAAF,qBAAA,eAAzBA,qBAAA,CAA2BG,YAAY,CAAC,CAAC;MACzC,IAAI,CAACC,eAAe,CAACC,0BAA0B,CAAC,IAAI,CAAC;MACrD,IAAI,CAACC,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,kBAAkB,CAACC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC;MAEpE,MAAM9B,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM;MAChC,IAAIA,MAAM,EAAE;QACV,IAAI,CAAC+B,0BAA0B,CAAC,CAAC;MACnC;MAEA,IAAIpD,MAAM,EAAE;QACV,IAAI,IAAI,CAACc,KAAK,CAACS,OAAO,EAAE;UACtB5B,YAAY,CAAC,IAAI,CAAC0C,UAAyB,CAAC;QAC9C;QAEA,IACE,CAAC,IAAI,CAACvB,KAAK,CAACQ,QAAQ,IACpB5B,0BAA0B,CAAC,IAAI,CAACoB,KAAK,CAACQ,QAAwB,CAAC,EAC/D;UACA,IAAI,CAAC+B,cAAc,GAAG,KAAK;UAC3B;QACF;QAEA9D,uBAAuB,CACrB,IAAI,CAACuB,KAAK,EACV,IAAI,CAACuB,UAAU,EACf7D,mBAAmB,CAAC4D,QACtB,CAAC;MACH;MAEA,IAAI,CAACiB,cAAc,GAAG,KAAK;IAC7B;IAEAC,oBAAoBA,CAAA,EAAG;MAAA,IAAAC,sBAAA,EAAAC,qBAAA;MACrB,CAAAD,sBAAA,OAAI,CAACX,oBAAoB,cAAAW,sBAAA,eAAzBA,sBAAA,CAA2BE,YAAY,CAAC,CAAC;MACzC,IAAI,CAACX,eAAe,CAACY,6BAA6B,CAAC,IAAI,CAAC;MACxD,IAAI,CAACC,aAAa,CAAC,CAAC;MACpB,IAAI,CAACV,kBAAkB,CAACW,iBAAiB,CAAC,CAAC;MAC3C,IAAI,IAAI,CAAC9C,KAAK,CAACU,mBAAmB,EAAE;QAClC,IAAI,CAACE,0BAA0B,CAAC,IAAI,CAAC;MACvC;MACA,CAAA8B,qBAAA,OAAI,CAACK,wBAAwB,cAAAL,qBAAA,eAA7BA,qBAAA,CAA+BM,oBAAoB,CACjD,IAAI,CAAC1C,iBAAiB,EACtB,IACF,CAAC;MAED,MAAMG,OAAO,GAAG,IAAI,CAACT,KAAK,CAACS,OAAO;MAElC,IACEvB,MAAM,IACN,IAAI,CAACqC,UAAU,IACfd,OAAO,IACP,CAAC7B,0BAA0B,CAAC6B,OAAuB,CAAC,EACpD;QACA1B,uBAAuB,CAAC,CAAC;QAEzBN,uBAAuB,CACrB,IAAI,CAACuB,KAAK,EACV,IAAI,CAACuB,UAAU,EACf7D,mBAAmB,CAACsD,OACtB,CAAC;MACH,CAAC,MAAM,IAAIP,OAAO,IAAI,CAACvB,MAAM,IAAI,CAACf,QAAQ,CAAC,CAAC,EAAE;QAC5C,MAAM0C,qBAAqB,GACzB,iBAAiB,IAAIJ,OAAO,IAC5B,OAAOA,OAAO,CAACK,eAAe,KAAK,UAAU,GACzCjD,yBAAyB,CAAC4C,OAAO,CAACK,eAAe,CAAC,CAAC,CAAC,GACpDjD,yBAAyB,CAAC,CAAC;QACjC,IAAI,CAACgD,qBAAqB,EAAE;UAAA,IAAAoC,YAAA;UAC1BnE,sBAAsB,CACpB,IAAI,CAACwB,iBAAiB,EACtB5C,mBAAmB,CAACsD,OAAO,EAC3BlD,UAAU,CACR2C,OAAO,GAAAwC,YAAA,GACP,IAAI,CAACjD,KAAK,cAAAiD,YAAA,uBAAVA,YAAA,CAAY3D,KAAK,EACjBQ,iBAAiB,CAACmB,WACpB,CACF,CAAC;QACH;MACF;IACF;IAEAY,oBAAoBA,CAAA,EAAG;MACrB,OAAO,IAAI,CAACQ,YAAY,CAAC,CAAC,CAACa,OAAO;IACpC;IAEAL,aAAaA,CAAA,EAAG;MACd,IAAI,IAAI,CAACvC,iBAAiB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC6C,OAAO,KAAK,IAAI,EAAE;QAAA,IAAAC,qBAAA;QAC1D,KAAK,MAAM9D,KAAK,IAAI,IAAI,CAAC6D,OAAO,EAAE;UAChC7D,KAAK,CAACC,eAAe,CAAC8D,MAAM,CAAC,IAAI,CAAC/C,iBAAiB,CAAC;QACtD;QACA,KAAA8C,qBAAA,GAAI,IAAI,CAACpD,KAAK,CAACsD,aAAa,cAAAF,qBAAA,eAAxBA,qBAAA,CAA0B7D,eAAe,EAAE;UAC7C,IAAI,CAACS,KAAK,CAACsD,aAAa,CAAC/D,eAAe,CAAC8D,MAAM,CAC7C,IAAI,CAAC/C,iBACP,CAAC;QACH;QACA,IAAInC,QAAQ,CAAC,CAAC,EAAE;UACdP,uBAAuB,CAAC,IAAI,CAAC0C,iBAAiB,CAAC;QACjD;MACF;IACF;IAEAiD,iBAAiBA,CAACvD,KAAiB,EAAE;MACnC,IAAIL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE6D,cAAc,EAAE;QAC3B7D,OAAO,CAAC6D,cAAc,CAAC,IAAI,CAACjC,UAAU,EAA0BvB,KAAK,CAAC;MACxE,CAAC,MAAM;QAAA,IAAAyD,gBAAA,EAAAC,qBAAA;QACL,CAAAD,gBAAA,GAAC,IAAI,CAAClC,UAAU,cAAAkC,gBAAA,gBAAAC,qBAAA,GAAhBD,gBAAA,CAA2CD,cAAc,cAAAE,qBAAA,eAAzDA,qBAAA,CAAA3H,IAAA,CAAA0H,gBAAA,EAA4DzD,KAAK,CAAC;MACpE;IACF;IAEAqC,YAAYA,CAAA,EAAa;MAAA,IAAAsB,iBAAA,EAAAC,iBAAA,EAAAC,IAAA;MACvB,IAAI,IAAI,CAACC,SAAS,KAAKC,SAAS,EAAE;QAChC,OAAO,IAAI,CAACD,SAAS;MACvB;MAEA,IAAIZ,OAAoC;MACxC,IAAIc,QAAuB;MAC3B,IAAIC,iBAA2C,GAAG,IAAI;MACtD,IAAIC,UAAU;MACd;MACA;MACA,MAAMC,SAAS,GAAG,CAAAR,iBAAA,GAAC,IAAI,CAACpC,UAAU,cAAAoC,iBAAA,eAAhBA,iBAAA,CACdS,gBAAgB,IAAAR,iBAAA,GAChB,CAAAC,IAAA,GAAC,IAAI,CAACtC,UAAU,EAA0B6C,gBAAgB,cAAAR,iBAAA,uBAA1DA,iBAAA,CAAA7H,IAAA,CAAA8H,IAA6D,CAAC,GAC9D,IAAI;MAER,IAAI3E,MAAM,EAAE;QACV;QACA;QACAgE,OAAO,GAAG,IAAI,CAAC3B,UAAyB;QACxCyC,QAAQ,GAAG,IAAI;QACfC,iBAAiB,GAAG,IAAI;QACxBC,UAAU,GAAG,IAAI;MACnB,CAAC,MAAM;QACL;QACA,MAAMG,YAAY,GAAG9G,UAAU,CAAC+G,2BAA2B,CAACH,SAAS,CAAC;QACtE,IAAI,CAACE,YAAY,EAAE;UACjB,MAAM,IAAIE,KAAK,CACb,sFACF,CAAC;QACH;QAEA,MAAMC,QAAQ,GAAGxF,WAAW,CAACqF,YAAY,CAAC;QAC1CnB,OAAO,GAAGsB,QAAQ,CAACtB,OAAO;QAC1Bc,QAAQ,GAAGQ,QAAQ,CAACR,QAAQ;QAC5BE,UAAU,GAAGM,QAAQ,CAACN,UAAU;QAChCD,iBAAiB,GAAG9F,QAAQ,CAAC,CAAC,GAC1BR,2BAA2B,CAAC,IAAI,CAAC,GACjC,IAAI;MACV;MACA,IAAI,CAACmG,SAAS,GAAG;QAAEZ,OAAO;QAAEc,QAAQ;QAAEC,iBAAiB;QAAEC;MAAW,CAAC;MACrE,OAAO,IAAI,CAACJ,SAAS;IACvB;IAEA5B,qBAAqBA,CAAA,EAAG;MAAA,IAAAuC,sBAAA,EAAAC,sBAAA;MACtB,MAAMtF,MAAM,GAAG,IAAI,CAACY,KAAK,CAACV,KAAK,GAC3BH,kBAAkB,CAAClB,YAAY,CAAa,IAAI,CAAC+B,KAAK,CAACV,KAAK,CAAC,CAAC,GAC9D,EAAE;MACN,MAAMqF,UAAU,GAAG,IAAI,CAACxB,OAAO;MAC/B,IAAI,CAACA,OAAO,GAAG/D,MAAM;MAErB,MAAMwF,iBAAiB,GAAG,IAAI,CAACC,cAAc;MAC7C,IAAI,CAACA,cAAc,GAAG,IAAI,CAAC7E,KAAK,CAACsD,aAAa;MAE9C,MAAM;QAAEJ,OAAO;QAAEc,QAAQ;QAAEC,iBAAiB;QAAEC;MAAW,CAAC,GACxD,IAAI,CAAC7B,YAAY,CAAC,CAAC;;MAErB;MACA,MAAMyC,mBAAmB,GACvB,EAAAL,sBAAA,OAAI,CAACzE,KAAK,CAACsD,aAAa,cAAAmB,sBAAA,uBAAxBA,sBAAA,CAA0BlF,eAAe,KAAIH,MAAM,CAAC1D,MAAM;MAC5D,IAAIoJ,mBAAmB,IAAIZ,UAAU,EAAE;QACrC5G,eAAe,CAAC4G,UAAU,CAAC;MAC7B;MAEA,IAAI,CAAC5D,iBAAiB,GAAG4C,OAAiB;;MAE1C;MACA,IAAIyB,UAAU,EAAE;QACd;QACA,MAAMI,eAAe,GACnB3F,MAAM,CAAC1D,MAAM,KAAK,CAAC,IACnBiJ,UAAU,CAACjJ,MAAM,KAAK,CAAC,IACvB0D,MAAM,CAAC,CAAC,CAAC,KAAKuF,UAAU,CAAC,CAAC,CAAC;QAE7B,IAAI,CAACI,eAAe,EAAE;UACpB;UACA,KAAK,MAAMC,SAAS,IAAIL,UAAU,EAAE;YAClC,MAAMM,SAAS,GAAG7F,MAAM,CAAC8F,IAAI,CAAE5F,KAAK,IAAKA,KAAK,KAAK0F,SAAS,CAAC;YAC7D,IAAI,CAACC,SAAS,EAAE;cACdD,SAAS,CAACzF,eAAe,CAAC8D,MAAM,CAACH,OAAO,CAAC;YAC3C;UACF;QACF;MACF;MAEA9D,MAAM,CAAC+F,OAAO,CAAE7F,KAAK,IAAK;QACxBA,KAAK,CAACC,eAAe,CAAC6F,GAAG,CAAC;UACxB/E,GAAG,EAAE6C,OAAO;UACZrD,IAAI,EAAEmE,QAAQ;UACdC;QACF,CAAC,CAAC;QACF,IAAI7F,MAAM,CAAC,CAAC,EAAE;UACZ;AACV;AACA;AACA;AACA;AACA;UACU,IAAI,CAACoD,iBAAiB,CAACrF,KAAK,GAAG;YAC7B,GAAG,IAAI,CAACqF,iBAAiB,CAACrF,KAAK;YAC/B,GAAGmD,KAAK,CAAC+F,OAAO,CAAClJ;UACnB,CAAC;UACDmD,KAAK,CAACkC,iBAAiB,CAACJ,OAAO,GAAG,IAAI,CAACI,iBAAiB;QAC1D;MACF,CAAC,CAAC;;MAEF;MACA,IAAIoD,iBAAiB,IAAIA,iBAAiB,KAAK,IAAI,CAAC5E,KAAK,CAACsD,aAAa,EAAE;QACvEsB,iBAAiB,CAACrF,eAAe,CAAE8D,MAAM,CAACH,OAAiB,CAAC;MAC9D;;MAEA;MACA,KAAAwB,sBAAA,GAAI,IAAI,CAAC1E,KAAK,CAACsD,aAAa,cAAAoB,sBAAA,eAAxBA,sBAAA,CAA0BnF,eAAe,EAAE;QAC7C,IAAI,CAACS,KAAK,CAACsD,aAAa,CAAC/D,eAAe,CAAC6F,GAAG,CAAC;UAC3C/E,GAAG,EAAE6C,OAAiB;UACtBrD,IAAI,EAAEmE,QAAS;UACfC,iBAAiB,EAAEA;QACrB,CAAC,CAAC;MACJ;IACF;IAEAqB,kBAAkBA,CAChBC,SAAwD,EACxDC,UAA6B;IAC7B;IACA;IACAC,QAAwB,EACxB;MAAA,IAAAC,sBAAA;MACA,MAAMnF,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM;MAChC,MAAMoF,SAAS,GAAGJ,SAAS,CAAChF,MAAM;MAClC,IAAIA,MAAM,KAAKoF,SAAS,EAAE;QACxB,IAAI,CAACrD,0BAA0B,CAAC,CAAC;MACnC;MACA,IACE,IAAI,CAACtC,KAAK,CAACU,mBAAmB,KAAKqD,SAAS,IAC5CwB,SAAS,CAAC7E,mBAAmB,KAAKqD,SAAS,EAC3C;QACA,IAAI,CAACnD,0BAA0B,CAAC,CAAC;MACnC;MACA,CAAA8E,sBAAA,OAAI,CAAC5D,oBAAoB,cAAA4D,sBAAA,eAAzBA,sBAAA,CAA2BE,YAAY,CAACL,SAAS,CAAC;MAClD,IAAI,CAACrD,qBAAqB,CAAC,CAAC;MAC5B,IAAI,CAACC,kBAAkB,CAACC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAACC,YAAY,CAAC,CAAC,CAAC;MAEpE,IAAInD,MAAM,IAAI,IAAI,CAACc,KAAK,CAACS,OAAO,EAAE;QAChC5B,YAAY,CAAC,IAAI,CAAC0C,UAAyB,CAAC;MAC9C;;MAEA;MACA,IACErC,MAAM,IACNuG,QAAQ,KAAK,IAAI,IACjB,IAAI,CAACzF,KAAK,CAACO,MAAM,IACjB,CAAC3B,0BAA0B,CAAC,IAAI,CAACoB,KAAK,CAACO,MAAsB,CAAC,EAC9D;QACA7B,2BAA2B,CACzB,IAAI,CAACsB,KAAK,EACV,IAAI,CAACuB,UAAU,EACfkE,QACF,CAAC;MACH;IACF;IAEAnD,0BAA0BA,CAAA,EAAG;MAC3B,IAAIpD,MAAM,EAAE;QACV;MACF;MAEA,MAAMqB,MAAM,GAAG,IAAI,CAACP,KAAK,CAACO,MAAM,GAC5BzC,UAAU,CACR,IAAI,CAACkC,KAAK,CAACO,MAAM,EACjBwD,SAAS,CAAC,2FACVjE,iBAAiB,CAACmB,WACpB,CAAC,GACD8C,SAAS;MACbjF,sBAAsB,CACpB,IAAI,CAACwB,iBAAiB,EACtB5C,mBAAmB,CAACmI,MAAM,EAC1BtF,MACF,CAAC;IACH;IAEAK,0BAA0BA,CAACkF,YAAY,GAAG,KAAK,EAAE;MAC/C,IAAI5G,MAAM,EAAE;QACV;MACF;MAEA,MAAM;QAAEwB;MAAoB,CAAC,GAAG,IAAI,CAACV,KAAK;MAC1C,IAAI,CAACU,mBAAmB,EAAE;QAAA,IAAAqF,sBAAA;QACxB,CAAAA,sBAAA,OAAI,CAAChD,wBAAwB,cAAAgD,sBAAA,eAA7BA,sBAAA,CAA+B/C,oBAAoB,CACjD,IAAI,CAAC1C,iBAAiB,EACtBwF,YACF,CAAC;QACD,IAAI,CAAC/C,wBAAwB,GAAG,IAAI;QACpC;MACF;MACA,MAAMiD,uBAAuB,GAC3B,IAAI,CAAChG,KAAK,CAACiG,qBAAqB,IAChC,IAAI,CAAClD,wBAAwB,IAC7B,IAAItF,gBAAgB,CAAC,CAAC;MACxBuI,uBAAuB,CAACE,kBAAkB,CACxC,IAAI,CAAC5F,iBAAiB,EACtBI,mBAAmB,EACnBoF,YACF,CAAC;MACD,IAAI,CAAC/C,wBAAwB,GAAGiD,uBAAuB;IACzD;IAmEA;IACA;IACA;IACAG,uBAAuBA,CAAA,EAAG;MAAA,IAAAC,iBAAA;MACxB,IACElH,MAAM,IACN,EAAAkH,iBAAA,GAAC,IAAI,CAAC7E,UAAU,cAAA6E,iBAAA,uBAAhBA,iBAAA,CAAkCC,qBAAqB,MAAKtC,SAAS,EACrE;QACA,OAAQ,IAAI,CAACxC,UAAU,CAAiB8E,qBAAqB,CAAC,CAAC;MACjE;MAEA,OAAO,IAAI;IACb;IAEAC,MAAMA,CAAA,EAAG;MAAA,IAAAC,cAAA;MACP,MAAMC,aAAa,GAAG,IAAI,CAACC,YAAY,CAACC,sBAAsB,CAAC,IAAI,CAAC;MAEpE,IAAItI,MAAM,CAAC,CAAC,EAAE;QACZoI,aAAa,CAAChF,iBAAiB,GAAG,IAAI,CAACA,iBAAiB;MAC1D;;MAEA;MACA;MACA;MACA;MACA,IACE,IAAI,CAACe,cAAc,IACnBrD,MAAM,IACNsH,aAAa,CAAChG,QAAQ,IACtB,CAAC5B,0BAA0B,CAAC4H,aAAa,CAAChG,QAAwB,CAAC,EACnE;QACAgG,aAAa,CAAClH,KAAK,GAAG;UACpB,IAAIkH,aAAa,CAAClH,KAAK,IAAI,CAAC,CAAC,CAAC;UAC9BqH,UAAU,EAAE,QAAQ,CAAE;QACxB,CAAC;MACH;MAEA,MAAMC,aAAa,GAAGxJ,QAAQ,CAACyJ,MAAM,CAAC;QACpCC,GAAG,EAAE,CAAC,CAAC;QACPC,OAAO,EAAE;UAAEC,WAAW,EAAE;QAAM;MAChC,CAAC,CAAC;MAEF,MAAM9F,YAAY,IAAAqF,cAAA,GAAG,IAAI,CAACpF,OAAO,cAAAoF,cAAA,uBAAZA,cAAA,CAAcnF,OAAO;MAC1C,MAAM6F,QAAQ,GACZ/F,YAAY,IAAI,CAAC/C,QAAQ,CAAC,CAAC,GAAG4F,SAAS,GAAI,GAAE,IAAI,CAACrC,YAAa,EAAC;MAElE,oBACExE,KAAA,CAAAgK,aAAA,CAACxH,SAAS,EAAAvE,QAAA;QACR8L,QAAQ,EAAEA;MAAS,GACfT,aAAa;QACjB;QACA;QACApG,GAAG,EAAE,IAAI,CAAC+G;MAA6C,GACnDP,aAAa,CAClB,CAAC;IAEN;EACF;EAAC3K,eAAA,CAheK6D,iBAAiB;EAAA7D,eAAA,CAAjB6D,iBAAiB,iBAiBA/B,mBAAmB;EAid1C+B,iBAAiB,CAACmB,WAAW,GAAI,qBAC/BvB,SAAS,CAACuB,WAAW,IAAIvB,SAAS,CAACG,IAAI,IAAI,WAC5C,GAAE;EAEH,oBAAO3C,KAAK,CAACkK,UAAU,CAAY,CAACpH,KAAK,EAAEI,GAAG,KAAK;IACjD,oBACElD,KAAA,CAAAgK,aAAA,CAACpH,iBAAiB,EAAA3E,QAAA,KACZ6E,KAAK,EACJI,GAAG,KAAK,IAAI,GAAG,IAAI,GAAG;MAAEF,YAAY,EAAEE;IAAI,CAAC,CACjD,CAAC;EAEN,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["commonTypes.ts"],"sourcesContent":["'use strict';\nimport type { Component, MutableRefObject } from 'react';\nimport type {\n AnimatedPropsAdapterFunction,\n ShadowNodeWrapper,\n SharedValue,\n WorkletFunction,\n} from '../commonTypes';\nimport type {\n ImageStyle,\n NativeSyntheticEvent,\n TextStyle,\n ViewStyle,\n NativeScrollEvent,\n} from 'react-native';\nimport type { ViewDescriptorsSet, ViewRefSet } from '../ViewDescriptorsSet';\nimport type { AnimatedStyle } from '../helperTypes';\n\nexport type DependencyList = Array<unknown> | undefined;\n\nexport interface Descriptor {\n tag: number;\n name: string;\n shadowNodeWrapper: ShadowNodeWrapper;\n}\n\nexport interface AnimatedRef<T extends Component> {\n (component?: T):\n | number // Paper\n | ShadowNodeWrapper // Fabric\n | HTMLElement; // web\n current: T | null;\n getTag: () => number;\n}\n\n// Might make that type generic if it's ever needed.\nexport type AnimatedRefOnJS = AnimatedRef<Component>;\n\n/**\n * `AnimatedRef` is mapped to this type on the UI thread via a shareable handle.\n */\nexport type AnimatedRefOnUI = {\n (): number | ShadowNodeWrapper | null;\n /**\n * @remarks `viewName` is required only on iOS with Paper and it's value is null on other platforms.\n */\n viewName: SharedValue<string | null>;\n};\n\ntype ReanimatedPayload = {\n eventName: string;\n};\n\n/**\n * This utility type is to convert type of events that would normally be\n * sent by React Native (they have `nativeEvent` field) to the type\n * that is sent by Reanimated.\n */\nexport type ReanimatedEvent<Event extends object> = ReanimatedPayload &\n (Event extends {\n nativeEvent: infer NativeEvent extends object;\n }\n ? NativeEvent\n : Event);\n\nexport type EventPayload<Event extends object> = Event extends {\n nativeEvent: infer NativeEvent extends object;\n}\n ? NativeEvent\n : Omit<Event, 'eventName'>;\n\nexport type NativeEventWrapper<Event extends object> = {\n nativeEvent: Event;\n};\n\nexport type DefaultStyle = ViewStyle | ImageStyle | TextStyle;\n\nexport type RNNativeScrollEvent = NativeSyntheticEvent<NativeScrollEvent>;\n\nexport type ReanimatedScrollEvent = ReanimatedEvent<RNNativeScrollEvent>;\n\nexport interface IWorkletEventHandler<Event extends object> {\n updateEventHandler: (\n newWorklet: (event: ReanimatedEvent<Event>) => void,\n newEvents: string[]\n ) => void;\n registerForEvents: (viewTag: number, fallbackEventName?: string) => void;\n unregisterFromEvents: (viewTag: number) => void;\n}\n\nexport interface AnimatedStyleHandle<\n Style extends DefaultStyle = DefaultStyle\n> {\n viewDescriptors: ViewDescriptorsSet;\n initial: {\n value: AnimatedStyle<Style>;\n updater: () => AnimatedStyle<Style>;\n };\n /**\n * @remarks `viewsRef` is only defined in Web implementation.\n */\n viewsRef: ViewRefSet<unknown> | undefined;\n}\n\nexport interface JestAnimatedStyleHandle<\n Style extends DefaultStyle = DefaultStyle\n> extends AnimatedStyleHandle<Style> {\n jestAnimatedStyle: MutableRefObject<AnimatedStyle<Style>>;\n}\n\nexport type UseAnimatedStyleInternal<Style extends DefaultStyle> = (\n updater: WorkletFunction<[], Style> | (() => Style),\n dependencies?: DependencyList | null,\n adapters?:\n | AnimatedPropsAdapterFunction\n | AnimatedPropsAdapterFunction[]\n | null,\n isAnimatedProps?: boolean\n) => AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style>;\n"],"mappings":"AAAA,YAAY;;AAAC","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["commonTypes.ts"],"sourcesContent":["'use strict';\nimport type { Component, MutableRefObject } from 'react';\nimport type {\n AnimatedPropsAdapterFunction,\n ShadowNodeWrapper,\n SharedValue,\n WorkletFunction,\n} from '../commonTypes';\nimport type {\n ImageStyle,\n NativeSyntheticEvent,\n TextStyle,\n ViewStyle,\n NativeScrollEvent,\n} from 'react-native';\nimport type { ViewDescriptorsSet } from '../ViewDescriptorsSet';\nimport type { AnimatedStyle } from '../helperTypes';\nimport type { ReanimatedHTMLElement } from '../js-reanimated';\n\nexport type DependencyList = Array<unknown> | undefined;\n\nexport interface Descriptor {\n tag: number | ReanimatedHTMLElement;\n name: string;\n shadowNodeWrapper: ShadowNodeWrapper;\n}\n\nexport interface AnimatedRef<T extends Component> {\n (component?: T):\n | number // Paper\n | ShadowNodeWrapper // Fabric\n | HTMLElement; // web\n current: T | null;\n getTag: () => number;\n}\n\n// Might make that type generic if it's ever needed.\nexport type AnimatedRefOnJS = AnimatedRef<Component>;\n\n/**\n * `AnimatedRef` is mapped to this type on the UI thread via a shareable handle.\n */\nexport type AnimatedRefOnUI = {\n (): number | ShadowNodeWrapper | null;\n /**\n * @remarks `viewName` is required only on iOS with Paper and it's value is null on other platforms.\n */\n viewName: SharedValue<string | null>;\n};\n\ntype ReanimatedPayload = {\n eventName: string;\n};\n\n/**\n * This utility type is to convert type of events that would normally be\n * sent by React Native (they have `nativeEvent` field) to the type\n * that is sent by Reanimated.\n */\nexport type ReanimatedEvent<Event extends object> = ReanimatedPayload &\n (Event extends {\n nativeEvent: infer NativeEvent extends object;\n }\n ? NativeEvent\n : Event);\n\nexport type EventPayload<Event extends object> = Event extends {\n nativeEvent: infer NativeEvent extends object;\n}\n ? NativeEvent\n : Omit<Event, 'eventName'>;\n\nexport type NativeEventWrapper<Event extends object> = {\n nativeEvent: Event;\n};\n\nexport type DefaultStyle = ViewStyle | ImageStyle | TextStyle;\n\nexport type RNNativeScrollEvent = NativeSyntheticEvent<NativeScrollEvent>;\n\nexport type ReanimatedScrollEvent = ReanimatedEvent<RNNativeScrollEvent>;\n\nexport interface IWorkletEventHandler<Event extends object> {\n updateEventHandler: (\n newWorklet: (event: ReanimatedEvent<Event>) => void,\n newEvents: string[]\n ) => void;\n registerForEvents: (viewTag: number, fallbackEventName?: string) => void;\n unregisterFromEvents: (viewTag: number) => void;\n}\n\nexport interface AnimatedStyleHandle<\n Style extends DefaultStyle = DefaultStyle\n> {\n viewDescriptors: ViewDescriptorsSet;\n initial: {\n value: AnimatedStyle<Style>;\n updater: () => AnimatedStyle<Style>;\n };\n}\n\nexport interface JestAnimatedStyleHandle<\n Style extends DefaultStyle = DefaultStyle\n> extends AnimatedStyleHandle<Style> {\n jestAnimatedStyle: MutableRefObject<AnimatedStyle<Style>>;\n}\n\nexport type UseAnimatedStyleInternal<Style extends DefaultStyle> = (\n updater: WorkletFunction<[], Style> | (() => Style),\n dependencies?: DependencyList | null,\n adapters?:\n | AnimatedPropsAdapterFunction\n | AnimatedPropsAdapterFunction[]\n | null,\n isAnimatedProps?: boolean\n) => AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style>;\n"],"mappings":"AAAA,YAAY;;AAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ import updateProps, { updatePropsJestWrapper } from '../UpdateProps';
6
6
  import { initialUpdaterRun } from '../animation';
7
7
  import { useSharedValue } from './useSharedValue';
8
8
  import { buildWorkletsHash, isAnimated, shallowEqual, validateAnimatedStyles } from './utils';
9
- import { makeViewDescriptorsSet, useViewRefSet } from '../ViewDescriptorsSet';
9
+ import { makeViewDescriptorsSet } from '../ViewDescriptorsSet';
10
10
  import { isJest, shouldBeUseWeb } from '../PlatformChecker';
11
11
  import { isWorkletFunction } from '../commonTypes';
12
12
  const SHOULD_BE_USE_WEB = shouldBeUseWeb();
@@ -96,7 +96,7 @@ function runAnimations(animation, timestamp, key, result, animationsActive) {
96
96
  return true;
97
97
  }
98
98
  }
99
- function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, isAnimatedProps = false) {
99
+ function styleUpdater(viewDescriptors, updater, state, animationsActive, isAnimatedProps = false) {
100
100
  'worklet';
101
101
 
102
102
  const animations = state.animations ?? {};
@@ -143,7 +143,7 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
143
143
  }
144
144
  }
145
145
  if (updates) {
146
- updateProps(viewDescriptors, updates, maybeViewRef);
146
+ updateProps(viewDescriptors, updates);
147
147
  }
148
148
  if (!allFinished) {
149
149
  requestAnimationFrame(frame);
@@ -158,18 +158,18 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
158
158
  frame(frameTimestamp);
159
159
  }
160
160
  if (hasNonAnimatedValues) {
161
- updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);
161
+ updateProps(viewDescriptors, nonAnimatedNewValues);
162
162
  }
163
163
  } else {
164
164
  state.isAnimationCancelled = true;
165
165
  state.animations = [];
166
166
  if (!shallowEqual(oldValues, newValues)) {
167
- updateProps(viewDescriptors, newValues, maybeViewRef, isAnimatedProps);
167
+ updateProps(viewDescriptors, newValues, isAnimatedProps);
168
168
  }
169
169
  }
170
170
  state.last = newValues;
171
171
  }
172
- function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, animatedStyle, adapters) {
172
+ function jestStyleUpdater(viewDescriptors, updater, state, animationsActive, animatedStyle, adapters) {
173
173
  'worklet';
174
174
 
175
175
  const animations = state.animations ?? {};
@@ -217,7 +217,7 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
217
217
  }
218
218
  });
219
219
  if (Object.keys(updates).length) {
220
- updatePropsJestWrapper(viewDescriptors, updates, maybeViewRef, animatedStyle, adapters);
220
+ updatePropsJestWrapper(viewDescriptors, updates, animatedStyle, adapters);
221
221
  }
222
222
  if (!allFinished) {
223
223
  requestAnimationFrame(frame);
@@ -240,7 +240,7 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
240
240
  // calculate diff
241
241
  state.last = newValues;
242
242
  if (!shallowEqual(oldValues, newValues)) {
243
- updatePropsJestWrapper(viewDescriptors, newValues, maybeViewRef, animatedStyle, adapters);
243
+ updatePropsJestWrapper(viewDescriptors, newValues, animatedStyle, adapters);
244
244
  }
245
245
  }
246
246
 
@@ -274,7 +274,6 @@ function checkSharedValueUsage(prop, currentKey) {
274
274
  // @ts-expect-error This overload is required by our API.
275
275
 
276
276
  export function useAnimatedStyle(updater, dependencies, adapters, isAnimatedProps = false) {
277
- const viewsRef = useViewRefSet();
278
277
  const animatedUpdaterData = useRef();
279
278
  let inputs = Object.values(updater.__closure ?? {});
280
279
  if (SHOULD_BE_USE_WEB) {
@@ -344,13 +343,13 @@ For more, see the docs: \`https://docs.swmansion.com/react-native-reanimated/doc
344
343
  fun = () => {
345
344
  'worklet';
346
345
 
347
- jestStyleUpdater(shareableViewDescriptors, updater, remoteState, viewsRef, areAnimationsActive, jestAnimatedStyle, adaptersArray);
346
+ jestStyleUpdater(shareableViewDescriptors, updater, remoteState, areAnimationsActive, jestAnimatedStyle, adaptersArray);
348
347
  };
349
348
  } else {
350
349
  fun = () => {
351
350
  'worklet';
352
351
 
353
- styleUpdater(shareableViewDescriptors, updaterFn, remoteState, viewsRef, areAnimationsActive, isAnimatedProps);
352
+ styleUpdater(shareableViewDescriptors, updaterFn, remoteState, areAnimationsActive, isAnimatedProps);
354
353
  };
355
354
  }
356
355
  const mapperId = startMapper(fun, inputs);
@@ -371,12 +370,10 @@ For more, see the docs: \`https://docs.swmansion.com/react-native-reanimated/doc
371
370
  animatedStyleHandle.current = isJest() ? {
372
371
  viewDescriptors,
373
372
  initial,
374
- viewsRef,
375
373
  jestAnimatedStyle
376
374
  } : {
377
- initial,
378
- viewsRef,
379
- viewDescriptors
375
+ viewDescriptors,
376
+ initial
380
377
  };
381
378
  }
382
379
  return animatedStyleHandle.current;
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","makeShareable","startMapper","stopMapper","updateProps","updatePropsJestWrapper","initialUpdaterRun","useSharedValue","buildWorkletsHash","isAnimated","shallowEqual","validateAnimatedStyles","makeViewDescriptorsSet","useViewRefSet","isJest","shouldBeUseWeb","isWorkletFunction","SHOULD_BE_USE_WEB","prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","Object","keys","key","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","maybeViewRef","isAnimatedProps","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","global","__frameTimestamp","_getAnimationTimestamp","frame","isAnimationCancelled","isAnimationRunning","updates","propName","requestAnimationFrame","jestStyleUpdater","animatedStyle","adapters","length","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","viewsRef","animatedUpdaterData","inputs","values","__closure","_dependencies","__DEV__","adaptersArray","adaptersHash","areAnimationsActive","jestAnimatedStyle","__workletHash","push","initialStyle","initial","remoteState","shareableViewDescriptors","fun","updaterFn","adapter","mapperId","animatedStyleHandle"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["'use strict';\nimport type { MutableRefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { makeShareable, startMapper, stopMapper } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport type {\n AnimatedStyleHandle,\n DefaultStyle,\n DependencyList,\n Descriptor,\n JestAnimatedStyleHandle,\n} from './commonTypes';\nimport type { ViewDescriptorsSet, ViewRefSet } from '../ViewDescriptorsSet';\nimport { makeViewDescriptorsSet, useViewRefSet } from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport type {\n AnimationObject,\n Timestamp,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n WorkletFunction,\n AnimatedPropsAdapterFunction,\n AnimatedPropsAdapterWorklet,\n} from '../commonTypes';\nimport type { AnimatedStyle } from '../helperTypes';\nimport { isWorkletFunction } from '../commonTypes';\n\nconst SHOULD_BE_USE_WEB = shouldBeUseWeb();\n\ninterface AnimatedState {\n last: AnimatedStyle<any>;\n animations: AnimatedStyle<any>;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimatedUpdaterData {\n initial: {\n value: AnimatedStyle<any>;\n updater: () => AnimatedStyle<any>;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle<any>,\n lastAnimation: AnimatedStyle<any>,\n lastValue: AnimatedStyle<any>\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined && lastValue !== null) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle<any>,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle<any>,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: WorkletFunction<[], AnimatedStyle<any>> | (() => AnimatedStyle<any>),\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n isAnimatedProps = false\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp =\n global.__frameTimestamp || global._getAnimationTimestamp();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle<any> = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, maybeViewRef, isAnimatedProps);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: WorkletFunction<[], AnimatedStyle<any>> | (() => AnimatedStyle<any>),\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle<any>>,\n adapters: AnimatedPropsAdapterFunction[]\n): void {\n 'worklet';\n const animations: AnimatedStyle<any> = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp =\n global.__frameTimestamp || global._getAnimationTimestamp();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle<any> = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(\n viewDescriptors,\n newValues,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (\n typeof prop === 'object' &&\n prop !== null &&\n prop.value === undefined\n ) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop !== null &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `[Reanimated] Invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\n/**\n * Lets you create a styles object, similar to StyleSheet styles, which can be animated using shared values.\n *\n * @param updater - A function returning an object with style properties you want to animate.\n * @param dependencies - An optional array of dependencies. Only relevant when using Reanimated without the Babel plugin on the Web.\n * @returns An animated style object which has to be passed to the `style` property of an Animated component you want to animate.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedStyle\n */\n// You cannot pass Shared Values to `useAnimatedStyle` directly.\n// @ts-expect-error This overload is required by our API.\nexport function useAnimatedStyle<Style extends DefaultStyle>(\n updater: () => Style,\n dependencies?: DependencyList | null\n): Style;\n\nexport function useAnimatedStyle<Style extends DefaultStyle>(\n updater:\n | WorkletFunction<[], Style>\n | ((() => Style) & Record<string, unknown>),\n dependencies?: DependencyList | null,\n adapters?: AnimatedPropsAdapterWorklet | AnimatedPropsAdapterWorklet[] | null,\n isAnimatedProps = false\n): AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style> {\n const viewsRef: ViewRefSet<unknown> | undefined = useViewRefSet();\n const animatedUpdaterData = useRef<AnimatedUpdaterData>();\n let inputs = Object.values(updater.__closure ?? {});\n if (SHOULD_BE_USE_WEB) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel plugin\n inputs = dependencies;\n }\n if (\n __DEV__ &&\n !inputs.length &&\n !dependencies &&\n !isWorkletFunction(updater)\n ) {\n throw new Error(\n `[Reanimated] \\`useAnimatedStyle\\` was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel plugin.\nFor more, see the docs: \\`https://docs.swmansion.com/react-native-reanimated/docs/guides/web-support#web-without-the-babel-plugin\\`.`\n );\n }\n }\n const adaptersArray = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const areAnimationsActive = useSharedValue<boolean>(true);\n const jestAnimatedStyle = useRef<Style>({} as Style);\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!animatedUpdaterData.current) {\n const initialStyle = initialUpdaterRun(updater);\n if (__DEV__) {\n validateAnimatedStyles(initialStyle);\n }\n animatedUpdaterData.current = {\n initial: {\n value: initialStyle,\n updater,\n },\n remoteState: makeShareable({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n const { initial, remoteState, viewDescriptors } = animatedUpdaterData.current;\n const shareableViewDescriptors = viewDescriptors.shareableViewDescriptors;\n\n dependencies.push(shareableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater;\n if (adapters) {\n updaterFn = (() => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues as Record<string, unknown>);\n });\n return newValues;\n }) as WorkletFunction<[], Style>;\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n shareableViewDescriptors,\n updater,\n remoteState,\n viewsRef,\n areAnimationsActive,\n jestAnimatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n shareableViewDescriptors,\n updaterFn,\n remoteState,\n viewsRef,\n areAnimationsActive,\n isAnimatedProps\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n\n useEffect(() => {\n areAnimationsActive.value = true;\n return () => {\n areAnimationsActive.value = false;\n };\n }, [areAnimationsActive]);\n\n checkSharedValueUsage(initial.value);\n\n const animatedStyleHandle = useRef<\n AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style> | null\n >(null);\n\n if (!animatedStyleHandle.current) {\n animatedStyleHandle.current = isJest()\n ? { viewDescriptors, initial, viewsRef, jestAnimatedStyle }\n : { initial, viewsRef, viewDescriptors };\n }\n\n return animatedStyleHandle.current;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","makeShareable","startMapper","stopMapper","updateProps","updatePropsJestWrapper","initialUpdaterRun","useSharedValue","buildWorkletsHash","isAnimated","shallowEqual","validateAnimatedStyles","makeViewDescriptorsSet","isJest","shouldBeUseWeb","isWorkletFunction","SHOULD_BE_USE_WEB","prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","Object","keys","key","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","isAnimatedProps","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","global","__frameTimestamp","_getAnimationTimestamp","frame","isAnimationCancelled","isAnimationRunning","updates","propName","requestAnimationFrame","jestStyleUpdater","animatedStyle","adapters","length","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","animatedUpdaterData","inputs","values","__closure","_dependencies","__DEV__","adaptersArray","adaptersHash","areAnimationsActive","jestAnimatedStyle","__workletHash","push","initialStyle","initial","remoteState","shareableViewDescriptors","fun","updaterFn","adapter","mapperId","animatedStyleHandle"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["'use strict';\nimport type { MutableRefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nimport { makeShareable, startMapper, stopMapper } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport type {\n AnimatedStyleHandle,\n DefaultStyle,\n DependencyList,\n Descriptor,\n JestAnimatedStyleHandle,\n} from './commonTypes';\nimport type { ViewDescriptorsSet } from '../ViewDescriptorsSet';\nimport { makeViewDescriptorsSet } from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport type {\n AnimationObject,\n Timestamp,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n WorkletFunction,\n AnimatedPropsAdapterFunction,\n AnimatedPropsAdapterWorklet,\n} from '../commonTypes';\nimport type { AnimatedStyle } from '../helperTypes';\nimport { isWorkletFunction } from '../commonTypes';\n\nconst SHOULD_BE_USE_WEB = shouldBeUseWeb();\n\ninterface AnimatedState {\n last: AnimatedStyle<any>;\n animations: AnimatedStyle<any>;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimatedUpdaterData {\n initial: {\n value: AnimatedStyle<any>;\n updater: () => AnimatedStyle<any>;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle<any>,\n lastAnimation: AnimatedStyle<any>,\n lastValue: AnimatedStyle<any>\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined && lastValue !== null) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle<any>,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle<any>,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: WorkletFunction<[], AnimatedStyle<any>> | (() => AnimatedStyle<any>),\n state: AnimatedState,\n animationsActive: SharedValue<boolean>,\n isAnimatedProps = false\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp =\n global.__frameTimestamp || global._getAnimationTimestamp();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle<any> = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, isAnimatedProps);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: WorkletFunction<[], AnimatedStyle<any>> | (() => AnimatedStyle<any>),\n state: AnimatedState,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle<any>>,\n adapters: AnimatedPropsAdapterFunction[]\n): void {\n 'worklet';\n const animations: AnimatedStyle<any> = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp =\n global.__frameTimestamp || global._getAnimationTimestamp();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle<any> = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(viewDescriptors, updates, animatedStyle, adapters);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(viewDescriptors, newValues, animatedStyle, adapters);\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (\n typeof prop === 'object' &&\n prop !== null &&\n prop.value === undefined\n ) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop !== null &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `[Reanimated] Invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\n/**\n * Lets you create a styles object, similar to StyleSheet styles, which can be animated using shared values.\n *\n * @param updater - A function returning an object with style properties you want to animate.\n * @param dependencies - An optional array of dependencies. Only relevant when using Reanimated without the Babel plugin on the Web.\n * @returns An animated style object which has to be passed to the `style` property of an Animated component you want to animate.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedStyle\n */\n// You cannot pass Shared Values to `useAnimatedStyle` directly.\n// @ts-expect-error This overload is required by our API.\nexport function useAnimatedStyle<Style extends DefaultStyle>(\n updater: () => Style,\n dependencies?: DependencyList | null\n): Style;\n\nexport function useAnimatedStyle<Style extends DefaultStyle>(\n updater:\n | WorkletFunction<[], Style>\n | ((() => Style) & Record<string, unknown>),\n dependencies?: DependencyList | null,\n adapters?: AnimatedPropsAdapterWorklet | AnimatedPropsAdapterWorklet[] | null,\n isAnimatedProps = false\n): AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style> {\n const animatedUpdaterData = useRef<AnimatedUpdaterData>();\n let inputs = Object.values(updater.__closure ?? {});\n if (SHOULD_BE_USE_WEB) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel plugin\n inputs = dependencies;\n }\n if (\n __DEV__ &&\n !inputs.length &&\n !dependencies &&\n !isWorkletFunction(updater)\n ) {\n throw new Error(\n `[Reanimated] \\`useAnimatedStyle\\` was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel plugin.\nFor more, see the docs: \\`https://docs.swmansion.com/react-native-reanimated/docs/guides/web-support#web-without-the-babel-plugin\\`.`\n );\n }\n }\n const adaptersArray = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const areAnimationsActive = useSharedValue<boolean>(true);\n const jestAnimatedStyle = useRef<Style>({} as Style);\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!animatedUpdaterData.current) {\n const initialStyle = initialUpdaterRun(updater);\n if (__DEV__) {\n validateAnimatedStyles(initialStyle);\n }\n animatedUpdaterData.current = {\n initial: {\n value: initialStyle,\n updater,\n },\n remoteState: makeShareable({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n const { initial, remoteState, viewDescriptors } = animatedUpdaterData.current;\n const shareableViewDescriptors = viewDescriptors.shareableViewDescriptors;\n\n dependencies.push(shareableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater;\n if (adapters) {\n updaterFn = (() => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues as Record<string, unknown>);\n });\n return newValues;\n }) as WorkletFunction<[], Style>;\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n shareableViewDescriptors,\n updater,\n remoteState,\n areAnimationsActive,\n jestAnimatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n shareableViewDescriptors,\n updaterFn,\n remoteState,\n areAnimationsActive,\n isAnimatedProps\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n\n useEffect(() => {\n areAnimationsActive.value = true;\n return () => {\n areAnimationsActive.value = false;\n };\n }, [areAnimationsActive]);\n\n checkSharedValueUsage(initial.value);\n\n const animatedStyleHandle = useRef<\n AnimatedStyleHandle<Style> | JestAnimatedStyleHandle<Style> | null\n >(null);\n\n if (!animatedStyleHandle.current) {\n animatedStyleHandle.current = isJest()\n ? { viewDescriptors, initial, jestAnimatedStyle }\n : { viewDescriptors, initial };\n }\n\n return animatedStyleHandle.current;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -31,10 +31,10 @@ export function useFrameCallback(callback, autostart = true) {
31
31
  });
32
32
  useEffect(() => {
33
33
  ref.current.callbackId = frameCallbackRegistry.registerFrameCallback(callback);
34
+ const memoizedId = ref.current.callbackId;
34
35
  ref.current.setActive(ref.current.isActive);
35
36
  return () => {
36
- frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);
37
- ref.current.callbackId = -1;
37
+ frameCallbackRegistry.unregisterFrameCallback(memoizedId);
38
38
  };
39
39
  }, [callback, autostart]);
40
40
  return ref.current;
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["'use strict';\nimport { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport type { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\n/**\n * @param setActive - A function that lets you start the frame callback or stop it from running.\n * @param isActive - A boolean indicating whether a callback is running.\n * @param callbackId - A number indicating a unique identifier of the frame callback.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/advanced/useFrameCallback#returns\n */\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\n/**\n * Lets you run a function on every frame update.\n *\n * @param callback - A function executed on every frame update.\n * @param autostart - Whether the callback should start automatically. Defaults to `true`.\n * @returns A frame callback object - {@link FrameCallback}.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/advanced/useFrameCallback\n */\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId);\n ref.current.callbackId = -1;\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,YAAY;;AACZ,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,OAAOC,uBAAuB,MAAM,0CAA0C;;AAG9E;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMC,qBAAqB,GAAG,IAAID,uBAAuB,CAAC,CAAC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,gBAAgBA,CAC9BC,QAAwC,EACxCC,SAAS,GAAG,IAAI,EACD;EACf,MAAMC,GAAG,GAAGN,MAAM,CAAgB;IAChCO,SAAS,EAAGC,QAAiB,IAAK;MAChCN,qBAAqB,CAACO,wBAAwB,CAC5CH,GAAG,CAACI,OAAO,CAACC,UAAU,EACtBH,QACF,CAAC;MACDF,GAAG,CAACI,OAAO,CAACF,QAAQ,GAAGA,QAAQ;IACjC,CAAC;IACDA,QAAQ,EAAEH,SAAS;IACnBM,UAAU,EAAE,CAAC;EACf,CAAC,CAAC;EAEFZ,SAAS,CAAC,MAAM;IACdO,GAAG,CAACI,OAAO,CAACC,UAAU,GACpBT,qBAAqB,CAACU,qBAAqB,CAACR,QAAQ,CAAC;IACvDE,GAAG,CAACI,OAAO,CAACH,SAAS,CAACD,GAAG,CAACI,OAAO,CAACF,QAAQ,CAAC;IAE3C,OAAO,MAAM;MACXN,qBAAqB,CAACW,uBAAuB,CAACP,GAAG,CAACI,OAAO,CAACC,UAAU,CAAC;MACrEL,GAAG,CAACI,OAAO,CAACC,UAAU,GAAG,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CAACP,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAEzB,OAAOC,GAAG,CAACI,OAAO;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","FrameCallbackRegistryJS","frameCallbackRegistry","useFrameCallback","callback","autostart","ref","setActive","isActive","manageStateFrameCallback","current","callbackId","registerFrameCallback","memoizedId","unregisterFrameCallback"],"sources":["useFrameCallback.ts"],"sourcesContent":["'use strict';\nimport { useEffect, useRef } from 'react';\nimport FrameCallbackRegistryJS from '../frameCallback/FrameCallbackRegistryJS';\nimport type { FrameInfo } from '../frameCallback/FrameCallbackRegistryUI';\n\n/**\n * @param setActive - A function that lets you start the frame callback or stop it from running.\n * @param isActive - A boolean indicating whether a callback is running.\n * @param callbackId - A number indicating a unique identifier of the frame callback.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/advanced/useFrameCallback#returns\n */\nexport type FrameCallback = {\n setActive: (isActive: boolean) => void;\n isActive: boolean;\n callbackId: number;\n};\nconst frameCallbackRegistry = new FrameCallbackRegistryJS();\n\n/**\n * Lets you run a function on every frame update.\n *\n * @param callback - A function executed on every frame update.\n * @param autostart - Whether the callback should start automatically. Defaults to `true`.\n * @returns A frame callback object - {@link FrameCallback}.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/advanced/useFrameCallback\n */\nexport function useFrameCallback(\n callback: (frameInfo: FrameInfo) => void,\n autostart = true\n): FrameCallback {\n const ref = useRef<FrameCallback>({\n setActive: (isActive: boolean) => {\n frameCallbackRegistry.manageStateFrameCallback(\n ref.current.callbackId,\n isActive\n );\n ref.current.isActive = isActive;\n },\n isActive: autostart,\n callbackId: -1,\n });\n\n useEffect(() => {\n ref.current.callbackId =\n frameCallbackRegistry.registerFrameCallback(callback);\n const memoizedId = ref.current.callbackId;\n ref.current.setActive(ref.current.isActive);\n\n return () => {\n frameCallbackRegistry.unregisterFrameCallback(memoizedId);\n };\n }, [callback, autostart]);\n\n return ref.current;\n}\n"],"mappings":"AAAA,YAAY;;AACZ,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,OAAOC,uBAAuB,MAAM,0CAA0C;;AAG9E;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMC,qBAAqB,GAAG,IAAID,uBAAuB,CAAC,CAAC;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,gBAAgBA,CAC9BC,QAAwC,EACxCC,SAAS,GAAG,IAAI,EACD;EACf,MAAMC,GAAG,GAAGN,MAAM,CAAgB;IAChCO,SAAS,EAAGC,QAAiB,IAAK;MAChCN,qBAAqB,CAACO,wBAAwB,CAC5CH,GAAG,CAACI,OAAO,CAACC,UAAU,EACtBH,QACF,CAAC;MACDF,GAAG,CAACI,OAAO,CAACF,QAAQ,GAAGA,QAAQ;IACjC,CAAC;IACDA,QAAQ,EAAEH,SAAS;IACnBM,UAAU,EAAE,CAAC;EACf,CAAC,CAAC;EAEFZ,SAAS,CAAC,MAAM;IACdO,GAAG,CAACI,OAAO,CAACC,UAAU,GACpBT,qBAAqB,CAACU,qBAAqB,CAACR,QAAQ,CAAC;IACvD,MAAMS,UAAU,GAAGP,GAAG,CAACI,OAAO,CAACC,UAAU;IACzCL,GAAG,CAACI,OAAO,CAACH,SAAS,CAACD,GAAG,CAACI,OAAO,CAACF,QAAQ,CAAC;IAE3C,OAAO,MAAM;MACXN,qBAAqB,CAACY,uBAAuB,CAACD,UAAU,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACT,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAEzB,OAAOC,GAAG,CAACI,OAAO;AACpB","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useCallback } from 'react';
4
4
  /**
5
- * @deprecated don't use
5
+ * @deprecated use React.useCallback instead
6
6
  */
7
7
  export function useWorkletCallback(worklet, deps) {
8
8
  return useCallback(worklet, deps ?? []);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useWorkletCallback","worklet","deps"],"sources":["useWorkletCallback.ts"],"sourcesContent":["'use strict';\nimport { useCallback } from 'react';\nimport type { DependencyList } from './commonTypes';\n\n/**\n * @deprecated don't use\n */\nexport function useWorkletCallback<Args extends unknown[], ReturnValue>(\n worklet: (...args: Args) => ReturnValue,\n deps?: DependencyList\n) {\n return useCallback(worklet, deps ?? []);\n}\n"],"mappings":"AAAA,YAAY;;AACZ,SAASA,WAAW,QAAQ,OAAO;AAGnC;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,OAAuC,EACvCC,IAAqB,EACrB;EACA,OAAOH,WAAW,CAACE,OAAO,EAAEC,IAAI,IAAI,EAAE,CAAC;AACzC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useWorkletCallback","worklet","deps"],"sources":["useWorkletCallback.ts"],"sourcesContent":["'use strict';\nimport { useCallback } from 'react';\nimport type { DependencyList } from './commonTypes';\n\n/**\n * @deprecated use React.useCallback instead\n */\nexport function useWorkletCallback<Args extends unknown[], ReturnValue>(\n worklet: (...args: Args) => ReturnValue,\n deps?: DependencyList\n) {\n return useCallback(worklet, deps ?? []);\n}\n"],"mappings":"AAAA,YAAY;;AACZ,SAASA,WAAW,QAAQ,OAAO;AAGnC;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,OAAuC,EACvCC,IAAqB,EACrB;EACA,OAAOH,WAAW,CAACE,OAAO,EAAEC,IAAI,IAAI,EAAE,CAAC;AACzC","ignoreList":[]}
@@ -1,33 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  import JSReanimated from './JSReanimated';
4
- import { isWeb } from '../PlatformChecker';
4
+ import { createReactDOMStyle, createTransformValue, createTextShadowValue } from './webUtils';
5
5
  import { PropsAllowlists } from '../propsAllowlists';
6
-
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- let createReactDOMStyle;
9
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
- let createTransformValue;
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- let createTextShadowValue;
13
- if (isWeb()) {
14
- try {
15
- createReactDOMStyle =
16
- // eslint-disable-next-line @typescript-eslint/no-var-requires
17
- require('react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle').default;
18
- } catch (e) {}
19
- try {
20
- // React Native Web 0.19+
21
- createTransformValue =
22
- // eslint-disable-next-line @typescript-eslint/no-var-requires
23
- require('react-native-web/dist/exports/StyleSheet/preprocess').createTransformValue;
24
- } catch (e) {}
25
- try {
26
- createTextShadowValue =
27
- // eslint-disable-next-line @typescript-eslint/no-var-requires
28
- require('react-native-web/dist/exports/StyleSheet/preprocess').createTextShadowValue;
29
- } catch (e) {}
30
- }
31
6
  const reanimatedJS = new JSReanimated();
32
7
  global._makeShareableClone = () => {
33
8
  throw new Error('[Reanimated] _makeShareableClone should never be called in JSReanimated.');
@@ -39,8 +14,8 @@ global._scheduleOnRuntime = () => {
39
14
  throw new Error('[Reanimated] _scheduleOnRuntime should never be called in JSReanimated.');
40
15
  };
41
16
  export const _updatePropsJS = (updates, viewRef, isAnimatedProps) => {
42
- if (viewRef._component) {
43
- const component = viewRef._component.getAnimatableRef ? viewRef._component.getAnimatableRef() : viewRef._component;
17
+ if (viewRef) {
18
+ const component = viewRef.getAnimatableRef ? viewRef.getAnimatableRef() : viewRef;
44
19
  const [rawStyles] = Object.keys(updates).reduce((acc, key) => {
45
20
  const value = updates[key];
46
21
  const index = typeof value === 'function' ? 1 : 0;