{"version":3,"sources":["node_modules/react/index.js","node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/react-native-web/node_modules/fbjs/lib/invariant.js","node_modules/react-native-web/dist/exports/View/index.js","node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@babel/runtime/helpers/createClass.js","node_modules/react-native-web/node_modules/fbjs/lib/ExecutionEnvironment.js","node_modules/@babel/runtime/helpers/inherits.js","node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/exports/Text/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValue.js","node_modules/react-native-web/dist/exports/Button/index.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/react-native-web/dist/modules/setValueForStyles/dangerousStyleValue.js","node_modules/react-native-web/dist/modules/setValueForStyles/index.js","node_modules/react-native-web/dist/exports/UIManager/index.js","node_modules/react-native-web/dist/exports/createElement/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","node_modules/react-native-web/dist/modules/ScrollResponder/index.js","node_modules/react-native-web/dist/exports/ScrollView/ScrollViewBase.js","node_modules/react-native-web/dist/exports/ScrollView/index.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/exports/Dimensions/index.js","node_modules/react-native-web/dist/modules/useMergeRefs/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTransform.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedStyle.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedProps.js","node_modules/react-native-web/dist/vendor/react-native/Utilities/setAndForwardRef.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedFlatList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedImage.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedScrollView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedSectionList.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedText.js","node_modules/react-native-web/dist/vendor/react-native/Animated/components/AnimatedView.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedAddition.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDiffClamp.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedDivision.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedModulo.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedMultiplication.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedSubtraction.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedTracking.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedMock.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Animated.js","node_modules/react-native-web/dist/exports/Animated/index.js","node_modules/nanoid/non-secure/index.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/StyleSheet/constants.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","node_modules/@babel/runtime/helpers/extends.js","CommonActions.tsx","BaseRouter.tsx","StackRouter.tsx","createNavigationContainerRef.tsx","EnsureSingleNavigator.tsx","findFocusedRoute.tsx","NavigationBuilderContext.tsx","NavigationContainerRefContext.tsx","NavigationContext.tsx","NavigationRouteContext.tsx","NavigationStateContext.tsx","UnhandledActionContext.tsx","useChildListeners.tsx","useEventEmitter.tsx","useKeyedChildListeners.tsx","useOptionsGetters.tsx","useScheduleUpdate.tsx","useSyncState.tsx","BaseNavigationContainer.tsx","Group.tsx","Screen.tsx","createNavigatorFactory.tsx","CurrentRenderContext.tsx","getActionFromState.tsx","useRouteCache.tsx","fromEntries.tsx","validatePathConfig.tsx","getPathFromState.tsx","getStateFromPath.tsx","NavigationHelpersContext.tsx","types.tsx","isArrayEqual.tsx","StaticContainer.tsx","SceneView.tsx","useDescriptors.tsx","useNavigationCache.tsx","useOnPreventRemove.tsx","useOnAction.tsx","useNavigationBuilder.tsx","useRegisterNavigator.tsx","isRecordEqual.tsx","useFocusEvents.tsx","useOnRouteFocus.tsx","useNavigationHelpers.tsx","useFocusedListenersChildrenAdapter.tsx","useOnGetState.tsx","useCurrentRender.tsx","useComponent.tsx","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EmitterSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscription.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventSubscriptionVendor.js","node_modules/react-native-web/dist/vendor/react-native/emitter/_EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/emitter/EventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter.js","node_modules/react-native-web/dist/exports/StyleSheet/css.js","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","node_modules/react-dom/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js","node_modules/react-native-web/dist/vendor/react-native/Animated/Easing.js","node_modules/react-native-web/dist/exports/Easing/index.js","node_modules/react-native-web/dist/modules/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/infoLog/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizeUtils/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","C:/Users/jpzwei/AppData/Roaming/npm/node_modules/expo-cli/node_modules/webpack/buildin/global.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","node_modules/react-native-web/dist/exports/AppRegistry/index.js","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/normalize-css-color/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","node_modules/react-native-web/dist/modules/flattenArray/index.js","node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","node_modules/react-native-web/dist/vendor/hash/index.js","node_modules/react-native-web/dist/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","node_modules/react-native-web/dist/exports/StyleSheet/compile.js","node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","node_modules/react-native-web/dist/exports/StyleSheet/modality.js","node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderEventTypes.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","node_modules/react-native-web/dist/modules/useResponderEvents/createResponderEvent.js","node_modules/react-native-web/dist/modules/useResponderEvents/utils.js","node_modules/react-native-web/dist/modules/isSelectionValid/index.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderSystem.js","node_modules/react-native-web/dist/modules/useResponderEvents/index.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","node_modules/react-native-web/dist/modules/useStable/index.js","PickerItem.js","Picker.web.js","UnimplementedView.web.js","PickerIOS.web.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/exports/AppState/index.js","node_modules/react-native-web/dist/exports/Clipboard/index.js","node_modules/react-native-web/dist/exports/DeviceInfo/index.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","node_modules/react-native-web/dist/vendor/react-native/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/LayoutAnimation/index.js","node_modules/react-native-web/dist/exports/Linking/index.js","node_modules/react-native-web/dist/vendor/react-native/TouchHistoryMath/index.js","node_modules/react-native-web/dist/vendor/react-native/PanResponder/index.js","node_modules/react-native-web/dist/exports/PanResponder/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/Vibration/index.js","node_modules/react-native-web/dist/exports/CheckBox/index.js","node_modules/react-native-web/dist/exports/ImageBackground/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-web/dist/exports/Modal/ModalPortal.js","node_modules/react-native-web/dist/exports/Modal/ModalAnimation.js","node_modules/react-native-web/dist/exports/Modal/ModalContent.js","node_modules/react-native-web/dist/exports/Modal/ModalFocusTrap.js","node_modules/react-native-web/dist/exports/Modal/index.js","node_modules/react-native-web/dist/exports/Picker/index.js","node_modules/react-native-web/dist/exports/Picker/PickerItem.js","node_modules/react-native-web/dist/exports/ProgressBar/index.js","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/react-native-web/dist/exports/YellowBox/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","node_modules/react-native-web/dist/exports/InputAccessoryView/index.js","node_modules/react-native-web/dist/exports/ToastAndroid/index.js","node_modules/react-native-web/dist/exports/PermissionsAndroid/index.js","node_modules/react-native-web/dist/exports/Settings/index.js","node_modules/react-native-web/dist/exports/Systrace/index.js","node_modules/react-native-web/dist/exports/TVEventHandler/index.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/BackHandler/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/react-native-web/dist/modules/createEventHandle/index.js","node_modules/react-native-web/dist/modules/modality/index.js","node_modules/react-native-web/dist/modules/useEvent/index.js","node_modules/react-native-web/dist/modules/useHover/index.js","node_modules/react-native-web/dist/exports/Pressable/index.js","node_modules/react-native-web/dist/vendor/react-native/deepDiffer/index.js","node_modules/react-native-web/dist/vendor/react-native/FlatList/index.js","node_modules/react-native-web/dist/exports/FlatList/index.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedSectionList/index.js","node_modules/react-native-web/dist/vendor/react-native/SectionList/index.js","node_modules/react-native-web/dist/exports/SectionList/index.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","node_modules/md5/md5.js","node_modules/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-web/dist/vendor/react-native/TurboModule/TurboModuleRegistry.js","node_modules/react-native-web/dist/vendor/react-native/NativeEventEmitter/index.js","node_modules/query-string/index.js","getNamedContext.tsx","ThemeContext.tsx","DefaultTheme.tsx","../src/EventEmitter.ts","../../src/environment/browser.web.ts","../src/Platform.ts","../../src/errors/CodedError.ts","../../src/errors/UnavailabilityError.ts","../src/PermissionsInterface.ts","../src/index.ts","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/modules/normalizeColor/index.js","AsyncStorage.js","index.js","node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/object-assign/index.js","node_modules/hyphenate-style-name/index.js","node_modules/react-native-web/node_modules/fbjs/lib/warning.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js","node_modules/react-native-web/dist/vendor/react-native/Animated/SpringConfig.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/TimingAnimation.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/charenc/charenc.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/merge-options/index.js","node_modules/inline-style-prefixer/lib/createPrefixer.js","node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","node_modules/inline-style-prefixer/lib/plugins/crossFade.js","node_modules/inline-style-prefixer/lib/plugins/cursor.js","node_modules/inline-style-prefixer/lib/plugins/filter.js","node_modules/inline-style-prefixer/lib/plugins/flex.js","node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","node_modules/inline-style-prefixer/lib/plugins/gradient.js","node_modules/inline-style-prefixer/lib/plugins/grid.js","node_modules/inline-style-prefixer/lib/plugins/imageSet.js","node_modules/inline-style-prefixer/lib/plugins/logical.js","node_modules/inline-style-prefixer/lib/plugins/position.js","node_modules/inline-style-prefixer/lib/plugins/sizing.js","node_modules/inline-style-prefixer/lib/plugins/transition.js","node_modules/create-react-class/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedTurboModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/DecayAnimation.js","node_modules/react-native-web/dist/vendor/react-native/FillRateHelper/index.js","node_modules/array-find-index/index.js","node_modules/escape-string-regexp/index.js","useBackButton.tsx","useDocumentTitle.tsx","node_modules/fast-deep-equal/index.js","useThenable.tsx","LinkingContext.tsx","ThemeProvider.tsx","node_modules/invariant/browser.js","node_modules/@babel/runtime/helpers/wrapNativeSuper.js","node_modules/compare-versions/index.js","ServerContext.tsx","useLinking.tsx","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/react/cjs/react.production.min.js","node_modules/regenerator-runtime/runtime.js","node_modules/is-plain-obj/index.js","node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","node_modules/inline-style-prefixer/lib/utils/prefixValue.js","node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","node_modules/inline-style-prefixer/lib/utils/isObject.js","node_modules/css-in-js-utils/lib/hyphenateProperty.js","node_modules/crypt/crypt.js","node_modules/is-buffer/index.js","node_modules/create-react-class/factory.js","node_modules/react-native-web/node_modules/fbjs/lib/emptyFunction.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/scheduler/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/strict-uri-encode/index.js","node_modules/decode-uri-component/index.js","node_modules/split-on-first/index.js","node_modules/filter-obj/index.js","node_modules/react-is/index.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/@react-navigation/elements/lib/module/assets/back-icon.png","node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.png","node_modules/@babel/runtime/helpers/isNativeFunction.js","node_modules/@babel/runtime/helpers/construct.js","node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../../src/environment/react-native-logs.fx.ts","../../src/launch/withExpoRoot.web.tsx","../../src/launch/RecoveryProps.ts","../../src/launch/registerRootComponent.tsx","node_modules/expo/AppEntry.js","../src/ExpoErrorRecovery.web.ts","../src/ErrorRecovery.ts","../src/ErroRecoveryStore.ts","NavigationContainer.tsx","NativeSafeAreaProvider.tsx","SafeAreaContext.tsx","SafeAreaProviderCompat.tsx","useTheme.tsx","Background.tsx","getDefaultHeaderHeight.tsx","HeaderHeightContext.tsx","HeaderShownContext.tsx","getHeaderTitle.tsx","HeaderBackground.tsx","HeaderTitle.tsx","Header.tsx","MaskedView.tsx","PlatformPressable.tsx","HeaderBackButton.tsx","NativeStackView.tsx","createNativeStackNavigator.tsx"],"names":["module","exports","absoluteFillObject","position","left","right","top","bottom","StyleSheet","absoluteFill","ReactNativePropRegistry","register","compose","style1","style2","create","styles","result","Object","keys","forEach","key","id","flatten","flattenStyle","hairlineWidth","canUseDOM","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","validateFormat","format","condition","_len","arguments","length","args","Array","_key","error","undefined","Error","argIndex","replace","String","name","framesToPop","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","forwardPropsList","forwardedProps","href","lang","onScroll","onWheel","pointerEvents","View","React","props","forwardedRef","hrefAttrs","onLayout","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","hasTextAncestor","TextAncestorContext","hostRef","useElementLayout","useResponderEvents","component","style","inline","supportedProps","pick","pickProps","classList","download","rel","charAt","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","ref","createElement","displayName","css","view","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","margin","minHeight","minWidth","padding","zIndex","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","__esModule","instance","Constructor","TypeError","_defineProperties","descriptor","protoProps","staticProps","prototype","document","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","subClass","superClass","constructor","_typeof","assertThisInitialized","self","call","Platform","OS","select","web","default","nativeEventEmitter","NativeAnimatedModule","global","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","Set","queueOperations","queue","API","getValue","tag","saveValueCallback","invariant","setWaitingForIdentifier","add","unsetWaitingForIdentifier","delete","size","disableQueue","startOperationBatch","q","l","finishOperationBatch","queueOperation","fn","createAnimatedNode","config","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","animationId","nodeTag","endCallback","stopAnimation","setAnimatedNodeValue","setAnimatedNodeOffset","offset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","viewTag","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventName","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_STYLES","opacity","transform","borderRadius","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","elevation","shadowOpacity","shadowRadius","scaleX","scaleY","translateX","translateY","SUPPORTED_TRANSFORMS","scale","rotate","rotateX","rotateY","rotateZ","perspective","SUPPORTED_INTERPOLATION_PARAMS","inputRange","outputRange","extrapolate","extrapolateRight","extrapolateLeft","generateNewAnimationId","_warnedMissingNativeAnimated","shouldUseNativeDriver","useNativeDriver","console","warn","addWhitelistedStyleProp","prop","addWhitelistedTransformProp","addWhitelistedInterpolationParam","param","validateStyles","hasOwnProperty","validateTransform","configs","property","validateInterpolation","_key2","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","test","parseFloat","Math","PI","NativeEventEmitter","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arr","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","AnimatedNode","_proto","this","_listeners","__attach","__detach","__isNative","__nativeTag","__getValue","__getAnimatedValue","__addChild","child","__removeChild","__getChildren","__makeNative","hasListeners","_startListeningToNativeValueUpdates","addListener","callback","removeListener","_stopListeningForNativeValueUpdates","removeAllListeners","_this","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","__getNativeTag","data","_onAnimatedValueUpdateReceived","__callListeners","remove","_this$__nativeTag","nativeTag","__getNativeConfig","toJSON","Text","dir","numberOfLines","onClick","onPress","selectable","classes","text","textHasAncestor","textOneLine","textMultiLine","WebkitLineClamp","notSelectable","pressable","handleClick","e","stopPropagation","element","Provider","color","font","whiteSpace","wordWrap","maxWidth","overflow","textOverflow","WebkitBoxOrient","userSelect","cursor","_setPrototypeOf","p","AnimatedValue","_AnimatedWithChildren","_startingValue","_value","_offset","_animation","_this2","setValue","stop","_updateValue","setOffset","flattenOffset","extractOffset","stopTracking","resetAnimation","interpolate","AnimatedInterpolation","animate","animation","_this3","handle","__isInteraction","InteractionManager","createInteractionHandle","previousAnimation","start","clearInteractionHandle","_tracking","track","tracking","flush","rootNode","animatedStyles","findAnimatedStyles","node","update","animatedStyle","_flush","type","AnimatedWithChildren","Button","accessibilityLabel","disabled","testID","title","TouchableOpacity","accessibilityRole","focusable","button","backgroundColor","buttonDisabled","textDisabled","fontWeight","textAlign","textTransform","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","arrayWithoutHoles","iterableToArray","nonIterableSpread","defaultProps","children","dataSet","nativeID","suppressHydrationWarning","accessibilityProps","accessibilityActiveDescendant","accessibilityAtomic","accessibilityAutoComplete","accessibilityBusy","accessibilityChecked","accessibilityColumnCount","accessibilityColumnIndex","accessibilityColumnSpan","accessibilityControls","accessibilityCurrent","accessibilityDescribedBy","accessibilityDetails","accessibilityDisabled","accessibilityErrorMessage","accessibilityExpanded","accessibilityFlowTo","accessibilityHasPopup","accessibilityHidden","accessibilityInvalid","accessibilityKeyShortcuts","accessibilityLabelledBy","accessibilityLevel","accessibilityLiveRegion","accessibilityModal","accessibilityMultiline","accessibilityMultiSelectable","accessibilityOrientation","accessibilityOwns","accessibilityPlaceholder","accessibilityPosInSet","accessibilityPressed","accessibilityReadOnly","accessibilityRequired","accessibilityRoleDescription","accessibilityRowCount","accessibilityRowIndex","accessibilityRowSpan","accessibilitySelected","accessibilitySetSize","accessibilitySort","accessibilityValueMax","accessibilityValueMin","accessibilityValueNow","accessibilityValueText","accessible","accessibilityState","accessibilityValue","clickProps","onClickCapture","onContextMenu","focusProps","onBlur","onFocus","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","onMouseUp","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","styleProps","dangerousStyleValue","isCustomProperty","isUnitlessNumber","trim","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","getBoundingClientRect","x","y","width","offsetWidth","height","offsetHeight","_measureLayout","relativeToNativeNode","relativeNode","parentNode","setTimeout","relativeRect","_getRect","focusableElements","A","INPUT","SELECT","TEXTAREA","UIManager","blur","err","focus","nodeName","getAttribute","setAttribute","measure","measureInWindow","_getRect2","measureLayout","onFail","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","Component","domProps","createDOMProps","concat","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","isArray","minLen","_arrayLikeToArray","n","toString","slice","from","_unsupportedIterableToArray","done","next","bind","len","arr2","_AnimatedNode","_children","_step","_iterator","index","splice","_step2","_iterator2","emptyObject","ScrollResponder","Mixin","scrollResponderMixinGetInitialState","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderHandleScrollShouldSetResponder","state","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderIsAnimating","scrollResponderHandleResponderReject","warning","scrollResponderHandleTerminationRequest","scrollResponderHandleTouchEnd","nativeEvent","touches","scrollResponderHandleResponderRelease","currentlyFocusedTextInput","TextInputState","currentlyFocusedField","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","blurTextInput","scrollResponderHandleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleScrollBeginDrag","onScrollBeginDrag","scrollResponderHandleScrollEndDrag","onScrollEndDrag","scrollResponderHandleMomentumScrollBegin","Date","now","onMomentumScrollBegin","scrollResponderHandleMomentumScrollEnd","onMomentumScrollEnd","scrollResponderHandleTouchStart","scrollResponderHandleTouchMove","scrollResponderGetScrollableNode","getScrollableNode","findNodeHandle","scrollResponderScrollTo","animated","_ref","scroll","behavior","scrollLeft","scrollTop","scrollResponderZoomTo","rect","scrollResponderFlashScrollIndicators","scrollResponderScrollNativeHandleToKeyboard","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","getInnerViewNode","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","Dimensions","get","keyboardWillOpenTo","endCoordinates","screenY","scrollOffsetY","max","UNSAFE_componentWillMount","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","_extends","assign","normalizeScrollEvent","contentOffset","contentSize","scrollHeight","scrollWidth","layoutMeasurement","timeStamp","ScrollViewBase","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","scrollEventThrottle","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","rest","sourceKeys","_objectWithoutPropertiesLoose","scrollState","isScrolling","scrollLastTick","scrollTimeout","scrollRef","createPreventableScrollHandler","handler","handleScrollTick","current","hideScrollbar","persist","clearTimeout","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","overflowX","overflowY","touchAction","scrollbarWidth","ScrollView","createReactClass","mixins","getInitialState","flashScrollIndicators","getScrollResponder","_scrollNodeRef","getInnerViewRef","_innerViewRef","getNativeScrollRef","scrollTo","scrollToEnd","options","horizontal","scrollResponder","scrollResponderNode","render","_this$props","contentContainerStyle","onContentSizeChange","refreshControl","stickyHeaderIndices","pagingEnabled","other","keyboardDismissMode","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","Children","map","isSticky","stickyHeader","pagingEnabledChild","contentContainer","collapsable","_setInnerViewRef","contentContainerHorizontal","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","_handleScroll","scrollResponderHandleTerminate","ScrollViewClass","scrollView","_setScrollNodeRef","cloneElement","_e$nativeEvent$layout","layout","dismissKeyboard","mergeRefs","commonStyle","flexGrow","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","forwardRef","cssFunction","CSS","supports","SafeAreaView","root","paddingTop","paddingRight","paddingBottom","paddingLeft","linear","t","createInterpolation","pattern","stringShapeRegex","checkPattern","colorToRgba","outputRanges","match","number","interpolations","shouldRound","range","startsWith","input","val","round","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","easing","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","normalizedColor","normalizeColor","parent","_parent","_config","_interpolation","parentValue","__transformDataType","__createInterpolation","dimensions","fontScale","listeners","dimension","set","initialDimensions","_update","win","docEl","documentElement","clientHeight","devicePixelRatio","clientWidth","removeEventListener","_handler","attachNativeEvent","viewRef","argMapping","eventMappings","traverse","path","nativeEventPath","animatedValueTag","mapping","detach","AnimatedEvent","_argMapping","listener","__addListener","_callListeners","_attachedEvent","__removeListener","__getHandler","_len2","_key3","recMapping","recEvt","mappingKey","idx","_len3","_key4","AnimatedTransform","transforms","_transforms","transConfigs","AnimatedStyle","_style","_walkStyleAndGetValues","updatedStyle","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","AnimatedProps","_props","_callback","_animatedView","__disconnectAnimatedView","__connectAnimatedView","setNativeView","animatedView","nativeViewTag","__restoreDefaultValues","propsConfig","propKey","setAndForwardRef","getForwardedRef","setLocalRef","animatedComponentNextId","createAnimatedComponent","isReactComponent","AnimatedComponent","_React$Component","_invokeAnimatedPropsCallbackOnMount","_eventDetachers","_animatedComponentId","_isFabric","_this$_component$_int","_this$_component$_int2","_this$_component$getN","_this$_component$getN2","_this$_component$getS","_this$_component$getS2","_component","stateNode","canonical","_waitForUpdate","_markUpdateComplete","_animatedPropsCallback","setNativeProps","forceUpdate","_propsAnimated","_setComponentRef","_prevComponent","getNode","_ref$constructor$name","_attachNativeEvents","_this$_component","scrollableNode","_loop","_detachNativeEvents","_attachProps","nextProps","oldPropsAnimated","_props$collapsable","_props$nativeID","_ref$style","_ref2","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","forceNativeIdFabric","collapsableProps","componentDidMount","UNSAFE_componentWillReceiveProps","newProps","componentDidUpdate","prevProps","componentWillUnmount","FlatList","Image","SectionList","AnimatedAddition","a","b","_a","_b","AnimatedDiffClamp","min","_min","_max","_lastValue","diff","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","animationClass","animationConfig","_animationClass","_animationConfig","_useNativeDriver","toValue","__getNativeAnimationConfig","_combineCallbacks","onComplete","maybeVectorAnim","anim","AnimatedValueXY","configX","configY","_config$key","aX","aY","parallel","stopTogether","timing","_start2","animatedValue","configuration","singleValue","singleConfig","TimingAnimation","reset","_startNativeLoop","iterations","_isUsingNativeDriver","sequence","animations","finished","doneCount","hasEnded","cb","endResult","delay","time","duration","Value","ValueXY","Interpolation","Node","decay","_start3","DecayAnimation","spring","_start","SpringAnimation","subtract","divide","multiply","modulo","diffClamp","stagger","loop","_temp","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","event","animatedEvent","forkEvent","unforkEvent","Event","__PropsOnlyForTests","emptyAnimation","anyValue","AnimatedImplementation","isTesting","AnimatedMock","Animated","nanoid","random","autoCapitalize","autoComplete","autoCorrect","autoFocus","defaultValue","maxLength","onChange","placeholder","readOnly","rows","spellCheck","TextInput","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$editable","editable","_props$keyboardType","keyboardType","_props$multiline","multiline","_props$numberOfLines","onChangeText","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","returnKeyType","_props$secureTextEntr","secureTextEntry","selection","selectTextOnFocus","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","clear","isFocused","useLayoutEffect","selectionEnd","selectionStart","end","isSelectionStale","setSelectionRange","setSelection","activeElement","_currentlyFocusedNode","textinput","enterKeyHint","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","shiftKey","isDefaultPrevented","preventDefault","onSelect","State","MozAppearance","WebkitAppearance","resize","STYLE_ELEMENT_ID","STYLE_GROUPS","modality","classicReset","classic","atomic","custom","borderColor","borderStyle","borderWidth","flex","overscrollBehavior","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","transitionProperty","transitionDuration","actionable","MemoedTouchableOpacity","activeOpacity","delayPressIn","delayPressOut","delayLongPress","onLongPress","onPressIn","onPressOut","rejectResponderTermination","useRef","_useState","useState","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityTo","useCallback","setOpacityActive","setOpacityInactive","pressConfig","useMemo","cancelable","delayPressStart","delayPressEnd","onPressStart","isGrant","dispatchConfig","registrationName","onPressEnd","pressEventHandlers","usePressEvents","findDOMNode","colorProps","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","unitlessNumbers","goBack","payload","params","setParams","getStateForAction","action","r","routes","nextState","route","shouldActionChangeFocus","StackActions","pop","count","popToTop","StackRouter","router","routeParamList","initialRouteName","routeNames","stale","getRehydratedState","getStateForRouteNamesChange","routeKeyChanges","getStateForRouteFocus","getId","BaseRouter","actionCreators","NOT_INITIALIZED_ERROR","SingleNavigatorContext","EnsureSingleNavigator","navigatorKeyRef","currentKey","unregister","findFocusedRoute","onDispatchAction","onOptionsChange","MISSING_CONTEXT_ERROR","isDefault","useChildListeners","useEventEmitter","listenRef","callbacks","emit","canPreventDefault","items","defaultPrevented","useKeyedChildListeners","keyedListeners","getState","beforeRemove","addKeyedListener","useOptionsGetters","navigation","optionsRef","optionsGettersFromChildRef","parentAddOptionsGetter","addOptionsGetter","optionsChangeListener","hasChildren","getOptionsFromListener","getCurrentOptions","optionsFromListener","ScheduleUpdateContext","scheduleUpdate","flushUpdates","UNINTIALIZED_STATE","stateRef","isSchedulingRef","isMountedRef","initialState","setState","setTrackingState","trackingState","useSyncState","getPartialState","isFirstMountRef","getKey","setKey","dispatch","canGoBack","handled","resetRoot","CommonActions","getRootState","getCurrentRoute","emitter","acc","getParent","isReady","noop","stack","stackRef","lastEmittedOptionsRef","builderContext","scheduleContext","isInitialRef","getIsInitial","context","onStateChangeRef","hydratedState","defaultOnUnhandledAction","NavigationStateContext","onUnhandledAction","Group","createNavigatorFactory","Navigator","Screen","getActionFromState","normalizedConfig","createNormalizedConfigItem","initial","screens","createNormalizedConfigs","fromEntries","entries","formatToList","validatePathConfig","validKeys","invalidKeys","getPathFromState","allParams","focusedParams","focusedRoute","getActiveRoute","currentOptions","nestedRouteNames","hasNext","stringify","currentParams","getParamName","nextRoute","nestedConfig","encodeURIComponent","query","sort","joinPaths","paths","parentPattern","createConfigItem","getStateFromPath","initialRoutes","parentScreens","remaining","segment","decodeURIComponent","createNestedStateObject","aParts","bParts","aWildCard","bWildCard","c","matchAgainstConfigs","regex","RegExp","remainingPath","matchedParams","initials","routeConfig","escape","parse","findInitialRoute","sameParents","routeName","createStateObject","initialRoute","nestedState","nestedStateIndex","parseQueryParams","flatConfig","findParseConfigForRoute","queryString","parseConfig","isArrayEqual","prevPropKeys","nextPropKeys","SceneView","clearOptions","getCurrentState","currentRoute","setCurrentState","ScreenComponent","useDescriptors","onAction","onRouteFocus","navigations","cache","actions","previous","thunk","withStack","process","helpers","setOptions","useNavigationCache","Map","useRouteCache","customOptions","curr","mergedOptions","defaultScreenOptions","routeState","VISITED_ROUTE_KEYS","shouldPreventRemove","nextRouteKeys","nextRoutes","removedRoutes","currentRoutes","visitedRouteKeys","beforeRemoveAction","beforeRemoveListeners","useOnAction","routerConfigOptionsRef","visitedNavigators","isPrevented","onRouteFocusParent","shouldFocus","onActionParent","actionListeners","routeKey","useOnPreventRemove","addListenerParent","isValidKey","useNavigationBuilder","navigatorKey","container","useRegisterNavigator","createRouter","routeConfigs","getRouteConfigsFromChildren","JSON","groupKey","groupOptions","routeKeyList","initialParams","routeGetIdList","isStateValid","isStateInitialized","stateCleanedUp","cleanUpState","initialRouteParamList","initialParamsFromParams","currentState","previousRouteKeyListRef","previousRouteKeyList","aKeys","bKeys","isRecordEqual","previousNestedParamsRef","previousParams","updatedState","shouldUpdate","useScheduleUpdate","initializedStateRef","descriptors","lastFocusedKeyRef","currentFocusedKey","lastFocusedKey","useFocusEvents","childListeners","routerConfigOptions","sourceRouteKey","useOnRouteFocus","parentNavigationHelpers","op","useNavigationHelpers","focusedListeners","useFocusedListenersChildrenAdapter","getStateListeners","childState","useOnGetState","screenOptions","useCurrentRender","NavigationContent","propsRef","useComponent","NavigationHelpersContext","focusTextInput","textFieldNode","assets","getAssetByID","assetId","dataUriPattern","ImageUriCache","has","uri","_entries","Boolean","lastUsedTimestamp","refCount","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","entry","requests","ImageLoader","abort","requestId","image","onerror","onload","getSize","success","failure","complete","interval","setInterval","load","clearInterval","naturalHeight","naturalWidth","onLoad","onError","onDecode","decode","then","src","prefetch","Promise","resolve","reject","queryCache","uris","u","_filterId","svgDataUriPattern","resolveAssetUri","asset","scales","preferredScale","PixelRatio","reduce","prev","abs","scaleSuffix","httpServerLocation","prefix","svg","blurRadius","defaultSource","draggable","onLoadEnd","onLoadStart","_React$useState","updateState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","resizeMode","shadowOffset","tintColor","filters","_filter","shadowString","resolveShadowValue","join","overlayColor","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","_height3","_width3","scaleFactor","ceil","getBackgroundSize","hiddenImage","alt","accessibilityImage","abortPendingRequest","_layout","resizeModeStyles","visibility","floodColor","in2","operator","createTintColorSVG","ImageWithStatics","backgroundPosition","backgroundRepeat","center","contain","cover","none","repeat","stretch","doLeftAndRightSwapInRTL","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","isRTL","onDirectionChange","I18nManager","allowRTL","bool","forceRTL","getConstants","setPreferredLanguageRTL","swapLeftAndRightInRTL","EmitterSubscription","_EventSubscription2","subscriber","removeSubscription","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","addSubscription","eventType","subscription","removeAllSubscriptions","subscriptionsForType","getSubscriptionsForType","sparseFilterPredicate","EventEmitter","_subscriber","listenerCount","subscriptions","rules","group","styleResolver","createCSS","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","runAfterInteractions","task","promise","cancel","checkDCE","useLayoutEffectImpl","useEffect","list","nextObj","previousStyleRef","setNativePropsArgsRef","useStable","relativeToNode","nativeProps","className","nextDomStyle","_ease","float32ArraySupported","Float32Array","aA1","aA2","B","C","calcBezier","aT","getSlope","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","_aGuessT","aGuessT","currentSlope","newtonRaphsonIterate","_aA","_aB","currentX","currentT","aA","aB","binarySubdivide","Easing","step0","step1","ease","quad","cubic","poly","pow","sin","cos","circle","sqrt","exp","elastic","bounciness","back","s","bounce","_t","_t2","t2","x1","y1","x2","y2","_bezier","in","out","inOut","ERROR","Transitions","freeze","NOT_RESPONDER","DELAY","RESPONDER_GRANT","RESPONDER_RELEASE","RESPONDER_TERMINATED","LONG_PRESS_DETECTED","RESPONDER_INACTIVE_PRESS_START","RESPONDER_ACTIVE_PRESS_START","RESPONDER_ACTIVE_LONG_PRESS_START","isActiveSignal","signal","isButtonRole","isPressStartSignal","isValidKeyPress","role","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_selectionTerminated","_receiveSignal","normalizeDelay","_handleLongPress","keyupHandler","elementType","tagName","toLowerCase","currentTarget","onPressMove","touch","getTouchFromResponderEvent","_touchActivatePosition","deltaX","pageX","deltaY","pageY","hypot","_this$_config","_this$_config2","altKey","_this$_config3","prevState","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","onPressChange","_this$_config6","fallback","_event$nativeEvent","changedTouches","pressResponderRef","pressResponder","useDebugValue","Batchinator","delayMS","_delay","dispose","_taskHandle","schedule","timeoutHandle","_isViewable","viewAreaMode","viewablePercentThreshold","viewportHeight","itemLength","_isEntirelyVisible","pixels","visibleHeight","_getPixelsVisible","ViewabilityHelper","viewAreaCoveragePercentThreshold","_hasInteracted","_timers","_viewableIndices","_viewableItems","computeViewableItems","itemCount","scrollOffset","getFrameMetrics","renderRange","itemVisiblePercentThreshold","viewableIndices","firstVisible","first","last","metrics","onUpdate","createViewToken","onViewableItemsChanged","waitForInteraction","every","v","ii","minimumViewTime","_onUpdateSync","resetViewableIndices","recordInteraction","viewableIndicesToCheck","includes","prevItems","nextItems","viewable","changed","_step$value","_step2$value","_viewable","isViewable","viewableItems","values","viewabilityConfig","infoLog","_console","log","elementsThatOverlapOffsets","offsets","outLength","frame","trailingOffset","kk","newRangeCount","computeWindowedRenderLimits","getFrameMetricsApprox","scrollMetrics","getItemCount","maxToRenderPerBatch","windowSize","velocity","visibleLength","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","visible","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","VirtualizedListContext","VirtualizedListContextProvider","cellKey","getScrollMetrics","getOutermostParentListRef","getNestedChildState","registerAsNestedChild","unregisterAsNestedChild","debugInfo","listKey","VirtualizedListCellContextProvider","_ref3","useContext","_inheritsLoose","_usedIndexForKey","_keylessItemComponentName","VirtualizedList","_React$PureComponent","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","ReferenceError","_assertThisInitialized","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","trace","parentDebugInfo","describeNestedLists","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","dt","timestamp","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","onRefresh","refreshing","RefreshControl","progressViewOffset","_onCellUnmount","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","_onScroll","_selectOffset","_this$_convertParentS","perf","prevDt","_updateViewableItems","_fillRateHelper","activate","_computeBlankness","_onScrollBeginDrag","tuple","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","_this$props3","onEndReachedThreshold","isVirtualizationDisabled","_isVirtualizationDisabled","newState","_this$_scrollMetrics","renderAhead","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","_this$props4","getItem","keyExtractor","item","_getFrameMetrics","getItemLayout","_this$props5","FillRateHelper","_updateCellsToRenderBatcher","updateCellsBatchingPeriod","viewabilityConfigCallbackPairs","pair","initialNumToRender","storedState","_getListKey","frames","veryLast","scrollToIndex","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","scrollToItem","_this$props2","_index","scrollToOffset","getScrollRef","_getCellKey","_this$context","_getDebugInfo","_this$context2","deactivateAndFlush","getDerivedStateFromProps","_pushCells","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","CellRendererComponent","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","onUnmount","parentProps","disableVirtualization","nestedContext","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","inverted","horizontallyInverted","verticallyInverted","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_ref4","_initBlock","firstSpace","_ref5","lastFrame","endFrame","tailSpacerLength","_element","_element2","ListFooterComponentStyle","scrollProps","ret","renderScrollComponent","debug","_renderDebugOverlay","_this$props9","extraData","hiPriInProgress","computeBlankness","_this4","normalize","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","f","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","threshold","_this$state2","_this$_scrollMetrics3","hiPri","scrollingThreshold","distTop","distBottom","_this5","contextType","_this6","separatorProps","highlighted","leadingItem","_separators","highlight","_this6$props","unhighlight","_this6$props2","updateProps","_this6$props3","_proto2","_renderElement","renderItem","ListItemComponent","separators","_this$props11","enabled","itemSeparator","cellStyle","rowReverse","columnReverse","row","g","Function","valueIn","jointCallback","getLayout","getTranslateTransform","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","rootTag","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","getAppKeys","getApplication","appKey","appParameters","registerComponent","componentProvider","RootComponent","initialProps","getStyleElement","sheet","getStyleSheet","dangerouslySetInnerHTML","__html","textContent","run","shouldHydrate","hydrate","renderFn","renderApplication","registerConfig","registerRunnable","runApplication","setComponentProviderInstrumentationHook","hook","setWrapperComponentProvider","provider","unmountApplicationComponentAtRootTag","unmountComponentAtNode","createContext","getByID","getStyle","styleLength","computedStyle","resizeObserver","observer","ResizeObserver","observe","unobserve","matchers","hex6","exec","parseInt","names","rgb","parse255","rgba","parse1","hex3","hex8","hex4","hsl","hslToRgb","parse360","parsePercentage","hsla","hue2rgb","h","NUMBER","toArray","arrayLike","str","int","num","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorInt","startNativeAnimationNextId","Animation","fromValue","onEnd","__nativeId","__debouncedOnEnd","__onEnd","__startNativeAnimation","startNativeAnimationWaitId","defaultOffset","createCompileableStyle","textShadowOffset","textShadowRadius","nextStyles","resolvedStyle","boxShadow","shadow","boxShadowReducer","radius","offsetX","offsetY","textShadow","textShadowReducer","createOrderedCSSStyleSheet","groups","selectors","cssRules","cssRule","cssText","Number","selectorText","split","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","getTextContent","insert","groupValue","markerRule","encodeGroupRule","selector","flattenArray","array","flattenDown","PROPERTIES_FLIP","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","marginLeft","marginRight","PROPERTIES_I18N","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginStart","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","float","additiveInverse","multiplyStyleLengthValue","i18nStyle","originalStyle","_I18nManager$getConst","frozenProps","nextStyle","originalProp","originalValue","convertedProp","convertedValue","flippedValue","invertedValue","supportsCSS3TextDecoration","mapTransform","createReactDOMStyle","backgroundClip","WebkitBackgroundClip","fontVariant","verticalAlign","textDecorationLine","textDecoration","resolveTransform","direction","longFormProperties","longForm","hash","seed","k","charCodeAt","murmurhash2_32_gc","w","m","ms","wm","wms","wmms","plugins","crossFade","flexboxIE","flexboxOld","gradient","grid","imageSet","logical","sizing","transition","prefixMap","animationDelay","animationDirection","animationFillMode","animationDuration","animationIterationCount","animationName","animationPlayState","animationTimingFunction","appearance","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","writingMode","flexFlow","flexWrap","alignContent","alignSelf","justifyContent","order","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspectiveOrigin","transformStyle","transformOriginZ","backdropFilter","fontKerning","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","tabSize","wrapFlow","wrapThrough","wrapMargin","textSizeAdjust","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","transitionDelay","transitionTimingFunction","prefixAll","createPrefixer","staticData","valueString","stringifyValueWithProperty","cachedResult","identifier","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_block","finalValue","_block3","_block4","_block2","_block5","_createDeclarationBlo","_block6","createAtomicRules","_cachedResult","animationKeyframes","_processKeyframesValu","prefixedStyles","prefixInlineStyles","normalizedValue","domStyle","prefixStyles","hyphenateStyleName","keyframesValue","keyframes","_createKeyframes","steps","stepName","createKeyframes","resets","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","search","url","tel","email","password","date","month","week","datetime","metaKey","ctrlKey","isValidFocusTarget","addFocusVisibleAttribute","onPointerDown","el","isReadOnly","isContentEditable","focusTriggersKeyboardModality","hasAttribute","removeFocusVisibleAttribute","visibilityState","addInitialPointerMoveListeners","removeAttribute","querySelectorAll","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","inserted","resolved","ltr","rtl","rtlNoSwap","init","getElementById","head","insertBefore","firstChild","createCSSStyleSheet","rule","initialRules","_injectRegisteredStyle","results","_results$key","addToCache","_resolveStyle","_I18nManager$getConst2","localizedStyle","styleProp","getClassName","_atomic","_a$key","compiled","_compiled$key","nextClassList","flatArray","isArrayOfNumbers","cacheKey","finalProps","createStyleResolver","isStartish","isMoveish","isEndish","isCancelish","touchBank","touchHistory","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","touchActive","startPageX","startPageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","createTouchRecord","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","printed","ResponderTouchHistoryStore","recordTouchTrack","topLevelType","touchTrackToCheck","emptyFunction","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","propagationWasStopped","domEventChangedTouches","domEventType","force","clientX","clientY","normalizeTouches","locationX","locationY","emulatedTouches","responderEvent","bubbles","eventPhase","isPropagationStopped","isTrusted","composedPathFallback","body","getResponderId","getResponderPaths","idPath","nodePath","eventPath","getSelection","anchorNode","composedPath","getEventPath","hasValidSelection","string","focusNode","isTextNode","nodeType","TEXT_NODE","isSelectionValid","startRegistration","moveRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","emptyResponder","responderListenersMap","isEmulatingMouseEvents","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","eventTarget","isStartEvent","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","_i","_id","_node","_result","_id2","_node2","findWantsResponder","_currentResponder2","currentId","currentNode","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","contains","relatedTarget","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","setResponderId","isResponder","accessibilityRoleToWebRole","adjustable","header","imagebutton","keyboardkey","label","link","summary","propsToAriaRole","inferredRole","roleComponents","article","banner","blockquote","code","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","main","region","strong","isDisabled","accessibilityStates","level","CSS_UNIT_RE","multiple","isNaN","isFinite","RCTDeviceEventEmitter","Alert","alert","aspectRatio","boxFlex","boxFlexGroup","boxOrdinalGroup","flexOrder","flexPositive","flexNegative","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","scaleZ","prefixes","toUpperCase","substring","prefixKey","objects","uniqueID","createKey","UNINITIALIZED","require","Option","Select","Picker","handleChange","onValueChange","selectedValue","unimplementedView","PickerIOS","NativeModules","isScreenReaderEnabled","prefersReducedMotionMedia","matchMedia","handlers","AccessibilityInfo","isReduceMotionEnabled","matches","fetch","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","listenerMapping","WeakMap","Appearance","getColorScheme","addChangeListener","mappedListener","colorScheme","removeChangeListener","isPrefixed","EVENT_TYPES","VISIBILITY_CHANGE_EVENT","VISIBILITY_STATE_PROPERTY","AppStates","AppState","isAvailable","listenerIndex","findIndex","clipboardAvailable","Clipboard","queryCommandSupported","getString","setString","appendChild","removeAllRanges","createRange","selectNodeContents","addRange","execCommand","removeChild","DeviceInfo","_Dimensions$get","_Dimensions$get2","navigator","languages","language","deviceMemory","userAgent","Keyboard","dismiss","configureNext","Presets","easeInEaseOut","springDamping","LayoutAnimation","Types","easeIn","easeOut","keyboard","Properties","scaleXY","checkConfig","initialURL","location","Linking","_eventCallbacks","filteredCallbacks","_dispatchEvent","canOpenURL","getInitialURL","openURL","open","_validateURL","urlToOpen","URL","TouchHistoryMath","centroidDimension","touchesChangedAfter","isXAxis","ofCurrent","total","oneTouchData","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","x0","y0","dx","dy","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","interactionState","shouldCancelClick","timeout","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","getInteractionHandle","Share","share","content","message","_vibrate","vibrate","Vibration","CheckBox","fakeControl","fakeControlChecked","fakeControlDisabled","fakeControlCheckedAndDisabled","nativeControl","checked","cursorInherit","cursorDefault","ImageBackground","_props$style","imageStyle","imageRef","_StyleSheet$flatten","KeyboardAvoidingView","relativeKeyboardHeight","keyboardFrame","keyboardY","keyboardVerticalOffset","onKeyboardChange","ModalPortal","elementRef","ReactDOM","createPortal","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","hidden","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","onDismiss","onShow","isRendering","setIsRendering","wasVisible","isAnimated","animationEndCallback","onAnimationEnd","ModalContent","active","onRequestClose","closeOnEscape","modal","modalTransparent","modalOpaque","FocusBracket","tabIndex","focusBracket","attemptFocus","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","lastFocusedElement","trapFocus","hasFocused","focusFirstDescendant","childNodes","focusLastDescendant","lastFocusedElementOutsideTrap","outlineStyle","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","Modal","_props$visible","isActive","setIsActive","onDismissCallback","onShowCallback","addActiveModal","itemStyle","mode","prompt","_e$target","selectedIndex","Item","fontFamily","fontSize","ProgressBar","_props$color","_props$indeterminate","indeterminate","_props$progress","progress","_props$trackColor","trackColor","percentageProgress","progressRef","forcedColorAdjust","StatusBar","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","Switch","_props$activeThumbCol","activeThumbColor","_props$activeTrackCol","activeTrackColor","_props$disabled","_props$thumbColor","thumbColor","_props$value","thumbRef","handleFocusState","thumbDefaultBoxShadow","styleHeight","styleWidth","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","trackStyle","thumbStyle","thumb","thumbActive","twoArgumentPooler","a1","a2","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","BoundingDimensions","getPooledFromElement","Position","extractSingleTouch","hasTouches","hasChangedTouches","States","baseStatesConditions","RESPONDER_INACTIVE_PRESS_IN","RESPONDER_INACTIVE_PRESS_OUT","RESPONDER_ACTIVE_PRESS_IN","RESPONDER_ACTIVE_PRESS_OUT","RESPONDER_ACTIVE_LONG_PRESS_IN","RESPONDER_ACTIVE_LONG_PRESS_OUT","IsActive","IsPressingIn","IsLongPressingIn","Signals","ENTER_PRESS_RECT","LEAVE_PRESS_RECT","TouchableMixin","_touchableNode","_touchableBlurListener","_isTouchableKeyboardActive","touchable","touchState","touchableHandleResponderTerminate","touchableDelayTimeout","longPressDelayTimeout","pressOutDelayTimeout","pressInLocation","responderID","touchableGetInitialState","touchableHandleResponderTerminationRequest","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","hitSlop","touchableGetHitSlop","_getDistanceBetweenPoints","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","curState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","bX","bY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","Touchable","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","substr","createExtraStyles","underlayColor","underlay","hasPressHandler","MemoedTouchableHighlight","onHideUnderlay","onShowUnderlay","testOnly_pressed","extraStyles","setExtraStyles","showUnderlay","hideUnderlay","only","UnimplementedView","unimplementedViewStyles","MemoedTouchableWithoutFeedback","elementProps","YellowBox","ignoreWarnings","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","promiseMock","PERMISSIONS","RESULTS","checkPermission","requestPermission","request","requestMultiple","useColorScheme","setColorScheme","useWindowDimensions","dims","setDims","processColor","int32Color","createSvgCircle","cx","cy","fill","ActivityIndicator","_props$animating","animating","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","stroke","indicatorSizes","animationPause","small","large","colors","progressBackgroundColor","titleColor","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","ratio","BackHandler","exitApp","canUsePassiveEvents","supported","supportsPassiveEvents","cancelBubble","createEventHandle","opts","capture","getOptions","compatListener","previousModality","previousActiveModality","activeModality","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","PointerEvent","pointerType","useEvent","targetListeners","removeTargetListener","dispatchCustomEvent","createEvent","_ref$bubbles","_ref$cancelable","detail","initCustomEvent","dispatchEvent","getPointerType","useHover","targetRef","onHoverStart","onHoverChange","onHoverUpdate","onHoverEnd","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","hoverStart","lockEvent","useForceableState","forced","MemoedPressable","memo","onHoverIn","onHoverOut","testOnly_hovered","_useForceableState","hovered","setHovered","_useForceableState2","focused","setFocused","_useForceableState3","pressed","setPressed","onContextMenuPress","onKeyDownPress","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","deepDiffer","one","two","maxDepth","twoKey","numColumns","_virtualizedListPairs","_captureRef","_listRef","_getItem","_item","_getItemCount","_keyExtractor","_renderer","columnWrapperStyle","renderer","info","_item2","_checkProps","_createOnViewableItemsChanged","_pushMultiColumnViewable","restProps","VirtualizedSectionList","sections","itemIdx","section","sectionData","_subExtractor","_convertViewable","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","renderSectionHeader","renderSectionFooter","SeparatorComponent","_getSeparatorComponent","ItemWithSeparator","LeadingSeparatorComponent","SectionSeparatorComponent","leadingSection","onUpdateSeparator","_onUpdateSeparator","trailingItem","trailingSection","scrollToLocation","itemIndex","sectionIndex","stickySectionHeadersEnabled","toIndexParams","getListRef","passThroughProps","listHeaderOffset","isLastItemInList","isLastItemInSection","leadingSeparatorProps","_this3$props","leadingSeparator","separator","_wrapperListRef","listRef","uppercasePattern","toHyphenLower","processIDRefList","idRefList","listStyle","pointerEventsStyles","auto","providedStyle","_prop","required","dataProp","dataName","dataValue","_focusable","reactNativeStyle","needsCursor","finalClassList","_styleResolver$resolv","crypt","utf8","isBuffer","bin","md5","encoding","stringToBytes","Uint8Array","bytesToWords","d","FF","_ff","GG","_gg","HH","_hh","II","_ii","aa","bb","cc","dd","endian","_blocksize","_digestsize","digestbytes","wordsToBytes","asBytes","asString","bytesToString","bytesToHex","nativeModule","_nativeModule","_this$_nativeModule","_this$_nativeModule2","removeListeners","_this$_nativeModule3","_this$_nativeModule4","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","encode","strict","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","newValue","arrayValue","parserForArrayFormat","keysSorter","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","getHash","exclude","exclusionFilter","contexts","getNamedContext","ThemeContext","dark","primary","background","card","notification","_listenerCount","_eventEmitter","startObserving","nativeEmitterSubscription","removedListenerCount","stopObserving","isDOMAvailable","isAsyncDebugging","moduleName","propertyName","PermissionStatus","DeviceEventEmitter","isWebColor","toFixed","merge","concatArrays","ignoreUndefined","createPromise","createPromiseAll","promises","processResult","errors","setItem","removeItem","mergeItem","oldValue","oldObject","newObject","nextValue","mergeLocalStorageItem","getAllKeys","numberOfKeys","flushGetRequests","multiGet","AsyncStorage","multiSet","keyValuePairs","multiRemove","multiMerge","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","to","msPattern","hName","_Animation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_config$stiffness","_config$damping","_config$mass","_overshootClamping","overshootClamping","_restDisplacementThreshold","restDisplacementThreshold","_restSpeedThreshold","restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","isInteraction","__iterations","stiffness","damping","mass","speed","tension","friction","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_this$_initialVelocit","initialVelocity","__active","_startPosition","_lastPosition","_onUpdate","_lastTime","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","_timeout","deltaTime","v0","zeta","omega0","omega1","envelope","_envelope","isOvershooting","isVelocity","isDisplacement","_animationFrame","requestAnimationFrame","cancelAnimationFrame","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","startValue","endValue","projectNormal","bouncyTension","bouncyFriction","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","_startTime","charenc","unescape","bytes","arrayLikeToArray","isOptionObject","globalThis","defaultMergeOptions","getEnumerableOwnPropertyKeys","symbol","clone","cloneArray","cloneOptionObject","mergeKeys","merged","resultIndex","indices","_","option","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_interopRequireDefault","_isPrefixedValue2","_isPrefixedValue","grab","grabbing","alternativeProps","alternativeValues","flexShorthandMappings","msFlex","logTag","flexValues","inherit","unset","WebkitBoxDirection","wrap","grad","_slicedToArray","_arr","_n","_d","_e","_s","sliceIterator","isSimplePositionValue","isComplexSpanValue","displayValues","propertyConverters","propertyConverter","alignmentValues","msGridRowAlign","msGridColumn","_value$split","_value$split2","_end$split","_end$split2","maybeSpan","maybeNumber","msGridColumnSpan","msGridRow","_value$split3","_value$split4","_end$split3","_end$split4","msGridRowSpan","gridTemplateColumns","msGridColumns","gridTemplateRows","msGridRows","justifySelf","msGridColumnAlign","alternativePropList","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingBlockStart","paddingBlockEnd","paddingInlineStart","paddingInlineEnd","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","properties","maxHeight","propertyPrefixMap","outputValue","multipleValues","dashCaseProperty","_hyphenateProperty2","j","pLen","unshift","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","factory","ReactNoopUpdateQueue","updater","isValidElement","TurboModuleRegistry","_config$deceleration","_deceleration","deceleration","_velocity","Info","any_blank_count","any_blank_ms","any_blank_speed_sum","mostly_blank_count","mostly_blank_ms","pixels_blank","pixels_sampled","pixels_scrolled","total_time_spent","sample_count","_minSampleCount","_sampleRate","_anyBlankStartTime","_enabled","_info","_mostlyBlankStartTime","_samplesStartTime","_resetData","setSampleRate","sampleRate","setMinSampleCount","minSampleCount","performance","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","predicate","ctx","useBackButton","useDocumentTitle","equal","flags","valueOf","useThenable","cancelled","async","LinkingContext","ThemeProvider","isNativeFunction","construct","_wrapNativeSuper","Class","_cache","Wrapper","semver","patchIndex","tryParse","validate","version","compareVersions","v1","v2","s1","s2","n1","n2","sp1","sp2","p1","p2","allowedOperators","operatorResMap","compare","validateOperator","res","createMemoryHistory","pending","interrupt","backIndex","go","interrupted","timer","onPopState","currentIndex","listen","findMatchingState","aHistoryLength","bHistoryLength","aRoute","bRoute","aChildState","bChildState","useLinking","getActionFromStateDefault","enabledRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","server","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","history","previousIndex","record","rootState","getPathForRoute","stateForPath","isEqual","handling","series","previousState","pendingPath","previousFocusedState","historyDelta","focusedState","nextIndex","Fragment","StrictMode","Profiler","Suspense","for","z","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","D","E","F","isPureReactComponent","G","H","I","__self","__source","J","$$typeof","_owner","L","M","N","O","K","P","Q","_status","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","_context","createFactory","createRef","lazy","_payload","_init","useImperativeHandle","useReducer","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","arg","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","iter","reverse","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","prefixProperties","newStyle","requiredPrefixes","capitalizedProperty","styleProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","base64map","rotl","rotr","randomBytes","floor","words","hex","hexToBytes","bytesToBase64","base64","triplet","base64ToBytes","imod4","readFloatLE","isSlowBuffer","_isBuffer","_assign","_invariant","ReactComponent","injectedMixins","ReactClassInterface","statics","propTypes","contextTypes","childContextTypes","getDefaultProps","getChildContext","componentWillMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","spec","proto","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","replaceState","ReactClassComponent","pairs","autoBindKey","bindAutoBindMethods","methodName","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","Qa","_render","Ra","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","ownerDocument","eb","db","fb","selected","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","ob","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","pb","lastChild","nodeValue","qb","gridArea","gridRowSpan","gridColumnSpan","lineHeight","rb","sb","tb","ub","menuitem","area","base","br","col","embed","hr","img","keygen","meta","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","sd","td","ud","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","targetTouches","Xd","Zd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","defaultView","anchorOffset","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","Mg","Ng","Og","getSnapshotBeforeUpdate","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","onclick","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","_reactRootContainer","hj","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","Me","compareDocumentPosition","extend","setStart","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","unmount","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","flushSync","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","replaceMap","customDecodeURIComponent","separatorIndex","isArr","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isNativeReflectConstruct","_construct","Parent","sham","Proxy","originalWarn","originalError","withExpoRoot","AppRootComponent","combinedProps","recoveredProps","errorRecovery","attachRecoveredProps","registerRootComponent","App","saveRecoveryProps","localStorage","_consumeRecoveryProps","_getRecoveredProps","setRecoveryProps","setRecoveryPropsToSave","NavigationContainer","theme","isLinkingEnabled","linking","refContainer","independent","REACT_NAVIGATION_DEVTOOLS","linkingContext","onReadyRef","CSSTransitions","Transition","MSTransition","OTransition","NativeSafeAreaView","onInsetsChange","getInset","createContextElement","insets","getSupportedTransitionEvent","_supportedTransitionEvent","_supportedEnv","side","getSupportedEnv","SafeAreaInsetsContext","SafeAreaFrameContext","SafeAreaProvider","parentInsets","parentFrame","initialMetrics","nextInsets","nextFrame","setFrame","setInsets","useSafeAreaInsets","safeArea","useSafeAreaFrame","SafeAreaProviderCompat","useTheme","Background","getDefaultHeaderHeight","isLandscape","headerHeight","isParentHeaderShown","parentHeaderHeight","headerShown","headerStatusBarHeight","accessibilityElementsHidden","importantForAccessibility","setHeaderHeight","headerTransparent","absolute","getHeaderTitle","HeaderBackground","android","ios","borderBottomWidth","HeaderTitle","aria-level","Header","headerTitle","headerTitleAlign","headerTitleAllowFontScaling","headerTitleStyle","headerLeftContainerStyle","headerRightContainerStyle","headerTitleContainerStyle","headerBackgroundContainerStyle","headerStyle","defaultHeight","customHeaderStyle","safeStyles","borderTopWidth","backgroundStyle","headerShadowVisible","leftButton","headerLeft","pressColor","pressOpacity","labelVisible","headerLeftLabelVisible","rightButton","headerRight","headerPressOpacity","customTitle","headerBackground","allowFontScaling","titleStyle","expand","MaskedView","AnimatedPressable","ANDROID_SUPPORTS_RIPPLE","PlatformPressable","animateTo","android_ripple","HeaderBackButton","truncatedLabel","customTintColor","handleLabelLayout","onLabelLayout","setInitialLabelWidth","borderless","backImage","fadeDuration","leftLabelText","initialLabelWidth","screenLayout","titleLayout","labelElement","maskElement","iconMaskContainer","iconMask","iconMaskFillerRect","renderLabel","letterSpacing","labelWrapper","icon","iconWithLabel","TRANSPARENT_PRESENTATIONS","NativeStackView","previousKey","nextKey","previousDescriptor","nexDescriptor","contentStyle","nextPresentation","headerTintColor","headerBackTitle","headerBackImageSource","presentation","screenListeners"],"mappings":"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","file":"static/js/2.50407022.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport flattenStyle from './flattenStyle';\nimport validate from './validate';\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);\nvar StyleSheet = {\n absoluteFill: absoluteFill,\n absoluteFillObject: absoluteFillObject,\n compose: function compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n /* eslint-disable prefer-rest-params */\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {\n return flattenStyle(a);\n });\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n /* eslint-enable prefer-rest-params */\n\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n },\n create: function create(styles) {\n var result = {};\n Object.keys(styles).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n validate(key, styles);\n }\n\n var id = styles[key] && ReactNativePropRegistry.register(styles[key]);\n result[key] = id;\n });\n return result;\n },\n flatten: flattenStyle,\n // `hairlineWidth` is not implemented using screen density as browsers may\n // round sub-pixel values down to `0`, causing the line not to be rendered.\n hairlineWidth: 1\n};\nexport default StyleSheet;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from './StyleSheet'; // allow original component styles to be inspected in React Dev Tools\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nexport default StyleSheet;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar View = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var hrefAttrs = props.hrefAttrs,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture;\n\n if (process.env.NODE_ENV !== 'production') {\n React.Children.toArray(props.children).forEach(function (item) {\n if (typeof item === 'string') {\n console.error(\"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n }\n });\n }\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var component = 'div';\n var style = StyleSheet.compose(hasTextAncestor && styles.inline, props.style);\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nView.displayName = 'View';\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n }\n});\nvar classList = [classes.view];\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default View;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Platform = {\n OS: 'web',\n select: function select(obj) {\n return 'web' in obj ? obj.web : obj.default;\n },\n\n get isTesting() {\n if (process.env.NODE_ENV === 'test') {\n return true;\n }\n\n return false;\n }\n\n};\nexport default Platform;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport NativeAnimatedNonTurboModule from './NativeAnimatedModule';\nimport NativeAnimatedTurboModule from './NativeAnimatedTurboModule';\nimport NativeEventEmitter from '../NativeEventEmitter';\nimport Platform from '../../../exports/Platform';\nimport invariant from 'fbjs/lib/invariant'; // TODO T69437152 @petetheheat - Delete this fork when Fabric ships to 100%.\n\nvar NativeAnimatedModule = Platform.OS === 'ios' && global.RN$Bridgeless ? NativeAnimatedTurboModule : NativeAnimatedNonTurboModule;\nvar __nativeAnimatedNodeTagCount = 1;\n/* used for animated nodes */\n\nvar __nativeAnimationIdCount = 1;\n/* used for started animations */\n\nvar nativeEventEmitter;\nvar waitingForQueuedOperations = new Set();\nvar queueOperations = false;\nvar queue = [];\n/**\n * Simple wrappers around NativeAnimatedModule to provide flow and autocomplete support for\n * the native module methods\n */\n\nvar API = {\n getValue: function getValue(tag, saveValueCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (NativeAnimatedModule.getValue) {\n NativeAnimatedModule.getValue(tag, saveValueCallback);\n }\n },\n setWaitingForIdentifier: function setWaitingForIdentifier(id) {\n waitingForQueuedOperations.add(id);\n queueOperations = true;\n },\n unsetWaitingForIdentifier: function unsetWaitingForIdentifier(id) {\n waitingForQueuedOperations.delete(id);\n\n if (waitingForQueuedOperations.size === 0) {\n queueOperations = false;\n API.disableQueue();\n }\n },\n disableQueue: function disableQueue() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.startOperationBatch();\n }\n\n for (var q = 0, l = queue.length; q < l; q++) {\n queue[q]();\n }\n\n queue.length = 0;\n\n if (Platform.OS === 'android') {\n NativeAnimatedModule.finishOperationBatch();\n }\n },\n queueOperation: function queueOperation(fn) {\n if (queueOperations) {\n queue.push(fn);\n } else {\n fn();\n }\n },\n createAnimatedNode: function createAnimatedNode(tag, config) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.createAnimatedNode(tag, config);\n });\n },\n startListeningToAnimatedNodeValue: function startListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startListeningToAnimatedNodeValue(tag);\n });\n },\n stopListeningToAnimatedNodeValue: function stopListeningToAnimatedNodeValue(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopListeningToAnimatedNodeValue(tag);\n });\n },\n connectAnimatedNodes: function connectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodes(parentTag, childTag);\n });\n },\n disconnectAnimatedNodes: function disconnectAnimatedNodes(parentTag, childTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodes(parentTag, childTag);\n });\n },\n startAnimatingNode: function startAnimatingNode(animationId, nodeTag, config, endCallback) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.startAnimatingNode(animationId, nodeTag, config, endCallback);\n });\n },\n stopAnimation: function stopAnimation(animationId) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.stopAnimation(animationId);\n });\n },\n setAnimatedNodeValue: function setAnimatedNodeValue(nodeTag, value) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeValue(nodeTag, value);\n });\n },\n setAnimatedNodeOffset: function setAnimatedNodeOffset(nodeTag, offset) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.setAnimatedNodeOffset(nodeTag, offset);\n });\n },\n flattenAnimatedNodeOffset: function flattenAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.flattenAnimatedNodeOffset(nodeTag);\n });\n },\n extractAnimatedNodeOffset: function extractAnimatedNodeOffset(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.extractAnimatedNodeOffset(nodeTag);\n });\n },\n connectAnimatedNodeToView: function connectAnimatedNodeToView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.connectAnimatedNodeToView(nodeTag, viewTag);\n });\n },\n disconnectAnimatedNodeFromView: function disconnectAnimatedNodeFromView(nodeTag, viewTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.disconnectAnimatedNodeFromView(nodeTag, viewTag);\n });\n },\n restoreDefaultValues: function restoreDefaultValues(nodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available'); // Backwards compat with older native runtimes, can be removed later.\n\n if (NativeAnimatedModule.restoreDefaultValues != null) {\n API.queueOperation(function () {\n return NativeAnimatedModule.restoreDefaultValues(nodeTag);\n });\n }\n },\n dropAnimatedNode: function dropAnimatedNode(tag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.dropAnimatedNode(tag);\n });\n },\n addAnimatedEventToView: function addAnimatedEventToView(viewTag, eventName, eventMapping) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.addAnimatedEventToView(viewTag, eventName, eventMapping);\n });\n },\n removeAnimatedEventFromView: function removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag) {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n API.queueOperation(function () {\n return NativeAnimatedModule.removeAnimatedEventFromView(viewTag, eventName, animatedNodeTag);\n });\n }\n};\n/**\n * Styles allowed by the native animated implementation.\n *\n * In general native animated implementation should support any numeric property that doesn't need\n * to be updated through the shadow view hierarchy (all non-layout properties).\n */\n\nvar SUPPORTED_STYLES = {\n opacity: true,\n transform: true,\n borderRadius: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n elevation: true,\n zIndex: true,\n\n /* ios styles */\n shadowOpacity: true,\n shadowRadius: true,\n\n /* legacy android transform properties */\n scaleX: true,\n scaleY: true,\n translateX: true,\n translateY: true\n};\nvar SUPPORTED_TRANSFORMS = {\n translateX: true,\n translateY: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n rotateX: true,\n rotateY: true,\n rotateZ: true,\n perspective: true\n};\nvar SUPPORTED_INTERPOLATION_PARAMS = {\n inputRange: true,\n outputRange: true,\n extrapolate: true,\n extrapolateRight: true,\n extrapolateLeft: true\n};\n\nfunction addWhitelistedStyleProp(prop) {\n SUPPORTED_STYLES[prop] = true;\n}\n\nfunction addWhitelistedTransformProp(prop) {\n SUPPORTED_TRANSFORMS[prop] = true;\n}\n\nfunction addWhitelistedInterpolationParam(param) {\n SUPPORTED_INTERPOLATION_PARAMS[param] = true;\n}\n\nfunction validateTransform(configs) {\n configs.forEach(function (config) {\n if (!SUPPORTED_TRANSFORMS.hasOwnProperty(config.property)) {\n throw new Error(\"Property '\" + config.property + \"' is not supported by native animated module\");\n }\n });\n}\n\nfunction validateStyles(styles) {\n for (var _key in styles) {\n if (!SUPPORTED_STYLES.hasOwnProperty(_key)) {\n throw new Error(\"Style property '\" + _key + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction validateInterpolation(config) {\n for (var _key2 in config) {\n if (!SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(_key2)) {\n throw new Error(\"Interpolation property '\" + _key2 + \"' is not supported by native animated module\");\n }\n }\n}\n\nfunction generateNewNodeTag() {\n return __nativeAnimatedNodeTagCount++;\n}\n\nexport function generateNewAnimationId() {\n return __nativeAnimationIdCount++;\n}\n\nfunction assertNativeAnimatedModule() {\n invariant(NativeAnimatedModule, 'Native animated module is not available');\n}\n\nvar _warnedMissingNativeAnimated = false;\nexport function shouldUseNativeDriver(config) {\n if (config.useNativeDriver == null) {\n console.warn('Animated: `useNativeDriver` was not specified. This is a required ' + 'option and must be explicitly set to `true` or `false`');\n }\n\n if (config.useNativeDriver === true && !NativeAnimatedModule) {\n if (!_warnedMissingNativeAnimated) {\n console.warn('Animated: `useNativeDriver` is not supported because the native ' + 'animated module is missing. Falling back to JS-based animation. To ' + 'resolve this, add `RCTAnimation` module to this app, or remove ' + '`useNativeDriver`. ' + 'Make sure to run `pod install` first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md');\n _warnedMissingNativeAnimated = true;\n }\n\n return false;\n }\n\n return config.useNativeDriver || false;\n}\n\nfunction transformDataType(value) {\n // Change the string type to number type so we can reuse the same logic in\n // iOS and Android platform\n if (typeof value !== 'string') {\n return value;\n }\n\n if (/deg$/.test(value)) {\n var degrees = parseFloat(value) || 0;\n var radians = degrees * Math.PI / 180.0;\n return radians;\n } else {\n return value;\n }\n}\n\nexport default {\n API: API,\n addWhitelistedStyleProp: addWhitelistedStyleProp,\n addWhitelistedTransformProp: addWhitelistedTransformProp,\n addWhitelistedInterpolationParam: addWhitelistedInterpolationParam,\n validateStyles: validateStyles,\n validateTransform: validateTransform,\n validateInterpolation: validateInterpolation,\n generateNewNodeTag: generateNewNodeTag,\n generateNewAnimationId: generateNewAnimationId,\n assertNativeAnimatedModule: assertNativeAnimatedModule,\n shouldUseNativeDriver: shouldUseNativeDriver,\n transformDataType: transformDataType,\n\n // $FlowExpectedError - unsafe getter lint suppresion\n get nativeEventEmitter() {\n if (!nativeEventEmitter) {\n nativeEventEmitter = new NativeEventEmitter(NativeAnimatedModule);\n }\n\n return nativeEventEmitter;\n }\n\n};","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1; // Note(vjeux): this would be better as an interface but flow doesn't\n// support them yet\n\nvar AnimatedNode = /*#__PURE__*/function () {\n var _proto = AnimatedNode.prototype;\n\n _proto.__attach = function __attach() {};\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this.__nativeTag != null) {\n NativeAnimatedHelper.API.dropAnimatedNode(this.__nativeTag);\n this.__nativeTag = undefined;\n }\n };\n\n _proto.__getValue = function __getValue() {};\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this.__getValue();\n };\n\n _proto.__addChild = function __addChild(child) {};\n\n _proto.__removeChild = function __removeChild(child) {};\n\n _proto.__getChildren = function __getChildren() {\n return [];\n }\n /* Methods and props used by native Animated impl */\n ;\n\n function AnimatedNode() {\n this._listeners = {};\n }\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n throw new Error('This node cannot be made a \"native\" animated node');\n }\n\n if (this.hasListeners()) {\n this._startListeningToNativeValueUpdates();\n }\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to\n * synchronously read the value because it might be driven natively.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var id = String(_uniqueId++);\n this._listeners[id] = callback;\n\n if (this.__isNative) {\n this._startListeningToNativeValueUpdates();\n }\n\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n delete this._listeners[id];\n\n if (this.__isNative && !this.hasListeners()) {\n this._stopListeningForNativeValueUpdates();\n }\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this._listeners = {};\n\n if (this.__isNative) {\n this._stopListeningForNativeValueUpdates();\n }\n };\n\n _proto.hasListeners = function hasListeners() {\n return !!Object.keys(this._listeners).length;\n };\n\n _proto._startListeningToNativeValueUpdates = function _startListeningToNativeValueUpdates() {\n var _this = this;\n\n if (this.__nativeAnimatedValueListener && !this.__shouldUpdateListenersForNewNativeTag) {\n return;\n }\n\n if (this.__shouldUpdateListenersForNewNativeTag) {\n this.__shouldUpdateListenersForNewNativeTag = false;\n\n this._stopListeningForNativeValueUpdates();\n }\n\n NativeAnimatedAPI.startListeningToAnimatedNodeValue(this.__getNativeTag());\n this.__nativeAnimatedValueListener = NativeAnimatedHelper.nativeEventEmitter.addListener('onAnimatedValueUpdate', function (data) {\n if (data.tag !== _this.__getNativeTag()) {\n return;\n }\n\n _this._onAnimatedValueUpdateReceived(data.value);\n });\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this.__callListeners(value);\n };\n\n _proto.__callListeners = function __callListeners(value) {\n for (var _key in this._listeners) {\n this._listeners[_key]({\n value: value\n });\n }\n };\n\n _proto._stopListeningForNativeValueUpdates = function _stopListeningForNativeValueUpdates() {\n if (!this.__nativeAnimatedValueListener) {\n return;\n }\n\n this.__nativeAnimatedValueListener.remove();\n\n this.__nativeAnimatedValueListener = null;\n NativeAnimatedAPI.stopListeningToAnimatedNodeValue(this.__getNativeTag());\n };\n\n _proto.__getNativeTag = function __getNativeTag() {\n var _this$__nativeTag;\n\n NativeAnimatedHelper.assertNativeAnimatedModule();\n invariant(this.__isNative, 'Attempt to get native tag from node not marked as \"native\"');\n var nativeTag = (_this$__nativeTag = this.__nativeTag) !== null && _this$__nativeTag !== void 0 ? _this$__nativeTag : NativeAnimatedHelper.generateNewNodeTag();\n\n if (this.__nativeTag == null) {\n this.__nativeTag = nativeTag;\n NativeAnimatedHelper.API.createAnimatedNode(nativeTag, this.__getNativeConfig());\n this.__shouldUpdateListenersForNewNativeTag = true;\n }\n\n return nativeTag;\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n throw new Error('This JS animated node type cannot be used as native animated node');\n };\n\n _proto.toJSON = function toJSON() {\n return this.__getValue();\n };\n\n return AnimatedNode;\n}();\n\nexport default AnimatedNode;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from './TextAncestorContext';\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n href: true,\n lang: true,\n pointerEvents: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nvar Text = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var dir = props.dir,\n hrefAttrs = props.hrefAttrs,\n numberOfLines = props.numberOfLines,\n onClick = props.onClick,\n onLayout = props.onLayout,\n onPress = props.onPress,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n selectable = props.selectable;\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hostRef = React.useRef(null);\n var classList = [classes.text, hasTextAncestor === true && classes.textHasAncestor, numberOfLines === 1 && classes.textOneLine, numberOfLines != null && numberOfLines > 1 && classes.textMultiLine];\n var style = [props.style, numberOfLines != null && numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, selectable === true && styles.selectable, selectable === false && styles.notSelectable, onPress && styles.pressable];\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var handleClick = React.useCallback(function (e) {\n if (onClick != null) {\n onClick(e);\n } else if (onPress != null) {\n e.stopPropagation();\n onPress(e);\n }\n }, [onClick, onPress]);\n var component = hasTextAncestor ? 'span' : 'div';\n var supportedProps = pickProps(props);\n supportedProps.classList = classList;\n supportedProps.dir = dir; // 'auto' by default allows browsers to infer writing direction (root elements only)\n\n if (!hasTextAncestor) {\n supportedProps.dir = dir != null ? dir : 'auto';\n }\n\n if (onClick || onPress) {\n supportedProps.onClick = handleClick;\n }\n\n supportedProps.style = style;\n\n if (props.href != null) {\n component = 'a';\n\n if (hrefAttrs != null) {\n var download = hrefAttrs.download,\n rel = hrefAttrs.rel,\n target = hrefAttrs.target;\n\n if (download != null) {\n supportedProps.download = download;\n }\n\n if (rel != null) {\n supportedProps.rel = rel;\n }\n\n if (typeof target === 'string') {\n supportedProps.target = target.charAt(0) !== '_' ? '_' + target : target;\n }\n }\n }\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n var element = createElement(component, supportedProps);\n return hasTextAncestor ? element : /*#__PURE__*/React.createElement(TextAncestorContext.Provider, {\n value: true\n }, element);\n});\nText.displayName = 'Text';\nvar classes = css.create({\n text: {\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n margin: 0,\n padding: 0,\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'pre'\n },\n // See #13\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n }\n});\nvar styles = StyleSheet.create({\n notSelectable: {\n userSelect: 'none'\n },\n selectable: {\n userSelect: 'text'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default Text;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport InteractionManager from '../../../../exports/InteractionManager';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar NativeAnimatedAPI = NativeAnimatedHelper.API;\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an Animated.Value is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\nfunction _flush(rootNode) {\n var animatedStyles = new Set();\n\n function findAnimatedStyles(node) {\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n if (typeof node.update === 'function') {\n animatedStyles.add(node);\n } else {\n node.__getChildren().forEach(findAnimatedStyles);\n }\n }\n\n findAnimatedStyles(rootNode);\n /* $FlowFixMe */\n\n animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n}\n/**\n * Standard value for driving animations. One `Animated.Value` can drive\n * multiple properties in a synchronized fashion, but can only be driven by one\n * mechanism at a time. Using a new mechanism (e.g. starting a new animation,\n * or calling `setValue`) will stop any previous ones.\n *\n * See https://reactnative.dev/docs/animatedvalue.html\n */\n\n\nvar AnimatedValue = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValue, _AnimatedWithChildren);\n\n function AnimatedValue(value) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n\n if (typeof value !== 'number') {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n _this._startingValue = _this._value = value;\n _this._offset = 0;\n _this._animation = null;\n return _this;\n }\n\n var _proto = AnimatedValue.prototype;\n\n _proto.__detach = function __detach() {\n var _this2 = this;\n\n if (this.__isNative) {\n NativeAnimatedAPI.getValue(this.__getNativeTag(), function (value) {\n _this2._value = value;\n });\n }\n\n this.stopAnimation();\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._value + this._offset;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setvalue\n */\n ;\n\n _proto.setValue = function setValue(value) {\n if (this._animation) {\n this._animation.stop();\n\n this._animation = null;\n }\n\n this._updateValue(value, !this.__isNative\n /* don't perform a flush for natively driven values */\n );\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeValue(this.__getNativeTag(), value);\n }\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether via\n * `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this._offset = offset;\n\n if (this.__isNative) {\n NativeAnimatedAPI.setAnimatedNodeOffset(this.__getNativeTag(), offset);\n }\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this._value += this._offset;\n this._offset = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.flattenAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Sets the offset value to the base value, and resets the base value to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this._offset += this._value;\n this._value = 0;\n\n if (this.__isNative) {\n NativeAnimatedAPI.extractAnimatedNodeOffset(this.__getNativeTag());\n }\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.stopTracking();\n this._animation && this._animation.stop();\n this._animation = null;\n callback && callback(this.__getValue());\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.stopAnimation(callback);\n this._value = this._startingValue;\n };\n\n _proto._onAnimatedValueUpdateReceived = function _onAnimatedValueUpdateReceived(value) {\n this._updateValue(value, false\n /*flush*/\n );\n }\n /**\n * Interpolates the value before updating the property, e.g. mapping 0-1 to\n * 0-10.\n */\n ;\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n }\n /**\n * Typically only used internally, but could be used by a custom Animation\n * class.\n *\n * See https://reactnative.dev/docs/animatedvalue.html#animate\n */\n ;\n\n _proto.animate = function animate(animation, callback) {\n var _this3 = this;\n\n var handle = null;\n\n if (animation.__isInteraction) {\n handle = InteractionManager.createInteractionHandle();\n }\n\n var previousAnimation = this._animation;\n this._animation && this._animation.stop();\n this._animation = animation;\n animation.start(this._value, function (value) {\n // Natively driven animations will never call into that callback, therefore we can always\n // pass flush = true to allow the updated value to propagate to native with setNativeProps\n _this3._updateValue(value, true\n /* flush */\n );\n }, function (result) {\n _this3._animation = null;\n\n if (handle !== null) {\n InteractionManager.clearInteractionHandle(handle);\n }\n\n callback && callback(result);\n }, previousAnimation, this);\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.stopTracking = function stopTracking() {\n this._tracking && this._tracking.__detach();\n this._tracking = null;\n }\n /**\n * Typically only used internally.\n */\n ;\n\n _proto.track = function track(tracking) {\n this.stopTracking();\n this._tracking = tracking;\n };\n\n _proto._updateValue = function _updateValue(value, flush) {\n if (value === undefined) {\n throw new Error('AnimatedValue: Attempting to set value to undefined');\n }\n\n this._value = value;\n\n if (flush) {\n _flush(this);\n }\n\n _AnimatedWithChildren.prototype.__callListeners.call(this, this.__getValue());\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'value',\n value: this._value,\n offset: this._offset\n };\n };\n\n return AnimatedValue;\n}(AnimatedWithChildren);\n\nexport default AnimatedValue;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport TouchableOpacity from '../TouchableOpacity';\nimport Text from '../Text';\nvar Button = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n color = props.color,\n disabled = props.disabled,\n onPress = props.onPress,\n testID = props.testID,\n title = props.title;\n return /*#__PURE__*/React.createElement(TouchableOpacity, {\n accessibilityLabel: accessibilityLabel,\n accessibilityRole: \"button\",\n disabled: disabled,\n focusable: !disabled,\n onPress: onPress,\n ref: forwardedRef,\n style: [styles.button, color && {\n backgroundColor: color\n }, disabled && styles.buttonDisabled],\n testID: testID\n }, /*#__PURE__*/React.createElement(Text, {\n style: [styles.text, disabled && styles.textDisabled]\n }, title));\n});\nButton.displayName = 'Button';\nvar styles = StyleSheet.create({\n button: {\n backgroundColor: '#2196F3',\n borderRadius: 2\n },\n text: {\n color: '#fff',\n fontWeight: '500',\n padding: 8,\n textAlign: 'center',\n textTransform: 'uppercase'\n },\n buttonDisabled: {\n backgroundColor: '#dfdfdf'\n },\n textDisabled: {\n color: '#a1a1a1'\n }\n});\nexport default Button;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var defaultProps = {\n children: true,\n dataSet: true,\n nativeID: true,\n ref: true,\n suppressHydrationWarning: true,\n testID: true\n};\nexport var accessibilityProps = {\n accessibilityActiveDescendant: true,\n accessibilityAtomic: true,\n accessibilityAutoComplete: true,\n accessibilityBusy: true,\n accessibilityChecked: true,\n accessibilityColumnCount: true,\n accessibilityColumnIndex: true,\n accessibilityColumnSpan: true,\n accessibilityControls: true,\n accessibilityCurrent: true,\n accessibilityDescribedBy: true,\n accessibilityDetails: true,\n accessibilityDisabled: true,\n accessibilityErrorMessage: true,\n accessibilityExpanded: true,\n accessibilityFlowTo: true,\n accessibilityHasPopup: true,\n accessibilityHidden: true,\n accessibilityInvalid: true,\n accessibilityKeyShortcuts: true,\n accessibilityLabel: true,\n accessibilityLabelledBy: true,\n accessibilityLevel: true,\n accessibilityLiveRegion: true,\n accessibilityModal: true,\n accessibilityMultiline: true,\n accessibilityMultiSelectable: true,\n accessibilityOrientation: true,\n accessibilityOwns: true,\n accessibilityPlaceholder: true,\n accessibilityPosInSet: true,\n accessibilityPressed: true,\n accessibilityReadOnly: true,\n accessibilityRequired: true,\n accessibilityRole: true,\n accessibilityRoleDescription: true,\n accessibilityRowCount: true,\n accessibilityRowIndex: true,\n accessibilityRowSpan: true,\n accessibilitySelected: true,\n accessibilitySetSize: true,\n accessibilitySort: true,\n accessibilityValueMax: true,\n accessibilityValueMin: true,\n accessibilityValueNow: true,\n accessibilityValueText: true,\n dir: true,\n focusable: true,\n // Deprecated\n accessible: true,\n accessibilityState: true,\n accessibilityValue: true\n};\nexport var clickProps = {\n onClick: true,\n onClickCapture: true,\n onContextMenu: true\n};\nexport var focusProps = {\n onBlur: true,\n onFocus: true\n};\nexport var keyboardProps = {\n onKeyDown: true,\n onKeyDownCapture: true,\n onKeyUp: true,\n onKeyUpCapture: true\n};\nexport var mouseProps = {\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true\n};\nexport var touchProps = {\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\nexport var styleProps = {\n classList: true,\n style: true\n};","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n * \n */\nimport isUnitlessNumber from '../unitlessNumbers';\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","/* eslint-disable */\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.3.0\n * \n */\nimport dangerousStyleValue from './dangerousStyleValue';\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport setValueForStyles from '../../modules/setValueForStyles';\n\nvar getRect = function getRect(node) {\n // Unlike the DOM's getBoundingClientRect, React Native layout measurements\n // for \"height\" and \"width\" ignore scale transforms.\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS_Object_Model/Determining_the_dimensions_of_elements\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName; // A tabIndex of -1 allows element to be programmatically focused but\n // prevents keyboard focus, so we don't want to set the value on elements\n // that support keyboard focus by default.\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n // native platforms use `text` prop to replace text input value\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n // mocks\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport createDOMProps from '../../modules/createDOMProps';\nimport React from 'react';\n\nvar createElement = function createElement(component, props) {\n // Use equivalent platform elements where possible.\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return /*#__PURE__*/React.createElement.apply(React, [Component, domProps].concat(children));\n};\n\nexport default createElement;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedWithChildren = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedWithChildren, _AnimatedNode);\n\n function AnimatedWithChildren() {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._children = [];\n return _this;\n }\n\n var _proto = AnimatedWithChildren.prototype;\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this._children), _step; !(_step = _iterator()).done;) {\n var child = _step.value;\n\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n }\n\n _AnimatedNode.prototype.__makeNative.call(this);\n };\n\n _proto.__addChild = function __addChild(child) {\n if (this._children.length === 0) {\n this.__attach();\n }\n\n this._children.push(child);\n\n if (this.__isNative) {\n // Only accept \"native\" animated nodes as children\n child.__makeNative();\n\n NativeAnimatedHelper.API.connectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n };\n\n _proto.__removeChild = function __removeChild(child) {\n var index = this._children.indexOf(child);\n\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (this.__isNative && child.__isNative) {\n NativeAnimatedHelper.API.disconnectAnimatedNodes(this.__getNativeTag(), child.__getNativeTag());\n }\n\n this._children.splice(index, 1);\n\n if (this._children.length === 0) {\n this.__detach();\n }\n };\n\n _proto.__getChildren = function __getChildren() {\n return this._children;\n };\n\n _proto.__callListeners = function __callListeners(value) {\n _AnimatedNode.prototype.__callListeners.call(this, value);\n\n if (!this.__isNative) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this._children), _step2; !(_step2 = _iterator2()).done;) {\n var child = _step2.value;\n\n if (child.__getValue) {\n child.__callListeners(child.__getValue());\n }\n }\n }\n };\n\n return AnimatedWithChildren;\n}(AnimatedNode);\n\nexport default AnimatedWithChildren;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../../exports/Dimensions';\nimport findNodeHandle from '../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport Platform from '../../exports/Platform';\nimport TextInputState from '../TextInputState';\nimport UIManager from '../../exports/UIManager';\nimport warning from 'fbjs/lib/warning';\n/**\n * Mixin that can be integrated in order to handle scrolling that plays well\n * with `ResponderEventPlugin`. Integrate with your platform specific scroll\n * views, or even your custom built (every-frame animating) scroll views so that\n * all of these systems play well with the `ResponderEventPlugin`.\n *\n * iOS scroll event timing nuances:\n * ===============================\n *\n *\n * Scrolling without bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... physical touch starts ...\n * 2. `onTouchStartCapture` (when you press down to stop the scroll)\n * 3. `onTouchStart` (same, but bubble phase)\n * 4. `onResponderRelease` (when lifting up - you could pause forever before * lifting)\n * 5. `onMomentumScrollEnd`\n *\n *\n * Scrolling with bouncing, if you touch down:\n * -------------------------------\n *\n * 1. `onMomentumScrollBegin` (when animation begins after letting up)\n * ... bounce begins ...\n * ... some time elapses ...\n * ... physical touch during bounce ...\n * 2. `onMomentumScrollEnd` (Makes no sense why this occurs first during bounce)\n * 3. `onTouchStartCapture` (immediately after `onMomentumScrollEnd`)\n * 4. `onTouchStart` (same, but bubble phase)\n * 5. `onTouchEnd` (You could hold the touch start for a long time)\n * 6. `onMomentumScrollBegin` (When releasing the view starts bouncing back)\n *\n * So when we receive an `onTouchStart`, how can we tell if we are touching\n * *during* an animation (which then causes the animation to stop)? The only way\n * to tell is if the `touchStart` occurred immediately after the\n * `onMomentumScrollEnd`.\n *\n * This is abstracted out for you, so you can just call this.scrollResponderIsAnimating() if\n * necessary\n *\n * `ScrollResponder` also includes logic for blurring a currently focused input\n * if one is focused while scrolling. The `ScrollResponder` is a natural place\n * to put this logic since it can support not dismissing the keyboard while\n * scrolling, unless a recognized \"tap\"-like gesture has occurred.\n *\n * The public lifecycle API includes events for keyboard interaction, responder\n * interaction, and scrolling (among others). The keyboard callbacks\n * `onKeyboardWill/Did/*` are *global* events, but are invoked on scroll\n * responder's props so that you can guarantee that the scroll responder's\n * internal state has been updated accordingly (and deterministically) by\n * the time the props callbacks are invoke. Otherwise, you would always wonder\n * if the scroll responder is currently in a state where it recognizes new\n * keyboard positions etc. If coordinating scrolling with keyboard movement,\n * *always* use these hooks instead of listening to your own global keyboard\n * events.\n *\n * Public keyboard lifecycle API: (props callbacks)\n *\n * Standard Keyboard Appearance Sequence:\n *\n * this.props.onKeyboardWillShow\n * this.props.onKeyboardDidShow\n *\n * `onScrollResponderKeyboardDismissed` will be invoked if an appropriate\n * tap inside the scroll responder's scrollable region was responsible\n * for the dismissal of the keyboard. There are other reasons why the\n * keyboard could be dismissed.\n *\n * this.props.onScrollResponderKeyboardDismissed\n *\n * Standard Keyboard Hide Sequence:\n *\n * this.props.onKeyboardWillHide\n * this.props.onKeyboardDidHide\n */\n\nvar emptyObject = {};\nvar IS_ANIMATING_TOUCH_START_THRESHOLD_MS = 16;\nvar ScrollResponderMixin = {\n // mixins: [Subscribable.Mixin],\n scrollResponderMixinGetInitialState: function scrollResponderMixinGetInitialState() {\n return {\n isTouching: false,\n lastMomentumScrollBeginTime: 0,\n lastMomentumScrollEndTime: 0,\n // Reset to false every time becomes responder. This is used to:\n // - Determine if the scroll view has been scrolled and therefore should\n // refuse to give up its responder lock.\n // - Determine if releasing should dismiss the keyboard when we are in\n // tap-to-dismiss mode (!this.props.keyboardShouldPersistTaps).\n observedScrollSinceBecomingResponder: false,\n becameResponderWhileAnimating: false\n };\n },\n\n /**\n * Invoke this from an `onScroll` event.\n */\n scrollResponderHandleScrollShouldSetResponder: function scrollResponderHandleScrollShouldSetResponder() {\n return this.state.isTouching;\n },\n\n /**\n * Merely touch starting is not sufficient for a scroll view to become the\n * responder. Being the \"responder\" means that the very next touch move/end\n * event will result in an action/movement.\n *\n * Invoke this from an `onStartShouldSetResponder` event.\n *\n * `onStartShouldSetResponder` is used when the next move/end will trigger\n * some UI movement/action, but when you want to yield priority to views\n * nested inside of the view.\n *\n * There may be some cases where scroll views actually should return `true`\n * from `onStartShouldSetResponder`: Any time we are detecting a standard tap\n * that gives priority to nested views.\n *\n * - If a single tap on the scroll view triggers an action such as\n * recentering a map style view yet wants to give priority to interaction\n * views inside (such as dropped pins or labels), then we would return true\n * from this method when there is a single touch.\n *\n * - Similar to the previous case, if a two finger \"tap\" should trigger a\n * zoom, we would check the `touches` count, and if `>= 2`, we would return\n * true.\n *\n */\n scrollResponderHandleStartShouldSetResponder: function scrollResponderHandleStartShouldSetResponder() {\n return false;\n },\n\n /**\n * There are times when the scroll view wants to become the responder\n * (meaning respond to the next immediate `touchStart/touchEnd`), in a way\n * that *doesn't* give priority to nested views (hence the capture phase):\n *\n * - Currently animating.\n * - Tapping anywhere that is not the focused input, while the keyboard is\n * up (which should dismiss the keyboard).\n *\n * Invoke this from an `onStartShouldSetResponderCapture` event.\n */\n scrollResponderHandleStartShouldSetResponderCapture: function scrollResponderHandleStartShouldSetResponderCapture(e) {\n // First see if we want to eat taps while the keyboard is up\n // var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n // if (!this.props.keyboardShouldPersistTaps &&\n // currentlyFocusedTextInput != null &&\n // e.target !== currentlyFocusedTextInput) {\n // return true;\n // }\n return this.scrollResponderIsAnimating();\n },\n\n /**\n * Invoke this from an `onResponderReject` event.\n *\n * Some other element is not yielding its role as responder. Normally, we'd\n * just disable the `UIScrollView`, but a touch has already began on it, the\n * `UIScrollView` will not accept being disabled after that. The easiest\n * solution for now is to accept the limitation of disallowing this\n * altogether. To improve this, find a way to disable the `UIScrollView` after\n * a touch has already started.\n */\n scrollResponderHandleResponderReject: function scrollResponderHandleResponderReject() {\n warning(false, \"ScrollView doesn't take rejection well - scrolls anyway\");\n },\n\n /**\n * We will allow the scroll view to give up its lock iff it acquired the lock\n * during an animation. This is a very useful default that happens to satisfy\n * many common user experiences.\n *\n * - Stop a scroll on the left edge, then turn that into an outer view's\n * backswipe.\n * - Stop a scroll mid-bounce at the top, continue pulling to have the outer\n * view dismiss.\n * - However, without catching the scroll view mid-bounce (while it is\n * motionless), if you drag far enough for the scroll view to become\n * responder (and therefore drag the scroll view a bit), any backswipe\n * navigation of a swipe gesture higher in the view hierarchy, should be\n * rejected.\n */\n scrollResponderHandleTerminationRequest: function scrollResponderHandleTerminationRequest() {\n return !this.state.observedScrollSinceBecomingResponder;\n },\n\n /**\n * Invoke this from an `onTouchEnd` event.\n *\n * @param {SyntheticEvent} e Event.\n */\n scrollResponderHandleTouchEnd: function scrollResponderHandleTouchEnd(e) {\n var nativeEvent = e.nativeEvent;\n this.state.isTouching = nativeEvent.touches.length !== 0;\n this.props.onTouchEnd && this.props.onTouchEnd(e);\n },\n\n /**\n * Invoke this from an `onResponderRelease` event.\n */\n scrollResponderHandleResponderRelease: function scrollResponderHandleResponderRelease(e) {\n this.props.onResponderRelease && this.props.onResponderRelease(e); // By default scroll views will unfocus a textField\n // if another touch occurs outside of it\n\n var currentlyFocusedTextInput = TextInputState.currentlyFocusedField();\n\n if (!this.props.keyboardShouldPersistTaps && currentlyFocusedTextInput != null && e.target !== currentlyFocusedTextInput && !this.state.observedScrollSinceBecomingResponder && !this.state.becameResponderWhileAnimating) {\n this.props.onScrollResponderKeyboardDismissed && this.props.onScrollResponderKeyboardDismissed(e);\n TextInputState.blurTextInput(currentlyFocusedTextInput);\n }\n },\n scrollResponderHandleScroll: function scrollResponderHandleScroll(e) {\n this.state.observedScrollSinceBecomingResponder = true;\n this.props.onScroll && this.props.onScroll(e);\n },\n\n /**\n * Invoke this from an `onResponderGrant` event.\n */\n scrollResponderHandleResponderGrant: function scrollResponderHandleResponderGrant(e) {\n this.state.observedScrollSinceBecomingResponder = false;\n this.props.onResponderGrant && this.props.onResponderGrant(e);\n this.state.becameResponderWhileAnimating = this.scrollResponderIsAnimating();\n },\n\n /**\n * Unfortunately, `onScrollBeginDrag` also fires when *stopping* the scroll\n * animation, and there's not an easy way to distinguish a drag vs. stopping\n * momentum.\n *\n * Invoke this from an `onScrollBeginDrag` event.\n */\n scrollResponderHandleScrollBeginDrag: function scrollResponderHandleScrollBeginDrag(e) {\n this.props.onScrollBeginDrag && this.props.onScrollBeginDrag(e);\n },\n\n /**\n * Invoke this from an `onScrollEndDrag` event.\n */\n scrollResponderHandleScrollEndDrag: function scrollResponderHandleScrollEndDrag(e) {\n this.props.onScrollEndDrag && this.props.onScrollEndDrag(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollBegin` event.\n */\n scrollResponderHandleMomentumScrollBegin: function scrollResponderHandleMomentumScrollBegin(e) {\n this.state.lastMomentumScrollBeginTime = Date.now();\n this.props.onMomentumScrollBegin && this.props.onMomentumScrollBegin(e);\n },\n\n /**\n * Invoke this from an `onMomentumScrollEnd` event.\n */\n scrollResponderHandleMomentumScrollEnd: function scrollResponderHandleMomentumScrollEnd(e) {\n this.state.lastMomentumScrollEndTime = Date.now();\n this.props.onMomentumScrollEnd && this.props.onMomentumScrollEnd(e);\n },\n\n /**\n * Invoke this from an `onTouchStart` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchStart: function scrollResponderHandleTouchStart(e) {\n this.state.isTouching = true;\n this.props.onTouchStart && this.props.onTouchStart(e);\n },\n\n /**\n * Invoke this from an `onTouchMove` event.\n *\n * Since we know that the `SimpleEventPlugin` occurs later in the plugin\n * order, after `ResponderEventPlugin`, we can detect that we were *not*\n * permitted to be the responder (presumably because a contained view became\n * responder). The `onResponderReject` won't fire in that case - it only\n * fires when a *current* responder rejects our request.\n *\n * @param {SyntheticEvent} e Touch Start event.\n */\n scrollResponderHandleTouchMove: function scrollResponderHandleTouchMove(e) {\n this.props.onTouchMove && this.props.onTouchMove(e);\n },\n\n /**\n * A helper function for this class that lets us quickly determine if the\n * view is currently animating. This is particularly useful to know when\n * a touch has just started or ended.\n */\n scrollResponderIsAnimating: function scrollResponderIsAnimating() {\n var now = Date.now();\n var timeSinceLastMomentumScrollEnd = now - this.state.lastMomentumScrollEndTime;\n var isAnimating = timeSinceLastMomentumScrollEnd < IS_ANIMATING_TOUCH_START_THRESHOLD_MS || this.state.lastMomentumScrollEndTime < this.state.lastMomentumScrollBeginTime;\n return isAnimating;\n },\n\n /**\n * Returns the node that represents native view that can be scrolled.\n * Components can pass what node to use by defining a `getScrollableNode`\n * function otherwise `this` is used.\n */\n scrollResponderGetScrollableNode: function scrollResponderGetScrollableNode() {\n return this.getScrollableNode ? this.getScrollableNode() : findNodeHandle(this);\n },\n\n /**\n * A helper function to scroll to a specific point in the scrollview.\n * This is currently used to help focus on child textviews, but can also\n * be used to quickly scroll to any element we want to focus. Syntax:\n *\n * scrollResponderScrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollResponderScrollTo: function scrollResponderScrollTo(x, y, animated) {\n if (typeof x === 'number') {\n console.warn('`scrollResponderScrollTo(x, y, animated)` is deprecated. Use `scrollResponderScrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = x || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n var node = this.scrollResponderGetScrollableNode();\n var left = x || 0;\n var top = y || 0;\n\n if (typeof node.scroll === 'function') {\n node.scroll({\n top: top,\n left: left,\n behavior: !animated ? 'auto' : 'smooth'\n });\n } else {\n node.scrollLeft = left;\n node.scrollTop = top;\n }\n },\n\n /**\n * A helper function to zoom to a specific rect in the scrollview. The argument has the shape\n * {x: number; y: number; width: number; height: number; animated: boolean = true}\n *\n * @platform ios\n */\n scrollResponderZoomTo: function scrollResponderZoomTo(rect, animated) // deprecated, put this inside the rect argument instead\n {\n if (Platform.OS !== 'ios') {\n invariant('zoomToRect is not implemented');\n }\n },\n\n /**\n * Displays the scroll indicators momentarily.\n */\n scrollResponderFlashScrollIndicators: function scrollResponderFlashScrollIndicators() {},\n\n /**\n * This method should be used as the callback to onFocus in a TextInputs'\n * parent view. Note that any module using this mixin needs to return\n * the parent view's ref in getScrollViewRef() in order to use this method.\n * @param {any} nodeHandle The TextInput node handle\n * @param {number} additionalOffset The scroll view's top \"contentInset\".\n * Default is 0.\n * @param {bool} preventNegativeScrolling Whether to allow pulling the content\n * down to make it meet the keyboard's top. Default is false.\n */\n scrollResponderScrollNativeHandleToKeyboard: function scrollResponderScrollNativeHandleToKeyboard(nodeHandle, additionalOffset, preventNegativeScrollOffset) {\n this.additionalScrollOffset = additionalOffset || 0;\n this.preventNegativeScrollOffset = !!preventNegativeScrollOffset;\n UIManager.measureLayout(nodeHandle, findNodeHandle(this.getInnerViewNode()), this.scrollResponderTextInputFocusError, this.scrollResponderInputMeasureAndScrollToKeyboard);\n },\n\n /**\n * The calculations performed here assume the scroll view takes up the entire\n * screen - even if has some content inset. We then measure the offsets of the\n * keyboard, and compensate both for the scroll view's \"contentInset\".\n *\n * @param {number} left Position of input w.r.t. table view.\n * @param {number} top Position of input w.r.t. table view.\n * @param {number} width Width of the text input.\n * @param {number} height Height of the text input.\n */\n scrollResponderInputMeasureAndScrollToKeyboard: function scrollResponderInputMeasureAndScrollToKeyboard(left, top, width, height) {\n var keyboardScreenY = Dimensions.get('window').height;\n\n if (this.keyboardWillOpenTo) {\n keyboardScreenY = this.keyboardWillOpenTo.endCoordinates.screenY;\n }\n\n var scrollOffsetY = top - keyboardScreenY + height + this.additionalScrollOffset; // By default, this can scroll with negative offset, pulling the content\n // down so that the target component's bottom meets the keyboard's top.\n // If requested otherwise, cap the offset at 0 minimum to avoid content\n // shifting down.\n\n if (this.preventNegativeScrollOffset) {\n scrollOffsetY = Math.max(0, scrollOffsetY);\n }\n\n this.scrollResponderScrollTo({\n x: 0,\n y: scrollOffsetY,\n animated: true\n });\n this.additionalOffset = 0;\n this.preventNegativeScrollOffset = false;\n },\n scrollResponderTextInputFocusError: function scrollResponderTextInputFocusError(e) {\n console.error('Error measuring text field: ', e);\n },\n\n /**\n * `componentWillMount` is the closest thing to a standard \"constructor\" for\n * React components.\n *\n * The `keyboardWillShow` is called before input focus.\n */\n UNSAFE_componentWillMount: function UNSAFE_componentWillMount() {\n this.keyboardWillOpenTo = null;\n this.additionalScrollOffset = 0; // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillShow', this.scrollResponderKeyboardWillShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardWillHide', this.scrollResponderKeyboardWillHide);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidShow', this.scrollResponderKeyboardDidShow);\n // this.addListenerOn(RCTDeviceEventEmitter, 'keyboardDidHide', this.scrollResponderKeyboardDidHide);\n },\n\n /**\n * Warning, this may be called several times for a single keyboard opening.\n * It's best to store the information in this method and then take any action\n * at a later point (either in `keyboardDidShow` or other).\n *\n * Here's the order that events occur in:\n * - focus\n * - willShow {startCoordinates, endCoordinates} several times\n * - didShow several times\n * - blur\n * - willHide {startCoordinates, endCoordinates} several times\n * - didHide several times\n *\n * The `ScrollResponder` providesModule callbacks for each of these events.\n * Even though any user could have easily listened to keyboard events\n * themselves, using these `props` callbacks ensures that ordering of events\n * is consistent - and not dependent on the order that the keyboard events are\n * subscribed to. This matters when telling the scroll view to scroll to where\n * the keyboard is headed - the scroll responder better have been notified of\n * the keyboard destination before being instructed to scroll to where the\n * keyboard will be. Stick to the `ScrollResponder` callbacks, and everything\n * will work.\n *\n * WARNING: These callbacks will fire even if a keyboard is displayed in a\n * different navigation pane. Filter out the events to determine if they are\n * relevant to you. (For example, only if you receive these callbacks after\n * you had explicitly focused a node etc).\n */\n scrollResponderKeyboardWillShow: function scrollResponderKeyboardWillShow(e) {\n this.keyboardWillOpenTo = e;\n this.props.onKeyboardWillShow && this.props.onKeyboardWillShow(e);\n },\n scrollResponderKeyboardWillHide: function scrollResponderKeyboardWillHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardWillHide && this.props.onKeyboardWillHide(e);\n },\n scrollResponderKeyboardDidShow: function scrollResponderKeyboardDidShow(e) {\n // TODO(7693961): The event for DidShow is not available on iOS yet.\n // Use the one from WillShow and do not assign.\n if (e) {\n this.keyboardWillOpenTo = e;\n }\n\n this.props.onKeyboardDidShow && this.props.onKeyboardDidShow(e);\n },\n scrollResponderKeyboardDidHide: function scrollResponderKeyboardDidHide(e) {\n this.keyboardWillOpenTo = null;\n this.props.onKeyboardDidHide && this.props.onKeyboardDidHide(e);\n }\n};\nvar ScrollResponder = {\n Mixin: ScrollResponderMixin\n};\nexport default ScrollResponder;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport useMergeRefs from '../../modules/useMergeRefs';\n\nfunction normalizeScrollEvent(e) {\n return {\n nativeEvent: {\n contentOffset: {\n get x() {\n return e.target.scrollLeft;\n },\n\n get y() {\n return e.target.scrollTop;\n }\n\n },\n contentSize: {\n get height() {\n return e.target.scrollHeight;\n },\n\n get width() {\n return e.target.scrollWidth;\n }\n\n },\n layoutMeasurement: {\n get height() {\n return e.target.offsetHeight;\n },\n\n get width() {\n return e.target.offsetWidth;\n }\n\n }\n },\n timeStamp: Date.now()\n };\n}\n\nfunction shouldEmitScrollEvent(lastTick, eventThrottle) {\n var timeSinceLastTick = Date.now() - lastTick;\n return eventThrottle > 0 && timeSinceLastTick >= eventThrottle;\n}\n/**\n * Encapsulates the Web-specific scroll throttling and disabling logic\n */\n\n\nvar ScrollViewBase = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var onScroll = props.onScroll,\n onTouchMove = props.onTouchMove,\n onWheel = props.onWheel,\n _props$scrollEnabled = props.scrollEnabled,\n scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,\n _props$scrollEventThr = props.scrollEventThrottle,\n scrollEventThrottle = _props$scrollEventThr === void 0 ? 0 : _props$scrollEventThr,\n showsHorizontalScrollIndicator = props.showsHorizontalScrollIndicator,\n showsVerticalScrollIndicator = props.showsVerticalScrollIndicator,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"onScroll\", \"onTouchMove\", \"onWheel\", \"scrollEnabled\", \"scrollEventThrottle\", \"showsHorizontalScrollIndicator\", \"showsVerticalScrollIndicator\", \"style\"]);\n\n var scrollState = React.useRef({\n isScrolling: false,\n scrollLastTick: 0\n });\n var scrollTimeout = React.useRef(null);\n var scrollRef = React.useRef(null);\n\n function createPreventableScrollHandler(handler) {\n return function (e) {\n if (scrollEnabled) {\n if (handler) {\n handler(e);\n }\n }\n };\n }\n\n function handleScroll(e) {\n e.stopPropagation();\n\n if (e.target === scrollRef.current) {\n e.persist(); // A scroll happened, so the scroll resets the scrollend timeout.\n\n if (scrollTimeout.current != null) {\n clearTimeout(scrollTimeout.current);\n }\n\n scrollTimeout.current = setTimeout(function () {\n handleScrollEnd(e);\n }, 100);\n\n if (scrollState.current.isScrolling) {\n // Scroll last tick may have changed, check if we need to notify\n if (shouldEmitScrollEvent(scrollState.current.scrollLastTick, scrollEventThrottle)) {\n handleScrollTick(e);\n }\n } else {\n // Weren't scrolling, so we must have just started\n handleScrollStart(e);\n }\n }\n }\n\n function handleScrollStart(e) {\n scrollState.current.isScrolling = true;\n handleScrollTick(e);\n }\n\n function handleScrollTick(e) {\n scrollState.current.scrollLastTick = Date.now();\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n function handleScrollEnd(e) {\n scrollState.current.isScrolling = false;\n\n if (onScroll) {\n onScroll(normalizeScrollEvent(e));\n }\n }\n\n var hideScrollbar = showsHorizontalScrollIndicator === false || showsVerticalScrollIndicator === false;\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n onScroll: handleScroll,\n onTouchMove: createPreventableScrollHandler(onTouchMove),\n onWheel: createPreventableScrollHandler(onWheel),\n ref: useMergeRefs(scrollRef, forwardedRef),\n style: [style, !scrollEnabled && styles.scrollDisabled, hideScrollbar && styles.hideScrollbar]\n }));\n}); // Chrome doesn't support e.preventDefault in this case; touch-action must be\n// used to disable scrolling.\n// https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\nvar styles = StyleSheet.create({\n scrollDisabled: {\n overflowX: 'hidden',\n overflowY: 'hidden',\n touchAction: 'none'\n },\n hideScrollbar: {\n scrollbarWidth: 'none'\n }\n});\nexport default ScrollViewBase;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactClass from 'create-react-class';\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nimport invariant from 'fbjs/lib/invariant';\nimport mergeRefs from '../../modules/mergeRefs';\nimport ScrollResponder from '../../modules/ScrollResponder';\nimport ScrollViewBase from './ScrollViewBase';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nimport React from 'react';\nvar emptyObject = {};\n/* eslint-disable react/prefer-es6-class */\n\nvar ScrollView = createReactClass({\n displayName: \"ScrollView\",\n mixins: [ScrollResponder.Mixin],\n getInitialState: function getInitialState() {\n return this.scrollResponderMixinGetInitialState();\n },\n flashScrollIndicators: function flashScrollIndicators() {\n this.scrollResponderFlashScrollIndicators();\n },\n\n /**\n * Returns a reference to the underlying scroll responder, which supports\n * operations like `scrollTo`. All ScrollView-like components should\n * implement this method so that they can be composed while providing access\n * to the underlying scroll responder's methods.\n */\n getScrollResponder: function getScrollResponder() {\n return this;\n },\n getScrollableNode: function getScrollableNode() {\n return this._scrollNodeRef;\n },\n getInnerViewRef: function getInnerViewRef() {\n return this._innerViewRef;\n },\n getInnerViewNode: function getInnerViewNode() {\n return this._innerViewRef;\n },\n getNativeScrollRef: function getNativeScrollRef() {\n return this._scrollNodeRef;\n },\n\n /**\n * Scrolls to a given x, y offset, either immediately or with a smooth animation.\n * Syntax:\n *\n * scrollTo(options: {x: number = 0; y: number = 0; animated: boolean = true})\n *\n * Note: The weird argument signature is due to the fact that, for historical reasons,\n * the function also accepts separate arguments as as alternative to the options object.\n * This is deprecated due to ambiguity (y before x), and SHOULD NOT BE USED.\n */\n scrollTo: function scrollTo(y, x, animated) {\n if (typeof y === 'number') {\n console.warn('`scrollTo(y, x, animated)` is deprecated. Use `scrollTo({x: 5, y: 5, animated: true})` instead.');\n } else {\n var _ref = y || emptyObject;\n\n x = _ref.x;\n y = _ref.y;\n animated = _ref.animated;\n }\n\n this.getScrollResponder().scrollResponderScrollTo({\n x: x || 0,\n y: y || 0,\n animated: animated !== false\n });\n },\n\n /**\n * If this is a vertical ScrollView scrolls to the bottom.\n * If this is a horizontal ScrollView scrolls to the right.\n *\n * Use `scrollToEnd({ animated: true })` for smooth animated scrolling,\n * `scrollToEnd({ animated: false })` for immediate scrolling.\n * If no options are passed, `animated` defaults to true.\n */\n scrollToEnd: function scrollToEnd(options) {\n // Default to true\n var animated = (options && options.animated) !== false;\n var horizontal = this.props.horizontal;\n var scrollResponder = this.getScrollResponder();\n var scrollResponderNode = scrollResponder.scrollResponderGetScrollableNode();\n var x = horizontal ? scrollResponderNode.scrollWidth : 0;\n var y = horizontal ? 0 : scrollResponderNode.scrollHeight;\n scrollResponder.scrollResponderScrollTo({\n x: x,\n y: y,\n animated: animated\n });\n },\n render: function render() {\n var _this$props = this.props,\n contentContainerStyle = _this$props.contentContainerStyle,\n horizontal = _this$props.horizontal,\n onContentSizeChange = _this$props.onContentSizeChange,\n refreshControl = _this$props.refreshControl,\n stickyHeaderIndices = _this$props.stickyHeaderIndices,\n pagingEnabled = _this$props.pagingEnabled,\n forwardedRef = _this$props.forwardedRef,\n keyboardDismissMode = _this$props.keyboardDismissMode,\n onScroll = _this$props.onScroll,\n other = _objectWithoutPropertiesLoose(_this$props, [\"contentContainerStyle\", \"horizontal\", \"onContentSizeChange\", \"refreshControl\", \"stickyHeaderIndices\", \"pagingEnabled\", \"forwardedRef\", \"keyboardDismissMode\", \"onScroll\"]);\n\n if (process.env.NODE_ENV !== 'production' && this.props.style) {\n var style = StyleSheet.flatten(this.props.style);\n var childLayoutProps = ['alignItems', 'justifyContent'].filter(function (prop) {\n return style && style[prop] !== undefined;\n });\n invariant(childLayoutProps.length === 0, \"ScrollView child layout (\" + JSON.stringify(childLayoutProps) + \") \" + 'must be applied through the contentContainerStyle prop.');\n }\n\n var contentSizeChangeProps = {};\n\n if (onContentSizeChange) {\n contentSizeChangeProps = {\n onLayout: this._handleContentOnLayout\n };\n }\n\n var hasStickyHeaderIndices = !horizontal && Array.isArray(stickyHeaderIndices);\n var children = hasStickyHeaderIndices || pagingEnabled ? React.Children.map(this.props.children, function (child, i) {\n var isSticky = hasStickyHeaderIndices && stickyHeaderIndices.indexOf(i) > -1;\n\n if (child != null && (isSticky || pagingEnabled)) {\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(isSticky && styles.stickyHeader, pagingEnabled && styles.pagingEnabledChild)\n }, child);\n } else {\n return child;\n }\n }) : this.props.children;\n var contentContainer = /*#__PURE__*/React.createElement(View, _extends({}, contentSizeChangeProps, {\n children: children,\n collapsable: false,\n ref: this._setInnerViewRef,\n style: StyleSheet.compose(horizontal && styles.contentContainerHorizontal, contentContainerStyle)\n }));\n var baseStyle = horizontal ? styles.baseHorizontal : styles.baseVertical;\n var pagingEnabledStyle = horizontal ? styles.pagingEnabledHorizontal : styles.pagingEnabledVertical;\n\n var props = _objectSpread(_objectSpread({}, other), {}, {\n style: [baseStyle, pagingEnabled && pagingEnabledStyle, this.props.style],\n onTouchStart: this.scrollResponderHandleTouchStart,\n onTouchMove: this.scrollResponderHandleTouchMove,\n onTouchEnd: this.scrollResponderHandleTouchEnd,\n onScrollBeginDrag: this.scrollResponderHandleScrollBeginDrag,\n onScrollEndDrag: this.scrollResponderHandleScrollEndDrag,\n onMomentumScrollBegin: this.scrollResponderHandleMomentumScrollBegin,\n onMomentumScrollEnd: this.scrollResponderHandleMomentumScrollEnd,\n onStartShouldSetResponder: this.scrollResponderHandleStartShouldSetResponder,\n onStartShouldSetResponderCapture: this.scrollResponderHandleStartShouldSetResponderCapture,\n onScrollShouldSetResponder: this.scrollResponderHandleScrollShouldSetResponder,\n onScroll: this._handleScroll,\n onResponderGrant: this.scrollResponderHandleResponderGrant,\n onResponderTerminationRequest: this.scrollResponderHandleTerminationRequest,\n onResponderTerminate: this.scrollResponderHandleTerminate,\n onResponderRelease: this.scrollResponderHandleResponderRelease,\n onResponderReject: this.scrollResponderHandleResponderReject\n });\n\n var ScrollViewClass = ScrollViewBase;\n invariant(ScrollViewClass !== undefined, 'ScrollViewClass must not be undefined');\n var scrollView = /*#__PURE__*/React.createElement(ScrollViewClass, _extends({}, props, {\n ref: this._setScrollNodeRef\n }), contentContainer);\n\n if (refreshControl) {\n return /*#__PURE__*/React.cloneElement(refreshControl, {\n style: props.style\n }, scrollView);\n }\n\n return scrollView;\n },\n _handleContentOnLayout: function _handleContentOnLayout(e) {\n var _e$nativeEvent$layout = e.nativeEvent.layout,\n width = _e$nativeEvent$layout.width,\n height = _e$nativeEvent$layout.height;\n this.props.onContentSizeChange(width, height);\n },\n _handleScroll: function _handleScroll(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.onScroll && this.props.scrollEventThrottle == null) {\n console.log('You specified `onScroll` on a but not ' + '`scrollEventThrottle`. You will only receive one event. ' + 'Using `16` you get all the events but be aware that it may ' + \"cause frame drops, use a bigger number if you don't need as \" + 'much precision.');\n }\n }\n\n if (this.props.keyboardDismissMode === 'on-drag') {\n dismissKeyboard();\n }\n\n this.scrollResponderHandleScroll(e);\n },\n _setInnerViewRef: function _setInnerViewRef(node) {\n this._innerViewRef = node;\n },\n _setScrollNodeRef: function _setScrollNodeRef(node) {\n this._scrollNodeRef = node; // ScrollView needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `ScrollView.scrollTo(hostNode, { x, y })` is added to React Native.\n\n if (node != null) {\n node.getScrollResponder = this.getScrollResponder;\n node.getInnerViewNode = this.getInnerViewNode;\n node.getInnerViewRef = this.getInnerViewRef;\n node.getNativeScrollRef = this.getNativeScrollRef;\n node.getScrollableNode = this.getScrollableNode;\n node.scrollTo = this.scrollTo;\n node.scrollToEnd = this.scrollToEnd;\n node.flashScrollIndicators = this.flashScrollIndicators;\n node.scrollResponderZoomTo = this.scrollResponderZoomTo;\n node.scrollResponderScrollNativeHandleToKeyboard = this.scrollResponderScrollNativeHandleToKeyboard;\n }\n\n var ref = mergeRefs(this.props.forwardedRef);\n ref(node);\n }\n});\nvar commonStyle = {\n flexGrow: 1,\n flexShrink: 1,\n // Enable hardware compositing in modern browsers.\n // Creates a new layer with its own backing surface that can significantly\n // improve scroll performance.\n transform: [{\n translateZ: 0\n }],\n // iOS native scrolling\n WebkitOverflowScrolling: 'touch'\n};\nvar styles = StyleSheet.create({\n baseVertical: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto'\n }),\n baseHorizontal: _objectSpread(_objectSpread({}, commonStyle), {}, {\n flexDirection: 'row',\n overflowX: 'auto',\n overflowY: 'hidden'\n }),\n contentContainerHorizontal: {\n flexDirection: 'row'\n },\n stickyHeader: {\n position: 'sticky',\n top: 0,\n zIndex: 10\n },\n pagingEnabledHorizontal: {\n scrollSnapType: 'x mandatory'\n },\n pagingEnabledVertical: {\n scrollSnapType: 'y mandatory'\n },\n pagingEnabledChild: {\n scrollSnapAlign: 'start'\n }\n});\nvar ForwardedScrollView = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({}, props, {\n forwardedRef: forwardedRef\n }));\n});\nForwardedScrollView.displayName = 'ScrollView';\nexport default ForwardedScrollView;","module.exports = require(\"regenerator-runtime\");\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nvar cssFunction = function () {\n if (canUseDOM && window.CSS && window.CSS.supports && window.CSS.supports('top: constant(safe-area-inset-top)')) {\n return 'constant';\n }\n\n return 'env';\n}();\n\nvar SafeAreaView = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"style\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n ref: ref,\n style: StyleSheet.compose(styles.root, style)\n }));\n});\nSafeAreaView.displayName = 'SafeAreaView';\nvar styles = StyleSheet.create({\n root: {\n paddingTop: cssFunction + \"(safe-area-inset-top)\",\n paddingRight: cssFunction + \"(safe-area-inset-right)\",\n paddingBottom: cssFunction + \"(safe-area-inset-bottom)\",\n paddingLeft: cssFunction + \"(safe-area-inset-left)\"\n }\n});\nexport default SafeAreaView;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/* eslint no-bitwise: 0 */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport normalizeColor from 'normalize-css-color';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar linear = function linear(t) {\n return t;\n};\n/**\n * Very handy helper to map input ranges to output ranges with an easing\n * function and custom behavior outside of the ranges.\n */\n\n\nfunction createInterpolation(config) {\n if (config.outputRange && typeof config.outputRange[0] === 'string') {\n return createInterpolationFromStringOutputRange(config);\n }\n\n var outputRange = config.outputRange;\n checkInfiniteRange('outputRange', outputRange);\n var inputRange = config.inputRange;\n checkInfiniteRange('inputRange', inputRange);\n checkValidInputRange(inputRange);\n invariant(inputRange.length === outputRange.length, 'inputRange (' + inputRange.length + ') and outputRange (' + outputRange.length + ') must have the same length');\n var easing = config.easing || linear;\n var extrapolateLeft = 'extend';\n\n if (config.extrapolateLeft !== undefined) {\n extrapolateLeft = config.extrapolateLeft;\n } else if (config.extrapolate !== undefined) {\n extrapolateLeft = config.extrapolate;\n }\n\n var extrapolateRight = 'extend';\n\n if (config.extrapolateRight !== undefined) {\n extrapolateRight = config.extrapolateRight;\n } else if (config.extrapolate !== undefined) {\n extrapolateRight = config.extrapolate;\n }\n\n return function (input) {\n invariant(typeof input === 'number', 'Cannot interpolation an input which is not a number');\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight) {\n var result = input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {// noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {// noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (input <= inputMin) {\n return outputMin;\n }\n\n return outputMax;\n } // Input Range\n\n\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n } // Easing\n\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n}\n\nfunction colorToRgba(input) {\n var normalizedColor = normalizeColor(input);\n\n if (normalizedColor === null || typeof normalizedColor !== 'number') {\n return input;\n }\n\n normalizedColor = normalizedColor || 0;\n var r = (normalizedColor & 0xff000000) >>> 24;\n var g = (normalizedColor & 0x00ff0000) >>> 16;\n var b = (normalizedColor & 0x0000ff00) >>> 8;\n var a = (normalizedColor & 0x000000ff) / 255;\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n}\n\nvar stringShapeRegex = /[+-]?(?:\\d+\\.?\\d*|\\.\\d+)(?:[eE][+-]?\\d+)?/g;\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n */\n\nfunction createInterpolationFromStringOutputRange(config) {\n var outputRange = config.outputRange;\n invariant(outputRange.length >= 2, 'Bad output range');\n outputRange = outputRange.map(colorToRgba);\n checkPattern(outputRange); // ['rgba(0, 100, 200, 0)', 'rgba(50, 150, 250, 0.5)']\n // ->\n // [\n // [0, 50],\n // [100, 150],\n // [200, 250],\n // [0, 0.5],\n // ]\n\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need to\n * guard against this possibility.\n */\n\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n /* $FlowFixMe(>=0.18.0): `value.match()` can return `null`. Need to guard\n * against this possibility.\n */\n value.match(stringShapeRegex).forEach(function (number, i) {\n outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex)\n /* $FlowFixMe(>=0.18.0): `outputRange[0].match()` can return `null`. Need\n * to guard against this possibility. */\n .map(function (value, i) {\n return createInterpolation(_objectSpread(_objectSpread({}, config), {}, {\n outputRange: outputRanges[i]\n }));\n }); // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n\n var shouldRound = isRgbOrRgba(outputRange[0]);\n return function (input) {\n var i = 0; // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n\n return outputRange[0].replace(stringShapeRegex, function () {\n var val = +interpolations[i++](input);\n\n if (shouldRound) {\n val = i < 4 ? Math.round(val) : Math.round(val * 1000) / 1000;\n }\n\n return String(val);\n });\n };\n}\n\nfunction isRgbOrRgba(range) {\n return typeof range === 'string' && range.startsWith('rgb');\n}\n\nfunction checkPattern(arr) {\n var pattern = arr[0].replace(stringShapeRegex, '');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(pattern === arr[i].replace(stringShapeRegex, ''), 'invalid pattern ' + arr[0] + ' and ' + arr[i]);\n }\n}\n\nfunction findRange(input, inputRange) {\n var i;\n\n for (i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) {\n break;\n }\n }\n\n return i - 1;\n}\n\nfunction checkValidInputRange(arr) {\n invariant(arr.length >= 2, 'inputRange must have at least 2 elements');\n\n for (var i = 1; i < arr.length; ++i) {\n invariant(arr[i] >= arr[i - 1],\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly\n * convert to a string, like undefined, null, and object, etc. If you really\n * mean this implicit string conversion, you can do something like\n * String(myThing)\n */\n 'inputRange must be monotonically non-decreasing ' + arr);\n }\n}\n\nfunction checkInfiniteRange(name, arr) {\n invariant(arr.length >= 2, name + ' must have at least 2 elements');\n invariant(arr.length !== 2 || arr[0] !== -Infinity || arr[1] !== Infinity,\n /* $FlowFixMe(>=0.13.0) - In the addition expression below this comment,\n * one or both of the operands may be something that doesn't cleanly convert\n * to a string, like undefined, null, and object, etc. If you really mean\n * this implicit string conversion, you can do something like\n * String(myThing)\n */\n name + 'cannot be ]-infinity;+infinity[ ' + arr);\n}\n\nvar AnimatedInterpolation = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedInterpolation, _AnimatedWithChildren);\n\n // Export for testing.\n function AnimatedInterpolation(parent, config) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._parent = parent;\n _this._config = config;\n _this._interpolation = createInterpolation(config);\n return _this;\n }\n\n var _proto = AnimatedInterpolation.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._parent.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var parentValue = this._parent.__getValue();\n\n invariant(typeof parentValue === 'number', 'Cannot interpolate an input which is not a number.');\n return this._interpolation(parentValue);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__transformDataType = function __transformDataType(range) {\n return range.map(NativeAnimatedHelper.transformDataType);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n if (__DEV__) {\n NativeAnimatedHelper.validateInterpolation(this._config);\n }\n\n return {\n inputRange: this._config.inputRange,\n // Only the `outputRange` can contain strings so we don't need to transform `inputRange` here\n\n /* $FlowFixMe(>=0.38.0) - Flow error detected during the deployment of\n * v0.38.0. To see the error, remove this comment and run flow */\n outputRange: this.__transformDataType(this._config.outputRange),\n extrapolateLeft: this._config.extrapolateLeft || this._config.extrapolate || 'extend',\n extrapolateRight: this._config.extrapolateRight || this._config.extrapolate || 'extend',\n type: 'interpolation'\n };\n };\n\n return AnimatedInterpolation;\n}(AnimatedWithChildren);\n\nAnimatedInterpolation.__createInterpolation = createInterpolation;\nexport default AnimatedInterpolation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar dimensions = {\n window: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n },\n screen: {\n fontScale: 1,\n height: 0,\n scale: 1,\n width: 0\n }\n};\nvar listeners = {};\n\nvar Dimensions = /*#__PURE__*/function () {\n function Dimensions() {}\n\n Dimensions.get = function get(dimension) {\n invariant(dimensions[dimension], \"No dimension set for key \" + dimension);\n return dimensions[dimension];\n };\n\n Dimensions.set = function set(initialDimensions) {\n if (initialDimensions) {\n if (canUseDOM) {\n invariant(false, 'Dimensions cannot be set in the browser');\n } else {\n if (initialDimensions.screen != null) {\n dimensions.screen = initialDimensions.screen;\n }\n\n if (initialDimensions.window != null) {\n dimensions.window = initialDimensions.window;\n }\n }\n }\n };\n\n Dimensions._update = function _update() {\n if (!canUseDOM) {\n return;\n }\n\n var win = window;\n var docEl = win.document.documentElement;\n dimensions.window = {\n fontScale: 1,\n height: docEl.clientHeight,\n scale: win.devicePixelRatio || 1,\n width: docEl.clientWidth\n };\n dimensions.screen = {\n fontScale: 1,\n height: win.screen.height,\n scale: win.devicePixelRatio || 1,\n width: win.screen.width\n };\n\n if (Array.isArray(listeners['change'])) {\n listeners['change'].forEach(function (handler) {\n return handler(dimensions);\n });\n }\n };\n\n Dimensions.addEventListener = function addEventListener(type, handler) {\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n };\n\n Dimensions.removeEventListener = function removeEventListener(type, handler) {\n if (Array.isArray(listeners[type])) {\n listeners[type] = listeners[type].filter(function (_handler) {\n return _handler !== handler;\n });\n }\n };\n\n return Dimensions;\n}();\n\nexport { Dimensions as default };\n\nif (canUseDOM) {\n Dimensions._update();\n\n window.addEventListener('resize', Dimensions._update, false);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport mergeRefs from '../mergeRefs';\nexport default function useMergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return React.useMemo(function () {\n return mergeRefs.apply(void 0, args);\n }, // eslint-disable-next-line\n [].concat(args));\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport AnimatedValue from './nodes/AnimatedValue';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from './NativeAnimatedHelper';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport function attachNativeEvent(viewRef, eventName, argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n var eventMappings = [];\n\n var traverse = function traverse(value, path) {\n if (value instanceof AnimatedValue) {\n value.__makeNative();\n\n eventMappings.push({\n nativeEventPath: path,\n animatedValueTag: value.__getNativeTag()\n });\n } else if (typeof value === 'object') {\n for (var _key in value) {\n traverse(value[_key], path.concat(_key));\n }\n }\n };\n\n invariant(argMapping[0] && argMapping[0].nativeEvent, 'Native driven events only support animated values contained inside `nativeEvent`.'); // Assume that the event containing `nativeEvent` is always the first argument.\n\n traverse(argMapping[0].nativeEvent, []);\n var viewTag = findNodeHandle(viewRef);\n\n if (viewTag != null) {\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.addAnimatedEventToView(viewTag, eventName, mapping);\n });\n }\n\n return {\n detach: function detach() {\n if (viewTag != null) {\n eventMappings.forEach(function (mapping) {\n NativeAnimatedHelper.API.removeAnimatedEventFromView(viewTag, eventName, // $FlowFixMe[incompatible-call]\n mapping.animatedValueTag);\n });\n }\n }\n };\n}\n\nfunction validateMapping(argMapping, args) {\n var validate = function validate(recMapping, recEvt, key) {\n if (recMapping instanceof AnimatedValue) {\n invariant(typeof recEvt === 'number', 'Bad mapping of event key ' + key + ', should be number but got ' + typeof recEvt);\n return;\n }\n\n if (typeof recEvt === 'number') {\n invariant(recMapping instanceof AnimatedValue, 'Bad mapping of type ' + typeof recMapping + ' for key ' + key + ', event value must map to AnimatedValue');\n return;\n }\n\n invariant(typeof recMapping === 'object', 'Bad mapping of type ' + typeof recMapping + ' for key ' + key);\n invariant(typeof recEvt === 'object', 'Bad event of type ' + typeof recEvt + ' for key ' + key);\n\n for (var mappingKey in recMapping) {\n validate(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n };\n\n invariant(args.length >= argMapping.length, 'Event has less arguments than mapping');\n argMapping.forEach(function (mapping, idx) {\n validate(mapping, args[idx], 'arg' + idx);\n });\n}\n\nexport var AnimatedEvent = /*#__PURE__*/function () {\n function AnimatedEvent(argMapping, config) {\n this._listeners = [];\n this._argMapping = argMapping;\n\n if (config == null) {\n console.warn('Animated.event now requires a second argument for options');\n config = {\n useNativeDriver: false\n };\n }\n\n if (config.listener) {\n this.__addListener(config.listener);\n }\n\n this._callListeners = this._callListeners.bind(this);\n this._attachedEvent = null;\n this.__isNative = shouldUseNativeDriver(config);\n }\n\n var _proto = AnimatedEvent.prototype;\n\n _proto.__addListener = function __addListener(callback) {\n this._listeners.push(callback);\n };\n\n _proto.__removeListener = function __removeListener(callback) {\n this._listeners = this._listeners.filter(function (listener) {\n return listener !== callback;\n });\n };\n\n _proto.__attach = function __attach(viewRef, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be attached.');\n this._attachedEvent = attachNativeEvent(viewRef, eventName, this._argMapping);\n };\n\n _proto.__detach = function __detach(viewTag, eventName) {\n invariant(this.__isNative, 'Only native driven events need to be detached.');\n this._attachedEvent && this._attachedEvent.detach();\n };\n\n _proto.__getHandler = function __getHandler() {\n var _this = this;\n\n if (this.__isNative) {\n if (__DEV__) {\n var _validatedMapping = false;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!_validatedMapping) {\n validateMapping(_this._argMapping, args);\n _validatedMapping = true;\n }\n\n _this._callListeners.apply(_this, args);\n };\n } else {\n return this._callListeners;\n }\n }\n\n var validatedMapping = false;\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (__DEV__ && !validatedMapping) {\n validateMapping(_this._argMapping, args);\n validatedMapping = true;\n }\n\n var traverse = function traverse(recMapping, recEvt, key) {\n if (recMapping instanceof AnimatedValue) {\n if (typeof recEvt === 'number') {\n recMapping.setValue(recEvt);\n }\n } else if (typeof recMapping === 'object') {\n for (var mappingKey in recMapping) {\n /* $FlowFixMe(>=0.120.0) This comment suppresses an error found\n * when Flow v0.120 was deployed. To see the error, delete this\n * comment and run Flow. */\n traverse(recMapping[mappingKey], recEvt[mappingKey], mappingKey);\n }\n }\n };\n\n _this._argMapping.forEach(function (mapping, idx) {\n traverse(mapping, args[idx], 'arg' + idx);\n });\n\n _this._callListeners.apply(_this, args);\n };\n };\n\n _proto._callListeners = function _callListeners() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n this._listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n };\n\n return AnimatedEvent;\n}();","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\n\nvar AnimatedTransform = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedTransform, _AnimatedWithChildren);\n\n function AnimatedTransform(transforms) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._transforms = transforms;\n return _this;\n }\n\n var _proto = AnimatedTransform.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n });\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n } else {\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._transforms.map(function (transform) {\n var result = {};\n\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n result[key] = value.__getAnimatedValue();\n } else {\n // All transform components needed to recompose matrix\n result[key] = value;\n }\n }\n\n return result;\n });\n };\n\n _proto.__attach = function __attach() {\n var _this2 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(_this2);\n }\n }\n });\n };\n\n _proto.__detach = function __detach() {\n var _this3 = this;\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(_this3);\n }\n }\n });\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var transConfigs = [];\n\n this._transforms.forEach(function (transform) {\n for (var key in transform) {\n var value = transform[key];\n\n if (value instanceof AnimatedNode) {\n transConfigs.push({\n type: 'animated',\n property: key,\n nodeTag: value.__getNativeTag()\n });\n } else {\n transConfigs.push({\n type: 'static',\n property: key,\n value: NativeAnimatedHelper.transformDataType(value)\n });\n }\n }\n });\n\n NativeAnimatedHelper.validateTransform(transConfigs);\n return {\n type: 'transform',\n transforms: transConfigs\n };\n };\n\n return AnimatedTransform;\n}(AnimatedWithChildren);\n\nexport default AnimatedTransform;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedTransform from './AnimatedTransform';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport flattenStyle from '../../../../exports/StyleSheet/flattenStyle';\n\nvar AnimatedStyle = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedStyle, _AnimatedWithChildren);\n\n function AnimatedStyle(style) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n style = flattenStyle(style) || {};\n\n if (style.transform) {\n style = _objectSpread(_objectSpread({}, style), {}, {\n transform: new AnimatedTransform(style.transform)\n });\n }\n\n _this._style = style;\n return _this;\n } // Recursively get values for nested styles (like iOS's shadowOffset)\n\n\n var _proto = AnimatedStyle.prototype;\n\n _proto._walkStyleAndGetValues = function _walkStyleAndGetValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n updatedStyle[key] = value.__getValue();\n }\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetValues(value);\n } else {\n updatedStyle[key] = value;\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getValue = function __getValue() {\n return this._walkStyleAndGetValues(this._style);\n } // Recursively get animated values for nested styles (like iOS's shadowOffset)\n ;\n\n _proto._walkStyleAndGetAnimatedValues = function _walkStyleAndGetAnimatedValues(style) {\n var updatedStyle = {};\n\n for (var key in style) {\n var value = style[key];\n\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getAnimatedValue();\n } else if (value && !Array.isArray(value) && typeof value === 'object') {\n // Support animating nested values (for example: shadowOffset.height)\n updatedStyle[key] = this._walkStyleAndGetAnimatedValues(value);\n }\n }\n\n return updatedStyle;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__makeNative = function __makeNative() {\n for (var key in this._style) {\n var value = this._style[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var styleConfig = {};\n\n for (var styleKey in this._style) {\n if (this._style[styleKey] instanceof AnimatedNode) {\n var style = this._style[styleKey];\n\n style.__makeNative();\n\n styleConfig[styleKey] = style.__getNativeTag();\n } // Non-animated styles are set using `setNativeProps`, no need\n // to pass those as a part of the node config\n\n }\n\n NativeAnimatedHelper.validateStyles(styleConfig);\n return {\n type: 'style',\n style: styleConfig\n };\n };\n\n return AnimatedStyle;\n}(AnimatedWithChildren);\n\nexport default AnimatedStyle;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { AnimatedEvent } from '../AnimatedEvent';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedStyle from './AnimatedStyle';\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nimport findNodeHandle from '../../../../exports/findNodeHandle';\nimport invariant from 'fbjs/lib/invariant';\n\nvar AnimatedProps = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedProps, _AnimatedNode);\n\n function AnimatedProps(props, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n\n if (props.style) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n style: new AnimatedStyle(props.style)\n });\n }\n\n _this._props = props;\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedProps.prototype;\n\n _proto.__getValue = function __getValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n if (!value.__isNative || value instanceof AnimatedStyle) {\n // We cannot use value of natively driven nodes this way as the value we have access from\n // JS may not be up to date.\n props[key] = value.__getValue();\n }\n } else if (value instanceof AnimatedEvent) {\n props[key] = value.__getHandler();\n } else {\n props[key] = value;\n }\n }\n\n return props;\n };\n\n _proto.__getAnimatedValue = function __getAnimatedValue() {\n var props = {};\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n props[key] = value.__getAnimatedValue();\n }\n }\n\n return props;\n };\n\n _proto.__attach = function __attach() {\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__addChild(this);\n }\n }\n };\n\n _proto.__detach = function __detach() {\n if (this.__isNative && this._animatedView) {\n this.__disconnectAnimatedView();\n }\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__removeChild(this);\n }\n }\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._callback();\n };\n\n _proto.__makeNative = function __makeNative() {\n if (!this.__isNative) {\n this.__isNative = true;\n\n for (var key in this._props) {\n var value = this._props[key];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n }\n }\n\n if (this._animatedView) {\n this.__connectAnimatedView();\n }\n }\n };\n\n _proto.setNativeView = function setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n\n this._animatedView = animatedView;\n\n if (this.__isNative) {\n this.__connectAnimatedView();\n }\n };\n\n _proto.__connectAnimatedView = function __connectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.connectAnimatedNodeToView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__disconnectAnimatedView = function __disconnectAnimatedView() {\n invariant(this.__isNative, 'Expected node to be marked as \"native\"');\n var nativeViewTag = findNodeHandle(this._animatedView);\n invariant(nativeViewTag != null, 'Unable to locate attached view in the native tree');\n NativeAnimatedHelper.API.disconnectAnimatedNodeFromView(this.__getNativeTag(), nativeViewTag);\n };\n\n _proto.__restoreDefaultValues = function __restoreDefaultValues() {\n // When using the native driver, view properties need to be restored to\n // their default values manually since react no longer tracks them. This\n // is needed to handle cases where a prop driven by native animated is removed\n // after having been changed natively by an animation.\n if (this.__isNative) {\n NativeAnimatedHelper.API.restoreDefaultValues(this.__getNativeTag());\n }\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var propsConfig = {};\n\n for (var propKey in this._props) {\n var value = this._props[propKey];\n\n if (value instanceof AnimatedNode) {\n value.__makeNative();\n\n propsConfig[propKey] = value.__getNativeTag();\n }\n }\n\n return {\n type: 'props',\n props: propsConfig\n };\n };\n\n return AnimatedProps;\n}(AnimatedNode);\n\nexport default AnimatedProps;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * This is a helper function for when a component needs to be able to forward a ref\n * to a child component, but still needs to have access to that component as part of\n * its implementation.\n *\n * Its main use case is in wrappers for native components.\n *\n * Usage:\n *\n * class MyView extends React.Component {\n * _nativeRef = null;\n *\n * _setNativeRef = setAndForwardRef({\n * getForwardedRef: () => this.props.forwardedRef,\n * setLocalRef: ref => {\n * this._nativeRef = ref;\n * },\n * });\n *\n * render() {\n * return ;\n * }\n * }\n *\n * const MyViewWithRef = React.forwardRef((props, ref) => (\n * \n * ));\n *\n * module.exports = MyViewWithRef;\n */\nfunction setAndForwardRef(_ref) {\n var getForwardedRef = _ref.getForwardedRef,\n setLocalRef = _ref.setLocalRef;\n return function forwardRef(ref) {\n var forwardedRef = getForwardedRef();\n setLocalRef(ref); // Forward to user ref prop (if one has been specified)\n\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n } else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\n\nexport default setAndForwardRef;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport View from '../../../exports/View';\nimport { AnimatedEvent } from './AnimatedEvent';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport * as React from 'react';\nimport NativeAnimatedHelper from './NativeAnimatedHelper';\nimport invariant from 'fbjs/lib/invariant';\nimport setAndForwardRef from '../Utilities/setAndForwardRef';\nvar animatedComponentNextId = 1;\n\nfunction createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' || Component.prototype && Component.prototype.isReactComponent, '`createAnimatedComponent` does not support stateless functional components; ' + 'use a class component instead.');\n\n var AnimatedComponent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(AnimatedComponent, _React$Component);\n\n function AnimatedComponent() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._invokeAnimatedPropsCallbackOnMount = false;\n _this._eventDetachers = [];\n _this._animatedComponentId = animatedComponentNextId++ + \":animatedComponent\";\n\n _this._isFabric = function () {\n var _this$_component$_int, _this$_component$_int2, _this$_component$getN, _this$_component$getN2, _this$_component$getS, _this$_component$getS2;\n\n // When called during the first render, `_component` is always null.\n // Therefore, even if a component is rendered in Fabric, we can't detect\n // that until ref is set, which happens sometime after the first render.\n // In cases where this value switching between \"false\" and \"true\" on Fabric\n // causes issues, add an additional check for _component nullity.\n if (_this._component == null) {\n return false;\n }\n\n return (// eslint-disable-next-line dot-notation\n ((_this$_component$_int = _this._component['_internalInstanceHandle']) == null ? void 0 : (_this$_component$_int2 = _this$_component$_int.stateNode) == null ? void 0 : _this$_component$_int2.canonical) != null || // Some components have a setNativeProps function but aren't a host component\n // such as lists like FlatList and SectionList. These should also use\n // forceUpdate in Fabric since setNativeProps doesn't exist on the underlying\n // host component. This crazy hack is essentially special casing those lists and\n // ScrollView itself to use forceUpdate in Fabric.\n // If these components end up using forwardRef then these hacks can go away\n // as this._component would actually be the underlying host component and the above check\n // would be sufficient.\n _this._component.getNativeScrollRef != null && _this._component.getNativeScrollRef() != null && // eslint-disable-next-line dot-notation\n ((_this$_component$getN = _this._component.getNativeScrollRef()['_internalInstanceHandle']) == null ? void 0 : (_this$_component$getN2 = _this$_component$getN.stateNode) == null ? void 0 : _this$_component$getN2.canonical) != null || _this._component.getScrollResponder != null && _this._component.getScrollResponder() != null && _this._component.getScrollResponder().getNativeScrollRef != null && _this._component.getScrollResponder().getNativeScrollRef() != null && ((_this$_component$getS = _this._component.getScrollResponder().getNativeScrollRef()[// eslint-disable-next-line dot-notation\n '_internalInstanceHandle']) == null ? void 0 : (_this$_component$getS2 = _this$_component$getS.stateNode) == null ? void 0 : _this$_component$getS2.canonical) != null\n );\n };\n\n _this._waitForUpdate = function () {\n if (_this._isFabric()) {\n NativeAnimatedHelper.API.setWaitingForIdentifier(_this._animatedComponentId);\n }\n };\n\n _this._markUpdateComplete = function () {\n if (_this._isFabric()) {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(_this._animatedComponentId);\n }\n };\n\n _this._animatedPropsCallback = function () {\n if (_this._component == null) {\n // AnimatedProps is created in will-mount because it's used in render.\n // But this callback may be invoked before mount in async mode,\n // In which case we should defer the setNativeProps() call.\n // React may throw away uncommitted work in async mode,\n // So a deferred call won't always be invoked.\n _this._invokeAnimatedPropsCallbackOnMount = true;\n } else if (process.env.NODE_ENV === 'test' || // For animating properties of non-leaf/non-native components\n typeof _this._component.setNativeProps !== 'function' || // In Fabric, force animations to go through forceUpdate and skip setNativeProps\n _this._isFabric()) {\n _this.forceUpdate();\n } else if (!_this._propsAnimated.__isNative) {\n _this._component.setNativeProps(_this._propsAnimated.__getAnimatedValue());\n } else {\n throw new Error('Attempting to run JS driven animation on animated ' + 'node that has been moved to \"native\" earlier by starting an ' + 'animation with `useNativeDriver: true`');\n }\n };\n\n _this._setComponentRef = setAndForwardRef({\n getForwardedRef: function getForwardedRef() {\n return _this.props.forwardedRef;\n },\n setLocalRef: function setLocalRef(ref) {\n _this._prevComponent = _this._component;\n _this._component = ref; // TODO: Delete this in a future release.\n\n if (ref != null && ref.getNode == null) {\n ref.getNode = function () {\n var _ref$constructor$name;\n\n console.warn('%s: Calling `getNode()` on the ref of an Animated component ' + 'is no longer necessary. You can now directly use the ref ' + 'instead. This method will be removed in a future release.', (_ref$constructor$name = ref.constructor.name) !== null && _ref$constructor$name !== void 0 ? _ref$constructor$name : '<>');\n return ref;\n };\n }\n }\n });\n return _this;\n }\n\n var _proto = AnimatedComponent.prototype;\n\n _proto._attachNativeEvents = function _attachNativeEvents() {\n var _this$_component,\n _this2 = this;\n\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n var scrollableNode = (_this$_component = this._component) != null && _this$_component.getScrollableNode ? this._component.getScrollableNode() : this._component;\n\n var _loop = function _loop(key) {\n var prop = _this2.props[key];\n\n if (prop instanceof AnimatedEvent && prop.__isNative) {\n prop.__attach(scrollableNode, key);\n\n _this2._eventDetachers.push(function () {\n return prop.__detach(scrollableNode, key);\n });\n }\n };\n\n for (var key in this.props) {\n _loop(key);\n }\n };\n\n _proto._detachNativeEvents = function _detachNativeEvents() {\n this._eventDetachers.forEach(function (remove) {\n return remove();\n });\n\n this._eventDetachers = [];\n };\n\n _proto._attachProps = function _attachProps(nextProps) {\n var oldPropsAnimated = this._propsAnimated;\n\n if (nextProps === oldPropsAnimated) {\n return;\n }\n\n this._propsAnimated = new AnimatedProps(nextProps, this._animatedPropsCallback); // When you call detach, it removes the element from the parent list\n // of children. If it goes to 0, then the parent also detaches itself\n // and so on.\n // An optimization is to attach the new elements and THEN detach the old\n // ones instead of detaching and THEN attaching.\n // This way the intermediate state isn't to go to 0 and trigger\n // this expensive recursive detaching to then re-attach everything on\n // the very next operation.\n\n if (oldPropsAnimated) {\n oldPropsAnimated.__restoreDefaultValues();\n\n oldPropsAnimated.__detach();\n }\n };\n\n _proto.render = function render() {\n var _props$collapsable, _props$nativeID;\n\n var _ref = this._propsAnimated.__getValue() || {},\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n props = _objectWithoutPropertiesLoose(_ref, [\"style\"]);\n\n var _ref2 = this.props.passthroughAnimatedPropExplicitValues || {},\n _ref2$style = _ref2.style,\n passthruStyle = _ref2$style === void 0 ? {} : _ref2$style,\n passthruProps = _objectWithoutPropertiesLoose(_ref2, [\"style\"]);\n\n var mergedStyle = _objectSpread(_objectSpread({}, style), passthruStyle); // On Fabric, we always want to ensure the container Animated View is *not*\n // flattened.\n // Because we do not get a host component ref immediately and thus cannot\n // do a proper Fabric vs non-Fabric detection immediately, we default to assuming\n // that Fabric *is* enabled until we know otherwise.\n // Thus, in Fabric, this view will never be flattened. In non-Fabric, the view will\n // not be flattened during the initial render but may be flattened in the second render\n // and onwards.\n\n\n var forceNativeIdFabric = this._component == null && ((options == null ? void 0 : options.collapsable) === false || props.collapsable !== true) || this._isFabric();\n\n var forceNativeId = (_props$collapsable = props.collapsable) !== null && _props$collapsable !== void 0 ? _props$collapsable : this._propsAnimated.__isNative || forceNativeIdFabric || (options == null ? void 0 : options.collapsable) === false; // The native driver updates views directly through the UI thread so we\n // have to make sure the view doesn't get optimized away because it cannot\n // go through the NativeViewHierarchyManager since it operates on the shadow\n // thread. TODO: T68258846\n\n var collapsableProps = forceNativeId ? {\n nativeID: (_props$nativeID = props.nativeID) !== null && _props$nativeID !== void 0 ? _props$nativeID : 'animatedComponent',\n collapsable: false\n } : {};\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, passthruProps, collapsableProps, {\n style: mergedStyle,\n ref: this._setComponentRef\n }));\n };\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n this._waitForUpdate();\n\n this._attachProps(this.props);\n };\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n\n this._animatedPropsCallback();\n }\n\n this._propsAnimated.setNativeView(this._component);\n\n this._attachNativeEvents();\n\n this._markUpdateComplete();\n };\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(newProps) {\n this._waitForUpdate();\n\n this._attachProps(newProps);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this._component !== this._prevComponent) {\n this._propsAnimated.setNativeView(this._component);\n }\n\n if (this._component !== this._prevComponent || prevProps !== this.props) {\n this._detachNativeEvents();\n\n this._attachNativeEvents();\n }\n\n this._markUpdateComplete();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._propsAnimated && this._propsAnimated.__detach();\n\n this._detachNativeEvents();\n\n this._markUpdateComplete();\n\n this._component = null;\n this._prevComponent = null;\n };\n\n return AnimatedComponent;\n }(React.Component);\n\n return /*#__PURE__*/React.forwardRef(function AnimatedComponentWrapper(props, ref) {\n return /*#__PURE__*/React.createElement(AnimatedComponent, _extends({}, props, ref == null ? null : {\n forwardedRef: ref\n }));\n });\n}\n\nexport default createAnimatedComponent;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport FlatList from '../../../../exports/FlatList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar FlatListWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(FlatList, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(FlatListWithEventThrottle);","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Image from '../../../../exports/Image';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Image, {\n collapsable: false\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport ScrollView from '../../../../exports/ScrollView';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar ScrollViewWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(ScrollView, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(ScrollViewWithEventThrottle, {\n collapsable: false\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport SectionList from '../../../../exports/SectionList';\nimport createAnimatedComponent from '../createAnimatedComponent';\n\n/**\n * @see https://github.com/facebook/react-native/commit/b8c8562\n */\nvar SectionListWithEventThrottle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SectionList, _extends({\n scrollEventThrottle: 0.0001\n }, props, {\n ref: ref\n }));\n});\nexport default createAnimatedComponent(SectionListWithEventThrottle);","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport Text from '../../../../exports/Text';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(Text, {\n collapsable: false\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport View from '../../../../exports/View';\nimport createAnimatedComponent from '../createAnimatedComponent';\nexport default createAnimatedComponent(View, {\n collapsable: true\n});","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedAddition = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedAddition, _AnimatedWithChildren);\n\n function AnimatedAddition(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedAddition.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() + this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'addition',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedAddition;\n}(AnimatedWithChildren);\n\nexport default AnimatedAddition;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDiffClamp = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDiffClamp, _AnimatedWithChildren);\n\n function AnimatedDiffClamp(a, min, max) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._min = min;\n _this._max = max;\n _this._value = _this._lastValue = _this._a.__getValue();\n return _this;\n }\n\n var _proto = AnimatedDiffClamp.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__getValue = function __getValue() {\n var value = this._a.__getValue();\n\n var diff = value - this._lastValue;\n this._lastValue = value;\n this._value = Math.min(Math.max(this._value + diff, this._min), this._max);\n return this._value;\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'diffclamp',\n input: this._a.__getNativeTag(),\n min: this._min,\n max: this._max\n };\n };\n\n return AnimatedDiffClamp;\n}(AnimatedWithChildren);\n\nexport default AnimatedDiffClamp;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedDivision = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedDivision, _AnimatedWithChildren);\n\n function AnimatedDivision(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._warnedAboutDivideByZero = false;\n\n if (b === 0 || b instanceof AnimatedNode && b.__getValue() === 0) {\n console.error('Detected potential division by zero in AnimatedDivision');\n }\n\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedDivision.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n var a = this._a.__getValue();\n\n var b = this._b.__getValue();\n\n if (b === 0) {\n // Prevent spamming the console/LogBox\n if (!this._warnedAboutDivideByZero) {\n console.error('Detected division by zero in AnimatedDivision');\n this._warnedAboutDivideByZero = true;\n } // Passing infinity/NaN to Fabric will cause a native crash\n\n\n return 0;\n }\n\n this._warnedAboutDivideByZero = false;\n return a / b;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'division',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedDivision;\n}(AnimatedWithChildren);\n\nexport default AnimatedDivision;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedModulo = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedModulo, _AnimatedWithChildren);\n\n function AnimatedModulo(a, modulus) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = a;\n _this._modulus = modulus;\n return _this;\n }\n\n var _proto = AnimatedModulo.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return (this._a.__getValue() % this._modulus + this._modulus) % this._modulus;\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'modulus',\n input: this._a.__getNativeTag(),\n modulus: this._modulus\n };\n };\n\n return AnimatedModulo;\n}(AnimatedWithChildren);\n\nexport default AnimatedModulo;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedMultiplication = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedMultiplication, _AnimatedWithChildren);\n\n function AnimatedMultiplication(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedMultiplication.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() * this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'multiplication',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedMultiplication;\n}(AnimatedWithChildren);\n\nexport default AnimatedMultiplication;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedInterpolation from './AnimatedInterpolation';\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\n\nvar AnimatedSubtraction = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedSubtraction, _AnimatedWithChildren);\n\n function AnimatedSubtraction(a, b) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n _this._a = typeof a === 'number' ? new AnimatedValue(a) : a;\n _this._b = typeof b === 'number' ? new AnimatedValue(b) : b;\n return _this;\n }\n\n var _proto = AnimatedSubtraction.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this._a.__makeNative();\n\n this._b.__makeNative();\n\n _AnimatedWithChildren.prototype.__makeNative.call(this);\n };\n\n _proto.__getValue = function __getValue() {\n return this._a.__getValue() - this._b.__getValue();\n };\n\n _proto.interpolate = function interpolate(config) {\n return new AnimatedInterpolation(this, config);\n };\n\n _proto.__attach = function __attach() {\n this._a.__addChild(this);\n\n this._b.__addChild(this);\n };\n\n _proto.__detach = function __detach() {\n this._a.__removeChild(this);\n\n this._b.__removeChild(this);\n\n _AnimatedWithChildren.prototype.__detach.call(this);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n return {\n type: 'subtraction',\n input: [this._a.__getNativeTag(), this._b.__getNativeTag()]\n };\n };\n\n return AnimatedSubtraction;\n}(AnimatedWithChildren);\n\nexport default AnimatedSubtraction;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { generateNewAnimationId, shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar AnimatedTracking = /*#__PURE__*/function (_AnimatedNode) {\n _inheritsLoose(AnimatedTracking, _AnimatedNode);\n\n function AnimatedTracking(value, parent, animationClass, animationConfig, callback) {\n var _this;\n\n _this = _AnimatedNode.call(this) || this;\n _this._value = value;\n _this._parent = parent;\n _this._animationClass = animationClass;\n _this._animationConfig = animationConfig;\n _this._useNativeDriver = shouldUseNativeDriver(animationConfig);\n _this._callback = callback;\n\n _this.__attach();\n\n return _this;\n }\n\n var _proto = AnimatedTracking.prototype;\n\n _proto.__makeNative = function __makeNative() {\n this.__isNative = true;\n\n this._parent.__makeNative();\n\n _AnimatedNode.prototype.__makeNative.call(this);\n\n this._value.__makeNative();\n };\n\n _proto.__getValue = function __getValue() {\n return this._parent.__getValue();\n };\n\n _proto.__attach = function __attach() {\n this._parent.__addChild(this);\n\n if (this._useNativeDriver) {\n // when the tracking starts we need to convert this node to a \"native node\"\n // so that the parent node will be made \"native\" too. This is necessary as\n // if we don't do this `update` method will get called. At that point it\n // may be too late as it would mean the JS driver has already started\n // updating node values\n this.__makeNative();\n }\n };\n\n _proto.__detach = function __detach() {\n this._parent.__removeChild(this);\n\n _AnimatedNode.prototype.__detach.call(this);\n };\n\n _proto.update = function update() {\n this._value.animate(new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n toValue: this._animationConfig.toValue.__getValue()\n })), this._callback);\n };\n\n _proto.__getNativeConfig = function __getNativeConfig() {\n var animation = new this._animationClass(_objectSpread(_objectSpread({}, this._animationConfig), {}, {\n // remove toValue from the config as it's a ref to Animated.Value\n toValue: undefined\n }));\n\n var animationConfig = animation.__getNativeAnimationConfig();\n\n return {\n type: 'tracking',\n animationId: generateNewAnimationId(),\n animationConfig: animationConfig,\n toValue: this._parent.__getNativeTag(),\n value: this._value.__getNativeTag()\n };\n };\n\n return AnimatedTracking;\n}(AnimatedNode);\n\nexport default AnimatedTracking;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n if (callback && config.onComplete) {\n return function () {\n config.onComplete && config.onComplete.apply(config, arguments);\n callback && callback.apply(void 0, arguments);\n };\n } else {\n return callback || config.onComplete;\n }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n if (value instanceof AnimatedValueXY) {\n var configX = _objectSpread({}, config);\n\n var configY = _objectSpread({}, config);\n\n for (var key in config) {\n var _config$key = config[key],\n x = _config$key.x,\n y = _config$key.y;\n\n if (x !== undefined && y !== undefined) {\n configX[key] = x;\n configY[key] = y;\n }\n }\n\n var aX = anim(value.x, configX);\n var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n // because the second animation will get stopped before it can update.\n\n return parallel([aX, aY], {\n stopTogether: false\n });\n }\n\n return null;\n};\n\nvar spring = function spring(value, config) {\n var _start = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new SpringAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, spring) || {\n start: function start(callback) {\n _start(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar timing = function timing(value, config) {\n var _start2 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n\n if (configuration.toValue instanceof AnimatedNode) {\n singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n } else {\n singleValue.animate(new TimingAnimation(singleConfig), callback);\n }\n };\n\n return maybeVectorAnim(value, config, timing) || {\n start: function start(callback) {\n _start2(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start2(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar decay = function decay(value, config) {\n var _start3 = function start(animatedValue, configuration, callback) {\n callback = _combineCallbacks(callback, configuration);\n var singleValue = animatedValue;\n var singleConfig = configuration;\n singleValue.stopTracking();\n singleValue.animate(new DecayAnimation(singleConfig), callback);\n };\n\n return maybeVectorAnim(value, config, decay) || {\n start: function start(callback) {\n _start3(value, config, callback);\n },\n stop: function stop() {\n value.stopAnimation();\n },\n reset: function reset() {\n value.resetAnimation();\n },\n _startNativeLoop: function _startNativeLoop(iterations) {\n var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n iterations: iterations\n });\n\n _start3(value, singleConfig);\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return config.useNativeDriver || false;\n }\n };\n};\n\nvar sequence = function sequence(animations) {\n var current = 0;\n return {\n start: function start(callback) {\n var onComplete = function onComplete(result) {\n if (!result.finished) {\n callback && callback(result);\n return;\n }\n\n current++;\n\n if (current === animations.length) {\n callback && callback(result);\n return;\n }\n\n animations[current].start(onComplete);\n };\n\n if (animations.length === 0) {\n callback && callback({\n finished: true\n });\n } else {\n animations[current].start(onComplete);\n }\n },\n stop: function stop() {\n if (current < animations.length) {\n animations[current].stop();\n }\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n if (idx <= current) {\n animation.reset();\n }\n });\n current = 0;\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n};\n\nvar parallel = function parallel(animations, config) {\n var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n var hasEnded = {};\n var stopTogether = !(config && config.stopTogether === false);\n var result = {\n start: function start(callback) {\n if (doneCount === animations.length) {\n callback && callback({\n finished: true\n });\n return;\n }\n\n animations.forEach(function (animation, idx) {\n var cb = function cb(endResult) {\n hasEnded[idx] = true;\n doneCount++;\n\n if (doneCount === animations.length) {\n doneCount = 0;\n callback && callback(endResult);\n return;\n }\n\n if (!endResult.finished && stopTogether) {\n result.stop();\n }\n };\n\n if (!animation) {\n cb({\n finished: true\n });\n } else {\n animation.start(cb);\n }\n });\n },\n stop: function stop() {\n animations.forEach(function (animation, idx) {\n !hasEnded[idx] && animation.stop();\n hasEnded[idx] = true;\n });\n },\n reset: function reset() {\n animations.forEach(function (animation, idx) {\n animation.reset();\n hasEnded[idx] = false;\n doneCount = 0;\n });\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n };\n return result;\n};\n\nvar delay = function delay(time) {\n // Would be nice to make a specialized implementation\n return timing(new AnimatedValue(0), {\n toValue: 0,\n delay: time,\n duration: 0,\n useNativeDriver: false\n });\n};\n\nvar stagger = function stagger(time, animations) {\n return parallel(animations.map(function (animation, i) {\n return sequence([delay(time * i), animation]);\n }));\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n _ref$resetBeforeItera = _ref.resetBeforeIteration,\n resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n var isFinished = false;\n var iterationsSoFar = 0;\n return {\n start: function start(callback) {\n var restart = function restart(result) {\n if (result === void 0) {\n result = {\n finished: true\n };\n }\n\n if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n callback && callback(result);\n } else {\n iterationsSoFar++;\n resetBeforeIteration && animation.reset();\n animation.start(restart);\n }\n };\n\n if (!animation || iterations === 0) {\n callback && callback({\n finished: true\n });\n } else {\n if (animation._isUsingNativeDriver()) {\n animation._startNativeLoop(iterations);\n } else {\n restart(); // Start looping recursively on the js thread\n }\n }\n },\n stop: function stop() {\n isFinished = true;\n animation.stop();\n },\n reset: function reset() {\n iterationsSoFar = 0;\n isFinished = false;\n animation.reset();\n },\n _startNativeLoop: function _startNativeLoop() {\n throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n },\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return animation._isUsingNativeDriver();\n }\n };\n};\n\nfunction forkEvent(event, listener) {\n if (!event) {\n return listener;\n } else if (event instanceof AnimatedEvent) {\n event.__addListener(listener);\n\n return event;\n } else {\n return function () {\n typeof event === 'function' && event.apply(void 0, arguments);\n listener.apply(void 0, arguments);\n };\n }\n}\n\nfunction unforkEvent(event, listener) {\n if (event && event instanceof AnimatedEvent) {\n event.__removeListener(listener);\n }\n}\n\nvar event = function event(argMapping, config) {\n var animatedEvent = new AnimatedEvent(argMapping, config);\n\n if (animatedEvent.__isNative) {\n return animatedEvent;\n } else {\n return animatedEvent.__getHandler();\n }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated.html\n */\n\n\nexport default {\n /**\n * Standard value class for driving animations. Typically initialized with\n * `new Animated.Value(0);`\n *\n * See https://reactnative.dev/docs/animated.html#value\n */\n Value: AnimatedValue,\n\n /**\n * 2D value class for driving 2D animations, such as pan gestures.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n ValueXY: AnimatedValueXY,\n\n /**\n * Exported to use the Interpolation type in flow.\n *\n * See https://reactnative.dev/docs/animated.html#interpolation\n */\n Interpolation: AnimatedInterpolation,\n\n /**\n * Exported for ease of type checking. All animated values derive from this\n * class.\n *\n * See https://reactnative.dev/docs/animated.html#node\n */\n Node: AnimatedNode,\n\n /**\n * Animates a value from an initial velocity to zero based on a decay\n * coefficient.\n *\n * See https://reactnative.dev/docs/animated.html#decay\n */\n decay: decay,\n\n /**\n * Animates a value along a timed easing curve. The Easing module has tons of\n * predefined curves, or you can use your own function.\n *\n * See https://reactnative.dev/docs/animated.html#timing\n */\n timing: timing,\n\n /**\n * Animates a value according to an analytical spring model based on\n * damped harmonic oscillation.\n *\n * See https://reactnative.dev/docs/animated.html#spring\n */\n spring: spring,\n\n /**\n * Creates a new Animated value composed from two Animated values added\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#add\n */\n add: add,\n\n /**\n * Creates a new Animated value composed by subtracting the second Animated\n * value from the first Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#subtract\n */\n subtract: subtract,\n\n /**\n * Creates a new Animated value composed by dividing the first Animated value\n * by the second Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#divide\n */\n divide: divide,\n\n /**\n * Creates a new Animated value composed from two Animated values multiplied\n * together.\n *\n * See https://reactnative.dev/docs/animated.html#multiply\n */\n multiply: multiply,\n\n /**\n * Creates a new Animated value that is the (non-negative) modulo of the\n * provided Animated value.\n *\n * See https://reactnative.dev/docs/animated.html#modulo\n */\n modulo: modulo,\n\n /**\n * Create a new Animated value that is limited between 2 values. It uses the\n * difference between the last value so even if the value is far from the\n * bounds it will start changing when the value starts getting closer again.\n *\n * See https://reactnative.dev/docs/animated.html#diffclamp\n */\n diffClamp: diffClamp,\n\n /**\n * Starts an animation after the given delay.\n *\n * See https://reactnative.dev/docs/animated.html#delay\n */\n delay: delay,\n\n /**\n * Starts an array of animations in order, waiting for each to complete\n * before starting the next. If the current running animation is stopped, no\n * following animations will be started.\n *\n * See https://reactnative.dev/docs/animated.html#sequence\n */\n sequence: sequence,\n\n /**\n * Starts an array of animations all at the same time. By default, if one\n * of the animations is stopped, they will all be stopped. You can override\n * this with the `stopTogether` flag.\n *\n * See https://reactnative.dev/docs/animated.html#parallel\n */\n parallel: parallel,\n\n /**\n * Array of animations may run in parallel (overlap), but are started in\n * sequence with successive delays. Nice for doing trailing effects.\n *\n * See https://reactnative.dev/docs/animated.html#stagger\n */\n stagger: stagger,\n\n /**\n * Loops a given animation continuously, so that each time it reaches the\n * end, it resets and begins again from the start.\n *\n * See https://reactnative.dev/docs/animated.html#loop\n */\n loop: loop,\n\n /**\n * Takes an array of mappings and extracts values from each arg accordingly,\n * then calls `setValue` on the mapped outputs.\n *\n * See https://reactnative.dev/docs/animated.html#event\n */\n event: event,\n\n /**\n * Make any React component Animatable. Used to create `Animated.View`, etc.\n *\n * See https://reactnative.dev/docs/animated.html#createanimatedcomponent\n */\n createAnimatedComponent: createAnimatedComponent,\n\n /**\n * Imperative API to attach an animated value to an event on a view. Prefer\n * using `Animated.event` with `useNativeDrive: true` if possible.\n *\n * See https://reactnative.dev/docs/animated.html#attachnativeevent\n */\n attachNativeEvent: attachNativeEvent,\n\n /**\n * Advanced imperative API for snooping on animated events that are passed in\n * through props. Use values directly where possible.\n *\n * See https://reactnative.dev/docs/animated.html#forkevent\n */\n forkEvent: forkEvent,\n unforkEvent: unforkEvent,\n\n /**\n * Expose Event class, so it can be used as a type for type checkers.\n */\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedImplementation from './AnimatedImplementation';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport createAnimatedComponent from './createAnimatedComponent';\nvar emptyAnimation = {\n start: function start() {},\n stop: function stop() {},\n reset: function reset() {},\n _startNativeLoop: function _startNativeLoop() {},\n _isUsingNativeDriver: function _isUsingNativeDriver() {\n return false;\n }\n};\n\nvar spring = function spring(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: function start(callback) {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar timing = function timing(value, config) {\n var anyValue = value;\n return _objectSpread(_objectSpread({}, emptyAnimation), {}, {\n start: function start(callback) {\n anyValue.setValue(config.toValue);\n callback && callback({\n finished: true\n });\n }\n });\n};\n\nvar decay = function decay(value, config) {\n return emptyAnimation;\n};\n\nvar sequence = function sequence(animations) {\n return emptyAnimation;\n};\n\nvar parallel = function parallel(animations, config) {\n return emptyAnimation;\n};\n\nvar delay = function delay(time) {\n return emptyAnimation;\n};\n\nvar stagger = function stagger(time, animations) {\n return emptyAnimation;\n};\n\nvar loop = function loop(animation, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$iterations = _ref.iterations,\n iterations = _ref$iterations === void 0 ? -1 : _ref$iterations;\n\n return emptyAnimation;\n};\n\nvar event = function event(argMapping, config) {\n return null;\n};\n\nexport default {\n Value: AnimatedValue,\n ValueXY: AnimatedValueXY,\n Interpolation: AnimatedInterpolation,\n Node: AnimatedNode,\n decay: decay,\n timing: timing,\n spring: spring,\n add: AnimatedImplementation.add,\n subtract: AnimatedImplementation.subtract,\n divide: AnimatedImplementation.divide,\n multiply: AnimatedImplementation.multiply,\n modulo: AnimatedImplementation.modulo,\n diffClamp: AnimatedImplementation.diffClamp,\n delay: delay,\n sequence: sequence,\n parallel: parallel,\n stagger: stagger,\n loop: loop,\n event: event,\n createAnimatedComponent: createAnimatedComponent,\n attachNativeEvent: attachNativeEvent,\n forkEvent: AnimatedImplementation.forkEvent,\n unforkEvent: AnimatedImplementation.unforkEvent,\n Event: AnimatedEvent,\n __PropsOnlyForTests: AnimatedProps\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Platform from '../../../exports/Platform';\nimport FlatList from './components/AnimatedFlatList';\nimport Image from './components/AnimatedImage';\nimport ScrollView from './components/AnimatedScrollView';\nimport SectionList from './components/AnimatedSectionList';\nimport Text from './components/AnimatedText';\nimport View from './components/AnimatedView';\nimport AnimatedMock from './AnimatedMock';\nimport AnimatedImplementation from './AnimatedImplementation';\nvar Animated = Platform.isTesting ? AnimatedMock : AnimatedImplementation;\nexport default _objectSpread({\n FlatList: FlatList,\n Image: Image,\n ScrollView: ScrollView,\n SectionList: SectionList,\n Text: Text,\n View: View\n}, Animated);","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Animated from '../../vendor/react-native/Animated/Animated';\nexport default Animated;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, size) => {\n return () => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport * as forwardedProps from '../../modules/forwardedProps';\nimport pick from '../../modules/pick';\nimport useElementLayout from '../../modules/useElementLayout';\nimport useLayoutEffect from '../../modules/useLayoutEffect';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport useResponderEvents from '../../modules/useResponderEvents';\nimport StyleSheet from '../StyleSheet';\nimport TextInputState from '../../modules/TextInputState';\n/**\n * Determines whether a 'selection' prop differs from a node's existing\n * selection state.\n */\n\nvar isSelectionStale = function isSelectionStale(node, selection) {\n var selectionEnd = node.selectionEnd,\n selectionStart = node.selectionStart;\n var start = selection.start,\n end = selection.end;\n return start !== selectionStart || end !== selectionEnd;\n};\n/**\n * Certain input types do no support 'selectSelectionRange' and will throw an\n * error.\n */\n\n\nvar setSelection = function setSelection(node, selection) {\n if (isSelectionStale(node, selection)) {\n var start = selection.start,\n end = selection.end;\n\n try {\n node.setSelectionRange(start, end || start);\n } catch (e) {}\n }\n};\n\nvar forwardPropsList = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, forwardedProps.defaultProps), forwardedProps.accessibilityProps), forwardedProps.clickProps), forwardedProps.focusProps), forwardedProps.keyboardProps), forwardedProps.mouseProps), forwardedProps.touchProps), forwardedProps.styleProps), {}, {\n autoCapitalize: true,\n autoComplete: true,\n autoCorrect: true,\n autoFocus: true,\n defaultValue: true,\n disabled: true,\n lang: true,\n maxLength: true,\n onChange: true,\n onScroll: true,\n placeholder: true,\n pointerEvents: true,\n readOnly: true,\n rows: true,\n spellCheck: true,\n value: true,\n type: true\n});\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n}; // If an Input Method Editor is processing key input, the 'keyCode' is 229.\n// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n\n\nfunction isEventComposing(nativeEvent) {\n return nativeEvent.isComposing || nativeEvent.keyCode === 229;\n}\n\nvar TextInput = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var _props$autoCapitalize = props.autoCapitalize,\n autoCapitalize = _props$autoCapitalize === void 0 ? 'sentences' : _props$autoCapitalize,\n autoComplete = props.autoComplete,\n autoCompleteType = props.autoCompleteType,\n _props$autoCorrect = props.autoCorrect,\n autoCorrect = _props$autoCorrect === void 0 ? true : _props$autoCorrect,\n blurOnSubmit = props.blurOnSubmit,\n clearTextOnFocus = props.clearTextOnFocus,\n dir = props.dir,\n _props$editable = props.editable,\n editable = _props$editable === void 0 ? true : _props$editable,\n _props$keyboardType = props.keyboardType,\n keyboardType = _props$keyboardType === void 0 ? 'default' : _props$keyboardType,\n _props$multiline = props.multiline,\n multiline = _props$multiline === void 0 ? false : _props$multiline,\n _props$numberOfLines = props.numberOfLines,\n numberOfLines = _props$numberOfLines === void 0 ? 1 : _props$numberOfLines,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onChangeText = props.onChangeText,\n onContentSizeChange = props.onContentSizeChange,\n onFocus = props.onFocus,\n onKeyPress = props.onKeyPress,\n onLayout = props.onLayout,\n onMoveShouldSetResponder = props.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = props.onMoveShouldSetResponderCapture,\n onResponderEnd = props.onResponderEnd,\n onResponderGrant = props.onResponderGrant,\n onResponderMove = props.onResponderMove,\n onResponderReject = props.onResponderReject,\n onResponderRelease = props.onResponderRelease,\n onResponderStart = props.onResponderStart,\n onResponderTerminate = props.onResponderTerminate,\n onResponderTerminationRequest = props.onResponderTerminationRequest,\n onScrollShouldSetResponder = props.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = props.onScrollShouldSetResponderCapture,\n onSelectionChange = props.onSelectionChange,\n onSelectionChangeShouldSetResponder = props.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = props.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = props.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = props.onStartShouldSetResponderCapture,\n onSubmitEditing = props.onSubmitEditing,\n placeholderTextColor = props.placeholderTextColor,\n returnKeyType = props.returnKeyType,\n _props$secureTextEntr = props.secureTextEntry,\n secureTextEntry = _props$secureTextEntr === void 0 ? false : _props$secureTextEntr,\n selection = props.selection,\n selectTextOnFocus = props.selectTextOnFocus,\n spellCheck = props.spellCheck;\n var type;\n var inputMode;\n\n switch (keyboardType) {\n case 'email-address':\n type = 'email';\n break;\n\n case 'number-pad':\n case 'numeric':\n inputMode = 'numeric';\n break;\n\n case 'decimal-pad':\n inputMode = 'decimal';\n break;\n\n case 'phone-pad':\n type = 'tel';\n break;\n\n case 'search':\n case 'web-search':\n type = 'search';\n break;\n\n case 'url':\n type = 'url';\n break;\n\n default:\n type = 'text';\n }\n\n if (secureTextEntry) {\n type = 'password';\n }\n\n var dimensions = React.useRef({\n height: null,\n width: null\n });\n var hostRef = React.useRef(null);\n var handleContentSizeChange = React.useCallback(function (hostNode) {\n if (multiline && onContentSizeChange && hostNode != null) {\n var newHeight = hostNode.scrollHeight;\n var newWidth = hostNode.scrollWidth;\n\n if (newHeight !== dimensions.current.height || newWidth !== dimensions.current.width) {\n dimensions.current.height = newHeight;\n dimensions.current.width = newWidth;\n onContentSizeChange({\n nativeEvent: {\n contentSize: {\n height: dimensions.current.height,\n width: dimensions.current.width\n }\n }\n });\n }\n }\n }, [multiline, onContentSizeChange]);\n var imperativeRef = React.useMemo(function () {\n return function (hostNode) {\n // TextInput needs to add more methods to the hostNode in addition to those\n // added by `usePlatformMethods`. This is temporarily until an API like\n // `TextInput.clear(hostRef)` is added to React Native.\n if (hostNode != null) {\n hostNode.clear = function () {\n if (hostNode != null) {\n hostNode.value = '';\n }\n };\n\n hostNode.isFocused = function () {\n return hostNode != null && TextInputState.currentlyFocusedField() === hostNode;\n };\n\n handleContentSizeChange(hostNode);\n }\n };\n }, [handleContentSizeChange]);\n\n function handleBlur(e) {\n TextInputState._currentlyFocusedNode = null;\n\n if (onBlur) {\n e.nativeEvent.text = e.target.value;\n onBlur(e);\n }\n }\n\n function handleChange(e) {\n var hostNode = e.target;\n var text = hostNode.value;\n e.nativeEvent.text = text;\n handleContentSizeChange(hostNode);\n\n if (onChange) {\n onChange(e);\n }\n\n if (onChangeText) {\n onChangeText(text);\n }\n }\n\n function handleFocus(e) {\n var hostNode = e.target;\n\n if (onFocus) {\n e.nativeEvent.text = hostNode.value;\n onFocus(e);\n }\n\n if (hostNode != null) {\n TextInputState._currentlyFocusedNode = hostNode;\n\n if (clearTextOnFocus) {\n hostNode.value = '';\n }\n\n if (selectTextOnFocus) {\n // Safari requires selection to occur in a setTimeout\n setTimeout(function () {\n hostNode.select();\n }, 0);\n }\n }\n }\n\n function handleKeyDown(e) {\n var hostNode = e.target; // Prevent key events bubbling (see #612)\n\n e.stopPropagation();\n var blurOnSubmitDefault = !multiline;\n var shouldBlurOnSubmit = blurOnSubmit == null ? blurOnSubmitDefault : blurOnSubmit;\n var nativeEvent = e.nativeEvent;\n var isComposing = isEventComposing(nativeEvent);\n\n if (onKeyPress) {\n onKeyPress(e);\n }\n\n if (e.key === 'Enter' && !e.shiftKey && // Do not call submit if composition is occuring.\n !isComposing && !e.isDefaultPrevented()) {\n if ((blurOnSubmit || !multiline) && onSubmitEditing) {\n // prevent \"Enter\" from inserting a newline or submitting a form\n e.preventDefault();\n nativeEvent.text = e.target.value;\n onSubmitEditing(e);\n }\n\n if (shouldBlurOnSubmit && hostNode != null) {\n hostNode.blur();\n }\n }\n }\n\n function handleSelectionChange(e) {\n if (onSelectionChange) {\n try {\n var node = e.target;\n var selectionStart = node.selectionStart,\n selectionEnd = node.selectionEnd;\n e.nativeEvent.selection = {\n start: selectionStart,\n end: selectionEnd\n };\n e.nativeEvent.text = e.target.value;\n onSelectionChange(e);\n } catch (e) {}\n }\n }\n\n useLayoutEffect(function () {\n var node = hostRef.current;\n\n if (node != null && selection != null) {\n setSelection(node, selection);\n }\n\n if (document.activeElement === node) {\n TextInputState._currentlyFocusedNode = node;\n }\n }, [hostRef, selection]);\n var component = multiline ? 'textarea' : 'input';\n var classList = [classes.textinput];\n var style = StyleSheet.compose(props.style, placeholderTextColor && {\n placeholderTextColor: placeholderTextColor\n });\n useElementLayout(hostRef, onLayout);\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder: onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture: onMoveShouldSetResponderCapture,\n onResponderEnd: onResponderEnd,\n onResponderGrant: onResponderGrant,\n onResponderMove: onResponderMove,\n onResponderReject: onResponderReject,\n onResponderRelease: onResponderRelease,\n onResponderStart: onResponderStart,\n onResponderTerminate: onResponderTerminate,\n onResponderTerminationRequest: onResponderTerminationRequest,\n onScrollShouldSetResponder: onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture: onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder: onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture: onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder: onStartShouldSetResponder,\n onStartShouldSetResponderCapture: onStartShouldSetResponderCapture\n });\n var supportedProps = pickProps(props);\n supportedProps.autoCapitalize = autoCapitalize;\n supportedProps.autoComplete = autoComplete || autoCompleteType || 'on';\n supportedProps.autoCorrect = autoCorrect ? 'on' : 'off';\n supportedProps.classList = classList; // 'auto' by default allows browsers to infer writing direction\n\n supportedProps.dir = dir !== undefined ? dir : 'auto';\n supportedProps.enterKeyHint = returnKeyType;\n supportedProps.onBlur = handleBlur;\n supportedProps.onChange = handleChange;\n supportedProps.onFocus = handleFocus;\n supportedProps.onKeyDown = handleKeyDown;\n supportedProps.onSelect = handleSelectionChange;\n supportedProps.readOnly = !editable;\n supportedProps.rows = multiline ? numberOfLines : undefined;\n supportedProps.spellCheck = spellCheck != null ? spellCheck : autoCorrect;\n supportedProps.style = style;\n supportedProps.type = multiline ? undefined : type;\n supportedProps.inputMode = inputMode;\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, imperativeRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement(component, supportedProps);\n});\nTextInput.displayName = 'TextInput'; // $FlowFixMe\n\nTextInput.State = TextInputState;\nvar classes = css.create({\n textinput: {\n MozAppearance: 'textfield',\n WebkitAppearance: 'none',\n backgroundColor: 'transparent',\n border: '0 solid black',\n borderRadius: 0,\n boxSizing: 'border-box',\n font: '14px System',\n margin: 0,\n padding: 0,\n resize: 'none'\n }\n});\nexport default TextInput;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = '-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif';","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, dimming it.\n */\nfunction TouchableOpacity(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"rejectResponderTermination\", \"style\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState('0s'),\n duration = _useState[0],\n setDuration = _useState[1];\n\n var _useState2 = useState(null),\n opacityOverride = _useState2[0],\n setOpacityOverride = _useState2[1];\n\n var setOpacityTo = useCallback(function (value, duration) {\n setOpacityOverride(value);\n setDuration(duration ? duration / 1000 + \"s\" : '0s');\n }, [setOpacityOverride, setDuration]);\n var setOpacityActive = useCallback(function (duration) {\n setOpacityTo(activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.2, duration);\n }, [activeOpacity, setOpacityTo]);\n var setOpacityInactive = useCallback(function (duration) {\n setOpacityTo(null, duration);\n }, [setOpacityTo]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n var isGrant = event.dispatchConfig != null ? event.dispatchConfig.registrationName === 'onResponderGrant' : event.type === 'keydown';\n setOpacityActive(isGrant ? 0 : 150);\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n setOpacityInactive(250);\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, setOpacityActive, setOpacityInactive]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, !disabled && styles.actionable, style, opacityOverride != null && {\n opacity: opacityOverride\n }, {\n transitionDuration: duration\n }]\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n transitionProperty: 'opacity',\n transitionDuration: '0.15s',\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableOpacity = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableOpacity));\nMemoedTouchableOpacity.displayName = 'TouchableOpacity';\nexport default MemoedTouchableOpacity;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = function findNodeHandle(component) {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport unitlessNumbers from '../../modules/unitlessNumbers';\nimport normalizeColor from '../../modules/normalizeColor';\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type { NavigationState, PartialState, Route } from './types';\n\ntype ResetState =\n | PartialState\n | NavigationState\n | (Omit & {\n routes: Omit, 'key'>[];\n });\n\nexport type Action =\n | {\n type: 'GO_BACK';\n source?: string;\n target?: string;\n }\n | {\n type: 'NAVIGATE';\n payload:\n | {\n key: string;\n name?: undefined;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n };\n source?: string;\n target?: string;\n }\n | {\n type: 'RESET';\n payload: ResetState | undefined;\n source?: string;\n target?: string;\n }\n | {\n type: 'SET_PARAMS';\n payload: { params?: object };\n source?: string;\n target?: string;\n };\n\nexport function goBack(): Action {\n return { type: 'GO_BACK' };\n}\n\nexport function navigate(\n options:\n | { key: string; params?: object; path?: string; merge?: boolean }\n | {\n name: string;\n key?: string;\n params?: object;\n path?: string;\n merge?: boolean;\n }\n): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(name: string, params?: object): Action;\n// eslint-disable-next-line no-redeclare\nexport function navigate(...args: any): Action {\n if (typeof args[0] === 'string') {\n return { type: 'NAVIGATE', payload: { name: args[0], params: args[1] } };\n } else {\n const payload = args[0] || {};\n\n if (!payload.hasOwnProperty('key') && !payload.hasOwnProperty('name')) {\n throw new Error(\n 'You need to specify name or key when calling navigate with an object as the argument. See https://reactnavigation.org/docs/navigation-actions#navigate for usage.'\n );\n }\n\n return { type: 'NAVIGATE', payload };\n }\n}\n\nexport function reset(state: ResetState | undefined): Action {\n return { type: 'RESET', payload: state };\n}\n\nexport function setParams(params: object): Action {\n return { type: 'SET_PARAMS', payload: { params } };\n}\n","import { nanoid } from 'nanoid/non-secure';\n\nimport type {\n CommonNavigationAction,\n NavigationState,\n PartialState,\n} from './types';\n\n/**\n * Base router object that can be used when writing custom routers.\n * This provides few helper methods to handle common actions such as `RESET`.\n */\nconst BaseRouter = {\n getStateForAction(\n state: State,\n action: CommonNavigationAction\n ): State | PartialState | null {\n switch (action.type) {\n case 'SET_PARAMS': {\n const index = action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((r, i) =>\n i === index\n ? { ...r, params: { ...r.params, ...action.payload.params } }\n : r\n ),\n };\n }\n\n case 'RESET': {\n const nextState = action.payload as State | PartialState;\n\n if (\n nextState.routes.length === 0 ||\n nextState.routes.some(\n (route: { name: string }) => !state.routeNames.includes(route.name)\n )\n ) {\n return null;\n }\n\n if (nextState.stale === false) {\n if (\n state.routeNames.length !== nextState.routeNames.length ||\n nextState.routeNames.some(\n (name) => !state.routeNames.includes(name)\n )\n ) {\n return null;\n }\n\n return {\n ...nextState,\n routes: nextState.routes.map((route) =>\n route.key ? route : { ...route, key: `${route.name}-${nanoid()}` }\n ),\n };\n }\n\n return nextState;\n }\n\n default:\n return null;\n }\n },\n\n shouldActionChangeFocus(action: CommonNavigationAction) {\n return action.type === 'NAVIGATE';\n },\n};\n\nexport default BaseRouter;\n","import { nanoid } from 'nanoid/non-secure';\n\nimport BaseRouter from './BaseRouter';\nimport type {\n CommonNavigationAction,\n DefaultRouterOptions,\n NavigationState,\n ParamListBase,\n Route,\n Router,\n} from './types';\n\nexport type StackActionType =\n | {\n type: 'REPLACE';\n payload: { name: string; key?: string | undefined; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'PUSH';\n payload: { name: string; params?: object };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP';\n payload: { count: number };\n source?: string;\n target?: string;\n }\n | {\n type: 'POP_TO_TOP';\n source?: string;\n target?: string;\n };\n\nexport type StackRouterOptions = DefaultRouterOptions;\n\nexport type StackNavigationState =\n NavigationState & {\n /**\n * Type of the router, in this case, it's stack.\n */\n type: 'stack';\n };\n\nexport type StackActionHelpers = {\n /**\n * Replace the current route with a new one.\n *\n * @param name Route name of the new route.\n * @param [params] Params object for the new route.\n */\n replace(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Push a new screen onto the stack.\n *\n * @param name Name of the route for the tab.\n * @param [params] Params object for the route.\n */\n push(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Pop a screen from the stack.\n */\n pop(count?: number): void;\n\n /**\n * Pop to the first route in the stack, dismissing all other screens.\n */\n popToTop(): void;\n};\n\nexport const StackActions = {\n replace(name: string, params?: object): StackActionType {\n return { type: 'REPLACE', payload: { name, params } };\n },\n push(name: string, params?: object): StackActionType {\n return { type: 'PUSH', payload: { name, params } };\n },\n pop(count: number = 1): StackActionType {\n return { type: 'POP', payload: { count } };\n },\n popToTop(): StackActionType {\n return { type: 'POP_TO_TOP' };\n },\n};\n\nexport default function StackRouter(options: StackRouterOptions) {\n const router: Router<\n StackNavigationState,\n CommonNavigationAction | StackActionType\n > = {\n ...BaseRouter,\n\n type: 'stack',\n\n getInitialState({ routeNames, routeParamList }) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: 0,\n routeNames,\n routes: [\n {\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n },\n ],\n };\n },\n\n getRehydratedState(partialState, { routeNames, routeParamList }) {\n let state = partialState;\n\n if (state.stale === false) {\n return state;\n }\n\n const routes = state.routes\n .filter((route) => routeNames.includes(route.name))\n .map(\n (route) =>\n ({\n ...route,\n key: route.key || `${route.name}-${nanoid()}`,\n params:\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n }\n : route.params,\n } as Route)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n stale: false,\n type: 'stack',\n key: `stack-${nanoid()}`,\n index: routes.length - 1,\n routeNames,\n routes,\n };\n },\n\n getStateForRouteNamesChange(\n state,\n { routeNames, routeParamList, routeKeyChanges }\n ) {\n const routes = state.routes.filter(\n (route) =>\n routeNames.includes(route.name) &&\n !routeKeyChanges.includes(route.name)\n );\n\n if (routes.length === 0) {\n const initialRouteName =\n options.initialRouteName !== undefined &&\n routeNames.includes(options.initialRouteName)\n ? options.initialRouteName\n : routeNames[0];\n\n routes.push({\n key: `${initialRouteName}-${nanoid()}`,\n name: initialRouteName,\n params: routeParamList[initialRouteName],\n });\n }\n\n return {\n ...state,\n routeNames,\n routes,\n index: Math.min(state.index, routes.length - 1),\n };\n },\n\n getStateForRouteFocus(state, key) {\n const index = state.routes.findIndex((r) => r.key === key);\n\n if (index === -1 || index === state.index) {\n return state;\n }\n\n return {\n ...state,\n index,\n routes: state.routes.slice(0, index + 1),\n };\n },\n\n getStateForAction(state, action, options) {\n const { routeParamList } = options;\n\n switch (action.type) {\n case 'REPLACE': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index === -1) {\n return null;\n }\n\n const { name, key, params } = action.payload;\n\n if (!state.routeNames.includes(name)) {\n return null;\n }\n\n return {\n ...state,\n routes: state.routes.map((route, i) =>\n i === index\n ? {\n key: key !== undefined ? key : `${name}-${nanoid()}`,\n name,\n params:\n routeParamList[name] !== undefined\n ? {\n ...routeParamList[name],\n ...params,\n }\n : params,\n }\n : route\n ),\n };\n }\n\n case 'PUSH':\n if (state.routeNames.includes(action.payload.name)) {\n const getId = options.routeGetIdList[action.payload.name];\n const id = getId?.({ params: action.payload.params });\n\n const route = id\n ? state.routes.find(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n )\n : undefined;\n\n let routes: Route[];\n\n if (route) {\n routes = state.routes.filter((r) => r.key !== route.key);\n routes.push({\n ...route,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n });\n } else {\n routes = [\n ...state.routes,\n {\n key: `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n }\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n\n case 'POP': {\n const index =\n action.target === state.key && action.source\n ? state.routes.findIndex((r) => r.key === action.source)\n : state.index;\n\n if (index > 0) {\n const count = Math.max(index - action.payload.count + 1, 1);\n const routes = state.routes\n .slice(0, count)\n .concat(state.routes.slice(index + 1));\n\n return {\n ...state,\n index: routes.length - 1,\n routes,\n };\n }\n\n return null;\n }\n\n case 'POP_TO_TOP':\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: state.routes.length - 1 },\n },\n options\n );\n\n case 'NAVIGATE':\n if (\n action.payload.name !== undefined &&\n !state.routeNames.includes(action.payload.name)\n ) {\n return null;\n }\n\n if (action.payload.key || action.payload.name) {\n // If the route already exists, navigate to that\n let index = -1;\n\n const getId =\n // `getId` and `key` can't be used together\n action.payload.key === undefined &&\n action.payload.name !== undefined\n ? options.routeGetIdList[action.payload.name]\n : undefined;\n const id = getId?.({ params: action.payload.params });\n\n if (id) {\n index = state.routes.findIndex(\n (route) =>\n route.name === action.payload.name &&\n id === getId?.({ params: route.params })\n );\n } else if (\n (state.routes[state.index].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[state.index].key === action.payload.key\n ) {\n index = state.index;\n } else {\n for (let i = state.routes.length - 1; i >= 0; i--) {\n if (\n (state.routes[i].name === action.payload.name &&\n action.payload.key === undefined) ||\n state.routes[i].key === action.payload.key\n ) {\n index = i;\n break;\n }\n }\n }\n\n if (\n index === -1 &&\n action.payload.key &&\n action.payload.name === undefined\n ) {\n return null;\n }\n\n if (index === -1 && action.payload.name !== undefined) {\n const routes = [\n ...state.routes,\n {\n key:\n action.payload.key ?? `${action.payload.name}-${nanoid()}`,\n name: action.payload.name,\n path: action.payload.path,\n params:\n routeParamList[action.payload.name] !== undefined\n ? {\n ...routeParamList[action.payload.name],\n ...action.payload.params,\n }\n : action.payload.params,\n },\n ];\n\n return {\n ...state,\n routes,\n index: routes.length - 1,\n };\n }\n\n const route = state.routes[index];\n\n let params;\n\n if (action.payload.merge) {\n params =\n action.payload.params !== undefined ||\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...route.params,\n ...action.payload.params,\n }\n : route.params;\n } else {\n params =\n routeParamList[route.name] !== undefined\n ? {\n ...routeParamList[route.name],\n ...action.payload.params,\n }\n : action.payload.params;\n }\n\n return {\n ...state,\n index,\n routes: [\n ...state.routes.slice(0, index),\n params !== route.params ||\n (action.payload.path && action.payload.path !== route.path)\n ? {\n ...route,\n path: action.payload.path ?? route.path,\n params,\n }\n : state.routes[index],\n ],\n };\n }\n\n return null;\n\n case 'GO_BACK':\n if (state.index > 0) {\n return router.getStateForAction(\n state,\n {\n type: 'POP',\n payload: { count: 1 },\n target: action.target,\n source: action.source,\n },\n options\n );\n }\n\n return null;\n\n default:\n return BaseRouter.getStateForAction(state, action);\n }\n },\n\n actionCreators: StackActions,\n };\n\n return router;\n}\n","import { CommonActions } from '@react-navigation/routers';\n\nimport type {\n NavigationContainerEventMap,\n NavigationContainerRef,\n NavigationContainerRefWithCurrent,\n} from './types';\n\nexport const NOT_INITIALIZED_ERROR =\n \"The 'navigation' object hasn't been initialized yet. This might happen if you don't have a navigator mounted, or if the navigator hasn't finished mounting. See https://reactnavigation.org/docs/navigating-without-navigation-prop#handling-initialization for more details.\";\n\nexport default function createNavigationContainerRef<\n ParamList extends {} = ReactNavigation.RootParamList\n>(): NavigationContainerRefWithCurrent {\n const methods = [\n ...Object.keys(CommonActions),\n 'addListener',\n 'removeListener',\n 'resetRoot',\n 'dispatch',\n 'isFocused',\n 'canGoBack',\n 'getRootState',\n 'getState',\n 'getParent',\n 'getCurrentRoute',\n 'getCurrentOptions',\n ] as const;\n\n const listeners: Record void)[]> = {};\n\n const removeListener = (\n event: string,\n callback: (...args: any[]) => void\n ) => {\n if (listeners[event]) {\n listeners[event] = listeners[event].filter((cb) => cb !== callback);\n }\n };\n\n let current: NavigationContainerRef | null = null;\n\n const ref: NavigationContainerRefWithCurrent = {\n get current() {\n return current;\n },\n set current(value: NavigationContainerRef | null) {\n current = value;\n\n if (value != null) {\n Object.entries(listeners).forEach(([event, callbacks]) => {\n callbacks.forEach((callback) => {\n value.addListener(\n event as keyof NavigationContainerEventMap,\n callback\n );\n });\n });\n }\n },\n isReady: () => {\n if (current == null) {\n return false;\n }\n\n return current.isReady();\n },\n ...methods.reduce((acc, name) => {\n acc[name] = (...args: any[]) => {\n if (current == null) {\n switch (name) {\n case 'addListener': {\n const [event, callback] = args;\n\n listeners[event] = listeners[event] || [];\n listeners[event].push(callback);\n\n return () => removeListener(event, callback);\n }\n case 'removeListener': {\n const [event, callback] = args;\n\n removeListener(event, callback);\n break;\n }\n default:\n console.error(NOT_INITIALIZED_ERROR);\n }\n } else {\n // @ts-expect-error: this is ok\n return current[name](...args);\n }\n };\n return acc;\n }, {}),\n };\n\n return ref;\n}\n","import * as React from 'react';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\n\nexport const SingleNavigatorContext = React.createContext<\n | {\n register(key: string): void;\n unregister(key: string): void;\n }\n | undefined\n>(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator({ children }: Props) {\n const navigatorKeyRef = React.useRef();\n\n const value = React.useMemo(\n () => ({\n register(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n\n navigatorKeyRef.current = key;\n },\n unregister(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (key !== currentKey) {\n return;\n }\n\n navigatorKeyRef.current = undefined;\n },\n }),\n []\n );\n\n return (\n \n {children}\n \n );\n}\n","import type { InitialState } from '@react-navigation/routers';\n\nexport default function findFocusedRoute(state: InitialState) {\n let current: InitialState | undefined = state;\n\n while (current?.routes[current.index ?? 0].state != null) {\n current = current.routes[current.index ?? 0].state;\n }\n\n const route = current?.routes[current?.index ?? 0];\n\n return route;\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\nexport type ListenerMap = {\n action: ChildActionListener;\n focus: FocusedNavigationListener;\n};\n\nexport type KeyedListenerMap = {\n getState: GetStateListener;\n beforeRemove: ChildBeforeRemoveListener;\n};\n\nexport type AddListener = (\n type: T,\n listener: ListenerMap[T]\n) => void;\n\nexport type AddKeyedListener = (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n) => void;\n\nexport type ChildActionListener = (\n action: NavigationAction,\n visitedNavigators?: Set\n) => boolean;\n\nexport type FocusedNavigationCallback = (\n navigation: NavigationHelpers\n) => T;\n\nexport type FocusedNavigationListener = (\n callback: FocusedNavigationCallback\n) => {\n handled: boolean;\n result: T;\n};\n\nexport type GetStateListener = () => NavigationState;\n\nexport type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;\n\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = React.createContext<{\n onAction?: (\n action: NavigationAction,\n visitedNavigators?: Set\n ) => boolean;\n addListener?: AddListener;\n addKeyedListener?: AddKeyedListener;\n onRouteFocus?: (key: string) => void;\n onDispatchAction: (action: NavigationAction, noop: boolean) => void;\n onOptionsChange: (options: object) => void;\n stackRef?: React.MutableRefObject;\n}>({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined,\n});\n\nexport default NavigationBuilderContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationContainerRef } from './types';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationContainerRefContext = React.createContext<\n NavigationContainerRef | undefined\n>(undefined);\n\nexport default NavigationContainerRefContext;\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationProp } from './types';\n\n/**\n * Context which holds the navigation prop for a screen.\n */\nconst NavigationContext = React.createContext<\n NavigationProp | undefined\n>(undefined);\n\nexport default NavigationContext;\n","import type { Route } from '@react-navigation/routers';\nimport * as React from 'react';\n\n/**\n * Context which holds the route prop for a screen.\n */\nconst NavigationRouteContext = React.createContext | undefined>(\n undefined\n);\n\nexport default NavigationRouteContext;\n","import type { NavigationState, PartialState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR =\n \"Couldn't find a navigation context. Have you wrapped your app with 'NavigationContainer'? See https://reactnavigation.org/docs/getting-started for setup instructions.\";\n\nexport default React.createContext<{\n isDefault?: true;\n state?: NavigationState | PartialState;\n getKey: () => string | undefined;\n setKey: (key: string) => void;\n getState: () => NavigationState | PartialState | undefined;\n setState: (\n state: NavigationState | PartialState | undefined\n ) => void;\n getIsInitial: () => boolean;\n addOptionsGetter?: (\n key: string,\n getter: () => object | undefined | null\n ) => void;\n}>({\n isDefault: true,\n\n get getKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setKey(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get setState(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n get getIsInitial(): any {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n","import type { NavigationAction } from '@react-navigation/routers';\nimport * as React from 'react';\n\nconst UnhandledActionContext = React.createContext<\n ((action: NavigationAction) => void) | undefined\n>(undefined);\n\nexport default UnhandledActionContext;\n","import * as React from 'react';\n\nimport type { ListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add action listeners.\n */\nexport default function useChildListeners() {\n const { current: listeners } = React.useRef<{\n [K in keyof ListenerMap]: ListenerMap[K][];\n }>({\n action: [],\n focus: [],\n });\n\n const addListener = React.useCallback(\n (type: T, listener: ListenerMap[T]) => {\n // @ts-expect-error: listener should be correct type according to `type`\n listeners[type].push(listener);\n\n return () => {\n // @ts-expect-error: listener should be correct type according to `type`\n const index = listeners[type].indexOf(listener);\n\n listeners[type].splice(index, 1);\n };\n },\n [listeners]\n );\n\n return {\n listeners,\n addListener,\n };\n}\n","import * as React from 'react';\n\nimport type { EventArg, EventConsumer, EventEmitter } from './types';\n\nexport type NavigationEventEmitter> =\n EventEmitter & {\n create: (target: string) => EventConsumer;\n };\n\ntype Listeners = ((e: any) => void)[];\n\n/**\n * Hook to manage the event system used by the navigator to notify screens of various events.\n */\nexport default function useEventEmitter>(\n listen?: (e: any) => void\n): NavigationEventEmitter {\n const listenRef = React.useRef(listen);\n\n React.useEffect(() => {\n listenRef.current = listen;\n });\n\n const listeners = React.useRef>>({});\n\n const create = React.useCallback((target: string) => {\n const removeListener = (type: string, callback: (data: any) => void) => {\n const callbacks = listeners.current[type]\n ? listeners.current[type][target]\n : undefined;\n\n if (!callbacks) {\n return;\n }\n\n const index = callbacks.indexOf(callback);\n\n callbacks.splice(index, 1);\n };\n\n const addListener = (type: string, callback: (data: any) => void) => {\n listeners.current[type] = listeners.current[type] || {};\n listeners.current[type][target] = listeners.current[type][target] || [];\n listeners.current[type][target].push(callback);\n\n return () => removeListener(type, callback);\n };\n\n return {\n addListener,\n removeListener,\n };\n }, []);\n\n const emit = React.useCallback(\n ({\n type,\n data,\n target,\n canPreventDefault,\n }: {\n type: string;\n data?: any;\n target?: string;\n canPreventDefault?: boolean;\n }) => {\n const items = listeners.current[type] || {};\n\n // Copy the current list of callbacks in case they are mutated during execution\n const callbacks =\n target !== undefined\n ? items[target]?.slice()\n : ([] as Listeners)\n .concat(...Object.keys(items).map((t) => items[t]))\n .filter((cb, i, self) => self.lastIndexOf(cb) === i);\n\n const event: EventArg = {\n get type() {\n return type;\n },\n };\n\n if (target !== undefined) {\n Object.defineProperty(event, 'target', {\n enumerable: true,\n get() {\n return target;\n },\n });\n }\n\n if (data !== undefined) {\n Object.defineProperty(event, 'data', {\n enumerable: true,\n get() {\n return data;\n },\n });\n }\n\n if (canPreventDefault) {\n let defaultPrevented = false;\n\n Object.defineProperties(event, {\n defaultPrevented: {\n enumerable: true,\n get() {\n return defaultPrevented;\n },\n },\n preventDefault: {\n enumerable: true,\n value() {\n defaultPrevented = true;\n },\n },\n });\n }\n\n listenRef.current?.(event);\n\n callbacks?.forEach((cb) => cb(event));\n\n return event as any;\n },\n []\n );\n\n return React.useMemo(() => ({ create, emit }), [create, emit]);\n}\n","import * as React from 'react';\n\nimport type { KeyedListenerMap } from './NavigationBuilderContext';\n\n/**\n * Hook which lets child navigators add getters to be called for obtaining rehydrated state.\n */\nexport default function useKeyedChildListeners() {\n const { current: keyedListeners } = React.useRef<{\n [K in keyof KeyedListenerMap]: Record<\n string,\n KeyedListenerMap[K] | undefined\n >;\n }>({\n getState: {},\n beforeRemove: {},\n });\n\n const addKeyedListener = React.useCallback(\n (\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n ) => {\n keyedListeners[type][key] = listener;\n\n return () => {\n keyedListeners[type][key] = undefined;\n };\n },\n [keyedListeners]\n );\n\n return {\n keyedListeners,\n addKeyedListener,\n };\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type { NavigationProp } from './types';\n\ntype Options = {\n key?: string;\n navigation?: NavigationProp;\n options?: object | undefined;\n};\n\nexport default function useOptionsGetters({\n key,\n options,\n navigation,\n}: Options) {\n const optionsRef = React.useRef(options);\n const optionsGettersFromChildRef = React.useRef<\n Record object | undefined | null>\n >({});\n\n const { onOptionsChange } = React.useContext(NavigationBuilderContext);\n const { addOptionsGetter: parentAddOptionsGetter } = React.useContext(\n NavigationStateContext\n );\n\n const optionsChangeListener = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;\n\n if (isFocused && !hasChildren) {\n onOptionsChange(optionsRef.current ?? {});\n }\n }, [navigation, onOptionsChange]);\n\n React.useEffect(() => {\n optionsRef.current = options;\n optionsChangeListener();\n\n return navigation?.addListener('focus', optionsChangeListener);\n }, [navigation, options, optionsChangeListener]);\n\n const getOptionsFromListener = React.useCallback(() => {\n for (let key in optionsGettersFromChildRef.current) {\n if (optionsGettersFromChildRef.current.hasOwnProperty(key)) {\n const result = optionsGettersFromChildRef.current[key]?.();\n\n // null means unfocused route\n if (result !== null) {\n return result;\n }\n }\n }\n\n return null;\n }, []);\n\n const getCurrentOptions = React.useCallback(() => {\n const isFocused = navigation?.isFocused() ?? true;\n\n if (!isFocused) {\n return null;\n }\n\n const optionsFromListener = getOptionsFromListener();\n\n if (optionsFromListener !== null) {\n return optionsFromListener;\n }\n\n return optionsRef.current;\n }, [navigation, getOptionsFromListener]);\n\n React.useEffect(() => {\n return parentAddOptionsGetter?.(key!, getCurrentOptions);\n }, [getCurrentOptions, parentAddOptionsGetter, key]);\n\n const addOptionsGetter = React.useCallback(\n (key: string, getter: () => object | undefined | null) => {\n optionsGettersFromChildRef.current[key] = getter;\n optionsChangeListener();\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete optionsGettersFromChildRef.current[key];\n optionsChangeListener();\n };\n },\n [optionsChangeListener]\n );\n\n return {\n addOptionsGetter,\n getCurrentOptions,\n };\n}\n","import * as React from 'react';\n\nconst MISSING_CONTEXT_ERROR = \"Couldn't find a schedule context.\";\n\nexport const ScheduleUpdateContext = React.createContext<{\n scheduleUpdate: (callback: () => void) => void;\n flushUpdates: () => void;\n}>({\n scheduleUpdate() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n flushUpdates() {\n throw new Error(MISSING_CONTEXT_ERROR);\n },\n});\n\n/**\n * When screen config changes, we want to update the navigator in the same update phase.\n * However, navigation state is in the root component and React won't let us update it from a child.\n * This is a workaround for that, the scheduled update is stored in the ref without actually calling setState.\n * It lets all subsequent updates access the latest state so it stays correct.\n * Then we call setState during after the component updates.\n */\nexport default function useScheduleUpdate(callback: () => void) {\n const { scheduleUpdate, flushUpdates } = React.useContext(\n ScheduleUpdateContext\n );\n\n scheduleUpdate(callback);\n\n React.useEffect(flushUpdates);\n}\n","import * as React from 'react';\n\nconst UNINTIALIZED_STATE = {};\n\n/**\n * This is definitely not compatible with concurrent mode, but we don't have a solution for sync state yet.\n */\nexport default function useSyncState(initialState?: (() => T) | T) {\n const stateRef = React.useRef(UNINTIALIZED_STATE as any);\n const isSchedulingRef = React.useRef(false);\n const isMountedRef = React.useRef(true);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n if (stateRef.current === UNINTIALIZED_STATE) {\n stateRef.current =\n // @ts-expect-error: initialState is a function, but TypeScript doesn't think so\n typeof initialState === 'function' ? initialState() : initialState;\n }\n\n const [trackingState, setTrackingState] = React.useState(stateRef.current);\n\n const getState = React.useCallback(() => stateRef.current, []);\n\n const setState = React.useCallback((state: T) => {\n if (state === stateRef.current || !isMountedRef.current) {\n return;\n }\n\n stateRef.current = state;\n\n if (!isSchedulingRef.current) {\n setTrackingState(state);\n }\n }, []);\n\n const scheduleUpdate = React.useCallback((callback: () => void) => {\n isSchedulingRef.current = true;\n\n try {\n callback();\n } finally {\n isSchedulingRef.current = false;\n }\n }, []);\n\n const flushUpdates = React.useCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n // Make sure that the tracking state is up-to-date.\n // We call it unconditionally, but React should skip the update if state is unchanged.\n setTrackingState(stateRef.current);\n }, []);\n\n // If we're rendering and the tracking state is out of date, update it immediately\n // This will make sure that our updates are applied as early as possible.\n if (trackingState !== stateRef.current) {\n setTrackingState(stateRef.current);\n }\n\n const state = stateRef.current;\n\n React.useDebugValue(state);\n\n return [state, getState, setState, scheduleUpdate, flushUpdates] as const;\n}\n","import {\n CommonActions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type {\n NavigationContainerEventMap,\n NavigationContainerProps,\n NavigationContainerRef,\n} from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\n\ntype State = NavigationState | PartialState | undefined;\n\nconst serializableWarnings: string[] = [];\nconst duplicateNameWarnings: string[] = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = (\n state: InitialState | undefined\n): PartialState | undefined => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, routeNames, ...partialState } = state;\n\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map((route) => {\n if (route.state === undefined) {\n return route as Route & {\n state?: PartialState;\n };\n }\n\n return { ...route, state: getPartialState(route.state) };\n }),\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = React.forwardRef(\n function BaseNavigationContainer(\n {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children,\n }: NavigationContainerProps,\n ref?: React.Ref>\n ) {\n const parent = React.useContext(NavigationStateContext);\n\n if (!parent.isDefault && !independent) {\n throw new Error(\n \"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\"\n );\n }\n\n const [state, getState, setState, scheduleUpdate, flushUpdates] =\n useSyncState(() =>\n getPartialState(initialState == null ? undefined : initialState)\n );\n\n const isFirstMountRef = React.useRef(true);\n\n const navigatorKeyRef = React.useRef();\n\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const { listeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const dispatch = React.useCallback(\n (\n action:\n | NavigationAction\n | ((state: NavigationState) => NavigationAction)\n ) => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) => navigation.dispatch(action));\n }\n },\n [listeners.focus]\n );\n\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n\n const { result, handled } = listeners.focus[0]((navigation) =>\n navigation.canGoBack()\n );\n\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n\n const resetRoot = React.useCallback(\n (state?: PartialState | NavigationState) => {\n const target = state?.key ?? keyedListeners.getState.root?.().key;\n\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) =>\n navigation.dispatch({\n ...CommonActions.reset(state),\n target,\n })\n );\n }\n },\n [keyedListeners.getState, listeners.focus]\n );\n\n const getRootState = React.useCallback(() => {\n return keyedListeners.getState.root?.();\n }, [keyedListeners.getState]);\n\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n\n if (state == null) {\n return undefined;\n }\n\n const route = findFocusedRoute(state);\n\n return route as Route | undefined;\n }, [getRootState]);\n\n const emitter = useEventEmitter();\n\n const { addOptionsGetter, getCurrentOptions } = useOptionsGetters({});\n\n const navigation: NavigationContainerRef = React.useMemo(\n () => ({\n ...Object.keys(CommonActions).reduce((acc, name) => {\n acc[name] = (...args: any[]) =>\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...args));\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null,\n }),\n [\n canGoBack,\n dispatch,\n emitter,\n getCurrentOptions,\n getCurrentRoute,\n getRootState,\n listeners.focus,\n resetRoot,\n ]\n );\n\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n\n const onDispatchAction = React.useCallback(\n (action: NavigationAction, noop: boolean) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: { action, noop, stack: stackRef.current },\n });\n },\n [emitter]\n );\n\n const lastEmittedOptionsRef = React.useRef();\n\n const onOptionsChange = React.useCallback(\n (options) => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n\n lastEmittedOptionsRef.current = options;\n\n emitter.emit({\n type: 'options',\n data: { options },\n });\n },\n [emitter]\n );\n\n const stackRef = React.useRef();\n\n const builderContext = React.useMemo(\n () => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [addListener, addKeyedListener, onDispatchAction, onOptionsChange]\n );\n\n const scheduleContext = React.useMemo(\n () => ({ scheduleUpdate, flushUpdates }),\n [scheduleUpdate, flushUpdates]\n );\n\n const isInitialRef = React.useRef(true);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n React.useEffect(() => {\n const hydratedState = getRootState();\n\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n\n if (!serializableResult.serializable) {\n const { location, reason } = serializableResult;\n\n let path = '';\n let pointer: Record = hydratedState;\n let params = false;\n\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n\n pointer = pointer[curr];\n\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (\n !params &&\n typeof curr === 'number' &&\n prev === 'routes'\n ) {\n path += pointer?.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n\n const duplicateRouteNamesResult =\n checkDuplicateRouteNames(hydratedState);\n\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(\n (locations) => `\\n${locations.join(', ')}`\n )}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n\n emitter.emit({ type: 'state', data: { state } });\n\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n\n const defaultOnUnhandledAction = React.useCallback(\n (action: NavigationAction) => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const payload: Record | undefined = action.payload;\n\n let message = `The action '${action.type}'${\n payload ? ` with payload ${JSON.stringify(action.payload)}` : ''\n } was not handled by any navigator.`;\n\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload?.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n\n console.error(message);\n },\n []\n );\n\n let element = (\n \n \n \n \n \n {children}\n \n \n \n \n \n );\n\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = (\n \n \n {element}\n \n \n );\n }\n\n return element;\n }\n);\n\nexport default BaseNavigationContainer;\n","import type { ParamListBase } from '@react-navigation/routers';\n\nimport type { RouteGroupConfig } from './types';\n\n/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n>(_: RouteGroupConfig) {\n /* istanbul ignore next */\n return null;\n}\n","import {\n NavigationContext,\n NavigationProp,\n NavigationRouteContext,\n ParamListBase,\n RouteProp,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport Background from './Background';\nimport getDefaultHeaderHeight from './Header/getDefaultHeaderHeight';\nimport HeaderHeightContext from './Header/HeaderHeightContext';\nimport HeaderShownContext from './Header/HeaderShownContext';\n\ntype Props = {\n focused: boolean;\n modal?: boolean;\n navigation: NavigationProp;\n route: RouteProp;\n header: React.ReactNode;\n headerShown?: boolean;\n headerStatusBarHeight?: number;\n headerTransparent?: boolean;\n style?: StyleProp;\n children: React.ReactNode;\n};\n\nexport default function Screen(props: Props) {\n const dimensions = useSafeAreaFrame();\n const insets = useSafeAreaInsets();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n const parentHeaderHeight = React.useContext(HeaderHeightContext);\n\n const {\n focused,\n modal = false,\n header,\n headerShown = true,\n headerTransparent,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n navigation,\n route,\n children,\n style,\n } = props;\n\n const [headerHeight, setHeaderHeight] = React.useState(() =>\n getDefaultHeaderHeight(dimensions, modal, headerStatusBarHeight)\n );\n\n return (\n \n \n \n \n {children}\n \n \n \n {headerShown ? (\n \n \n {\n const { height } = e.nativeEvent.layout;\n\n setHeaderHeight(height);\n }}\n style={headerTransparent ? styles.absolute : null}\n >\n {header}\n \n \n \n ) : null}\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column-reverse',\n },\n // This is necessary to avoid applying 'column-reverse' to screen content\n content: {\n flex: 1,\n },\n absolute: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n },\n});\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport type * as React from 'react';\n\nimport Group from './Group';\nimport Screen from './Screen';\nimport type { EventMapBase, TypedNavigator } from './types';\n\n/**\n * Higher order component to create a `Navigator` and `Screen` pair.\n * Custom navigators should wrap the navigator component in `createNavigator` before exporting.\n *\n * @param Navigator The navigtor component to wrap.\n * @returns Factory method to create a `Navigator` and `Screen` pair.\n */\nexport default function createNavigatorFactory<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n NavigatorComponent extends React.ComponentType\n>(Navigator: NavigatorComponent) {\n return function (): TypedNavigator<\n ParamList,\n State,\n ScreenOptions,\n EventMap,\n typeof Navigator\n > {\n if (arguments[0] !== undefined) {\n throw new Error(\n \"Creating a navigator doesn't take an argument. Maybe you are trying to use React Navigation 4 API? See https://reactnavigation.org/docs/hello-react-navigation for the latest API and guides.\"\n );\n }\n\n return {\n Navigator,\n Group,\n Screen,\n };\n };\n}\n","import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext = React.createContext<\n { options?: object } | undefined\n>(undefined);\n\nexport default CurrentRenderContext;\n","import type {\n CommonActions,\n NavigationState,\n ParamListBase,\n PartialRoute,\n PartialState,\n Route,\n} from '@react-navigation/routers';\n\nimport type { NavigatorScreenParams, PathConfig, PathConfigMap } from './types';\n\ntype ConfigItem = {\n initialRouteName?: string;\n screens?: Record;\n};\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype NavigateAction = {\n type: 'NAVIGATE';\n payload: {\n name: string;\n params?: NavigatorScreenParams;\n path?: string;\n };\n};\n\nexport default function getActionFromState(\n state: PartialState,\n options?: Options\n): NavigateAction | CommonActions.Action | undefined {\n // Create a normalized configs object which will be easier to use\n const normalizedConfig = options\n ? createNormalizedConfigItem(options as PathConfig | string)\n : {};\n\n const routes =\n state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;\n\n if (routes.length === 0) {\n return undefined;\n }\n\n if (\n !(\n (routes.length === 1 && routes[0].key === undefined) ||\n (routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === normalizedConfig?.initialRouteName &&\n routes[1].key === undefined)\n )\n ) {\n return {\n type: 'RESET',\n payload: state,\n };\n }\n\n const route = state.routes[state.index ?? state.routes.length - 1];\n\n let current: PartialState | undefined = route?.state;\n let config: ConfigItem | undefined = normalizedConfig?.screens?.[route?.name];\n let params = { ...route.params } as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n\n let payload = route\n ? { name: route.name, path: route.path, params }\n : undefined;\n\n while (current) {\n if (current.routes.length === 0) {\n return undefined;\n }\n\n const routes =\n current.index != null\n ? current.routes.slice(0, current.index + 1)\n : current.routes;\n\n const route: Route | PartialRoute> =\n routes[routes.length - 1];\n\n // Explicitly set to override existing value when merging params\n Object.assign(params, {\n initial: undefined,\n screen: undefined,\n params: undefined,\n state: undefined,\n });\n\n if (routes.length === 1 && routes[0].key === undefined) {\n params.initial = true;\n params.screen = route.name;\n } else if (\n routes.length === 2 &&\n routes[0].key === undefined &&\n routes[0].name === config?.initialRouteName &&\n routes[1].key === undefined\n ) {\n params.initial = false;\n params.screen = route.name;\n } else {\n params.state = current;\n break;\n }\n\n if (route.state) {\n params.params = { ...route.params };\n params = params.params as NavigatorScreenParams<\n ParamListBase,\n NavigationState\n >;\n } else {\n params.path = route.path;\n params.params = route.params;\n }\n\n current = route.state;\n config = config?.screens?.[route.name];\n }\n\n if (!payload) {\n return;\n }\n\n // Try to construct payload for a `NAVIGATE` action from the state\n // This lets us preserve the navigation state and not lose it\n return {\n type: 'NAVIGATE',\n payload,\n };\n}\n\nconst createNormalizedConfigItem = (config: PathConfig | string) =>\n typeof config === 'object' && config != null\n ? {\n initialRouteName: config.initialRouteName,\n screens:\n config.screens != null\n ? createNormalizedConfigs(config.screens)\n : undefined,\n }\n : {};\n\nconst createNormalizedConfigs = (options: PathConfigMap) =>\n Object.entries(options).reduce>((acc, [k, v]) => {\n acc[k] = createNormalizedConfigItem(v);\n return acc;\n }, {});\n","import type {\n NavigationState,\n ParamListBase,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { RouteProp } from './types';\n\ntype RouteCache = Map, RouteProp>;\n\n/**\n * Utilites such as `getFocusedRouteNameFromRoute` need to access state.\n * So we need a way to suppress the warning for those use cases.\n * This is fine since they are internal utilities and this is not public API.\n */\nexport const CHILD_STATE = Symbol('CHILD_STATE');\n\n/**\n * Hook to cache route props for each screen in the navigator.\n * This lets add warnings and modifications to the route object but keep references between renders.\n */\nexport default function useRouteCache(\n routes: State['routes']\n) {\n // Cache object which holds route objects for each screen\n const cache = React.useMemo(() => ({ current: new Map() as RouteCache }), []);\n\n if (process.env.NODE_ENV === 'production') {\n // We don't want the overhead of creating extra maps every render in prod\n return routes;\n }\n\n cache.current = routes.reduce((acc, route) => {\n const previous = cache.current.get(route);\n\n if (previous) {\n // If a cached route object already exists, reuse it\n acc.set(route, previous);\n } else {\n const { state, ...proxy } = route;\n\n Object.defineProperty(proxy, CHILD_STATE, {\n enumerable: false,\n value: state,\n });\n\n acc.set(route, proxy);\n }\n\n return acc;\n }, new Map() as RouteCache);\n\n return Array.from(cache.current.values());\n}\n","// Object.fromEntries is not available in older iOS versions\nexport default function fromEntries(\n entries: (readonly [K, V])[]\n) {\n return entries.reduce((acc, [k, v]) => {\n if (acc.hasOwnProperty(k)) {\n throw new Error(`A value for key '${k}' already exists in the object.`);\n }\n\n acc[k] = v;\n return acc;\n }, {} as Record);\n}\n","const formatToList = (items: string[]) =>\n items.map((key) => `- ${key}`).join('\\n');\n\nexport default function validatePathConfig(config: any, root = true) {\n const validKeys = ['initialRouteName', 'screens'];\n\n if (!root) {\n validKeys.push('path', 'exact', 'stringify', 'parse');\n }\n\n const invalidKeys = Object.keys(config).filter(\n (key) => !validKeys.includes(key)\n );\n\n if (invalidKeys.length) {\n throw new Error(\n `Found invalid properties in the configuration:\\n${formatToList(\n invalidKeys\n )}\\n\\nDid you forget to specify them under a 'screens' property?\\n\\nYou can only specify the following properties:\\n${formatToList(\n validKeys\n )}\\n\\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`\n );\n }\n\n if (config.screens) {\n Object.entries(config.screens).forEach(([_, value]) => {\n if (typeof value !== 'string') {\n validatePathConfig(value, false);\n }\n });\n }\n}\n","import type {\n NavigationState,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as queryString from 'query-string';\n\nimport fromEntries from './fromEntries';\nimport type { PathConfig, PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype State = NavigationState | Omit, 'stale'>;\n\ntype StringifyConfig = Record string>;\n\ntype ConfigItem = {\n pattern?: string;\n stringify?: StringifyConfig;\n screens?: Record;\n};\n\nconst getActiveRoute = (state: State): { name: string; params?: object } => {\n const route =\n typeof state.index === 'number'\n ? state.routes[state.index]\n : state.routes[state.routes.length - 1];\n\n if (route.state) {\n return getActiveRoute(route.state);\n }\n\n return route;\n};\n\n/**\n * Utility to serialize a navigation state object to a path string.\n *\n * @example\n * ```js\n * getPathFromState(\n * {\n * routes: [\n * {\n * name: 'Chat',\n * params: { author: 'Jane', id: 42 },\n * },\n * ],\n * },\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * stringify: { author: author => author.toLowerCase() }\n * }\n * }\n * }\n * )\n * ```\n *\n * @param state Navigation state to serialize.\n * @param options Extra options to fine-tune how to serialize the path.\n * @returns Path representing the state, e.g. /foo/bar?count=42.\n */\nexport default function getPathFromState(\n state: State,\n options?: Options\n): string {\n if (state == null) {\n throw Error(\n \"Got 'undefined' for the navigation state. You must pass a valid state object.\"\n );\n }\n\n if (options) {\n validatePathConfig(options);\n }\n\n // Create a normalized configs object which will be easier to use\n const configs: Record = options?.screens\n ? createNormalizedConfigs(options?.screens)\n : {};\n\n let path = '/';\n let current: State | undefined = state;\n\n const allParams: Record = {};\n\n while (current) {\n let index = typeof current.index === 'number' ? current.index : 0;\n let route = current.routes[index] as Route & {\n state?: State;\n };\n\n let pattern: string | undefined;\n\n let focusedParams: Record | undefined;\n let focusedRoute = getActiveRoute(state);\n let currentOptions = configs;\n\n // Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined\n let nestedRouteNames = [];\n\n let hasNext = true;\n\n while (route.name in currentOptions && hasNext) {\n pattern = currentOptions[route.name].pattern;\n\n nestedRouteNames.push(route.name);\n\n if (route.params) {\n const stringify = currentOptions[route.name]?.stringify;\n\n const currentParams = fromEntries(\n Object.entries(route.params).map(([key, value]) => [\n key,\n stringify?.[key] ? stringify[key](value) : String(value),\n ])\n );\n\n if (pattern) {\n Object.assign(allParams, currentParams);\n }\n\n if (focusedRoute === route) {\n // If this is the focused route, keep the params for later use\n // We save it here since it's been stringified already\n focusedParams = { ...currentParams };\n\n pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n // eslint-disable-next-line no-loop-func\n .forEach((p) => {\n const name = getParamName(p);\n\n // Remove the params present in the pattern since we'll only use the rest for query string\n if (focusedParams) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[name];\n }\n });\n }\n }\n\n // If there is no `screens` property or no nested state, we return pattern\n if (!currentOptions[route.name].screens || route.state === undefined) {\n hasNext = false;\n } else {\n index =\n typeof route.state.index === 'number'\n ? route.state.index\n : route.state.routes.length - 1;\n\n const nextRoute = route.state.routes[index];\n const nestedConfig = currentOptions[route.name].screens;\n\n // if there is config for next route name, we go deeper\n if (nestedConfig && nextRoute.name in nestedConfig) {\n route = nextRoute as Route & { state?: State };\n currentOptions = nestedConfig;\n } else {\n // If not, there is no sense in going deeper in config\n hasNext = false;\n }\n }\n }\n\n if (pattern === undefined) {\n pattern = nestedRouteNames.join('/');\n }\n\n if (currentOptions[route.name] !== undefined) {\n path += pattern\n .split('/')\n .map((p) => {\n const name = getParamName(p);\n\n // We don't know what to show for wildcard patterns\n // Showing the route name seems ok, though whatever we show here will be incorrect\n // Since the page doesn't actually exist\n if (p === '*') {\n return route.name;\n }\n\n // If the path has a pattern for a param, put the param in the path\n if (p.startsWith(':')) {\n const value = allParams[name];\n\n if (value === undefined && p.endsWith('?')) {\n // Optional params without value assigned in route.params should be ignored\n return '';\n }\n\n return encodeURIComponent(value);\n }\n\n return encodeURIComponent(p);\n })\n .join('/');\n } else {\n path += encodeURIComponent(route.name);\n }\n\n if (!focusedParams) {\n focusedParams = focusedRoute.params;\n }\n\n if (route.state) {\n path += '/';\n } else if (focusedParams) {\n for (let param in focusedParams) {\n if (focusedParams[param] === 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete focusedParams[param];\n }\n }\n\n const query = queryString.stringify(focusedParams, { sort: false });\n\n if (query) {\n path += `?${query}`;\n }\n }\n\n current = route.state;\n }\n\n // Remove multiple as well as trailing slashes\n path = path.replace(/\\/+/g, '/');\n path = path.length > 1 ? path.replace(/\\/$/, '') : path;\n\n return path;\n}\n\nconst getParamName = (pattern: string) =>\n pattern.replace(/^:/, '').replace(/\\?$/, '');\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst createConfigItem = (\n config: PathConfig | string,\n parentPattern?: string\n): ConfigItem => {\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n return { pattern };\n }\n\n // If an object is specified as the value (e.g. Foo: { ... }),\n // It can have `path` property and `screens` prop which has nested configs\n let pattern: string | undefined;\n\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n const screens = config.screens\n ? createNormalizedConfigs(config.screens, pattern)\n : undefined;\n\n return {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern: pattern?.split('/').filter(Boolean).join('/'),\n stringify: config.stringify,\n screens,\n };\n};\n\nconst createNormalizedConfigs = (\n options: PathConfigMap,\n pattern?: string\n): Record =>\n fromEntries(\n Object.entries(options).map(([name, c]) => {\n const result = createConfigItem(c, pattern);\n\n return [name, result];\n })\n );\n","import type {\n InitialState,\n NavigationState,\n PartialState,\n} from '@react-navigation/routers';\nimport escape from 'escape-string-regexp';\nimport * as queryString from 'query-string';\n\nimport findFocusedRoute from './findFocusedRoute';\nimport type { PathConfigMap } from './types';\nimport validatePathConfig from './validatePathConfig';\n\ntype Options = {\n initialRouteName?: string;\n screens: PathConfigMap;\n};\n\ntype ParseConfig = Record any>;\n\ntype RouteConfig = {\n screen: string;\n regex?: RegExp;\n path: string;\n pattern: string;\n routeNames: string[];\n parse?: ParseConfig;\n};\n\ntype InitialRouteConfig = {\n initialRouteName: string;\n parentScreens: string[];\n};\n\ntype ResultState = PartialState & {\n state?: ResultState;\n};\n\ntype ParsedRoute = {\n name: string;\n path?: string;\n params?: Record | undefined;\n};\n\n/**\n * Utility to parse a path string to initial state object accepted by the container.\n * This is useful for deep linking when we need to handle the incoming URL.\n *\n * @example\n * ```js\n * getStateFromPath(\n * '/chat/jane/42',\n * {\n * screens: {\n * Chat: {\n * path: 'chat/:author/:id',\n * parse: { id: Number }\n * }\n * }\n * }\n * )\n * ```\n * @param path Path string to parse and convert, e.g. /foo/bar?count=42.\n * @param options Extra options to fine-tune how to parse the path.\n */\nexport default function getStateFromPath(\n path: string,\n options?: Options\n): ResultState | undefined {\n if (options) {\n validatePathConfig(options);\n }\n\n let initialRoutes: InitialRouteConfig[] = [];\n\n if (options?.initialRouteName) {\n initialRoutes.push({\n initialRouteName: options.initialRouteName,\n parentScreens: [],\n });\n }\n\n const screens = options?.screens;\n\n let remaining = path\n .replace(/\\/+/g, '/') // Replace multiple slash (//) with single ones\n .replace(/^\\//, '') // Remove extra leading slash\n .replace(/\\?.*$/, ''); // Remove query params which we will handle later\n\n // Make sure there is a trailing slash\n remaining = remaining.endsWith('/') ? remaining : `${remaining}/`;\n\n if (screens === undefined) {\n // When no config is specified, use the path segments as route names\n const routes = remaining\n .split('/')\n .filter(Boolean)\n .map((segment) => {\n const name = decodeURIComponent(segment);\n return { name };\n });\n\n if (routes.length) {\n return createNestedStateObject(path, routes, initialRoutes);\n }\n\n return undefined;\n }\n\n // Create a normalized configs array which will be easier to use\n const configs = ([] as RouteConfig[])\n .concat(\n ...Object.keys(screens).map((key) =>\n createNormalizedConfigs(\n key,\n screens as PathConfigMap,\n [],\n initialRoutes,\n []\n )\n )\n )\n .sort((a, b) => {\n // Sort config so that:\n // - the most exhaustive ones are always at the beginning\n // - patterns with wildcard are always at the end\n\n // If 2 patterns are same, move the one with less route names up\n // This is an error state, so it's only useful for consistent error messages\n if (a.pattern === b.pattern) {\n return b.routeNames.join('>').localeCompare(a.routeNames.join('>'));\n }\n\n // If one of the patterns starts with the other, it's more exhaustive\n // So move it up\n if (a.pattern.startsWith(b.pattern)) {\n return -1;\n }\n\n if (b.pattern.startsWith(a.pattern)) {\n return 1;\n }\n\n const aParts = a.pattern.split('/');\n const bParts = b.pattern.split('/');\n\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n // if b is longer, b get higher priority\n if (aParts[i] == null) {\n return 1;\n }\n // if a is longer, a get higher priority\n if (bParts[i] == null) {\n return -1;\n }\n const aWildCard = aParts[i] === '*' || aParts[i].startsWith(':');\n const bWildCard = bParts[i] === '*' || bParts[i].startsWith(':');\n // if both are wildcard we compare next component\n if (aWildCard && bWildCard) {\n continue;\n }\n // if only a is wild card, b get higher priority\n if (aWildCard) {\n return 1;\n }\n // if only b is wild card, a get higher priority\n if (bWildCard) {\n return -1;\n }\n }\n return bParts.length - aParts.length;\n });\n\n // Check for duplicate patterns in the config\n configs.reduce>((acc, config) => {\n if (acc[config.pattern]) {\n const a = acc[config.pattern].routeNames;\n const b = config.routeNames;\n\n // It's not a problem if the path string omitted from a inner most screen\n // For example, it's ok if a path resolves to `A > B > C` or `A > B`\n const intersects =\n a.length > b.length\n ? b.every((it, i) => a[i] === it)\n : a.every((it, i) => b[i] === it);\n\n if (!intersects) {\n throw new Error(\n `Found conflicting screens with the same pattern. The pattern '${\n config.pattern\n }' resolves to both '${a.join(' > ')}' and '${b.join(\n ' > '\n )}'. Patterns must be unique and cannot resolve to more than one screen.`\n );\n }\n }\n\n return Object.assign(acc, {\n [config.pattern]: config,\n });\n }, {});\n\n if (remaining === '/') {\n // We need to add special handling of empty path so navigation to empty path also works\n // When handling empty path, we should only look at the root level config\n const match = configs.find(\n (config) =>\n config.path === '' &&\n config.routeNames.every(\n // Make sure that none of the parent configs have a non-empty path defined\n (name) => !configs.find((c) => c.screen === name)?.path\n )\n );\n\n if (match) {\n return createNestedStateObject(\n path,\n match.routeNames.map((name) => ({ name })),\n initialRoutes,\n configs\n );\n }\n\n return undefined;\n }\n\n let result: PartialState | undefined;\n let current: PartialState | undefined;\n\n // We match the whole path against the regex instead of segments\n // This makes sure matches such as wildcard will catch any unmatched routes, even if nested\n const { routes, remainingPath } = matchAgainstConfigs(\n remaining,\n configs.map((c) => ({\n ...c,\n // Add `$` to the regex to make sure it matches till end of the path and not just beginning\n regex: c.regex ? new RegExp(c.regex.source + '$') : undefined,\n }))\n );\n\n if (routes !== undefined) {\n // This will always be empty if full path matched\n current = createNestedStateObject(path, routes, initialRoutes, configs);\n remaining = remainingPath;\n result = current;\n }\n\n if (current == null || result == null) {\n return undefined;\n }\n\n return result;\n}\n\nconst joinPaths = (...paths: string[]): string =>\n ([] as string[])\n .concat(...paths.map((p) => p.split('/')))\n .filter(Boolean)\n .join('/');\n\nconst matchAgainstConfigs = (remaining: string, configs: RouteConfig[]) => {\n let routes: ParsedRoute[] | undefined;\n let remainingPath = remaining;\n\n // Go through all configs, and see if the next path segment matches our regex\n for (const config of configs) {\n if (!config.regex) {\n continue;\n }\n\n const match = remainingPath.match(config.regex);\n\n // If our regex matches, we need to extract params from the path\n if (match) {\n const matchedParams = config.pattern\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n .reduce>(\n (acc, p, i) =>\n Object.assign(acc, {\n // The param segments appear every second item starting from 2 in the regex match result\n [p]: match![(i + 1) * 2].replace(/\\//, ''),\n }),\n {}\n );\n\n routes = config.routeNames.map((name) => {\n const config = configs.find((c) => c.screen === name);\n const params = config?.path\n ?.split('/')\n .filter((p) => p.startsWith(':'))\n .reduce>((acc, p) => {\n const value = matchedParams[p];\n\n if (value) {\n const key = p.replace(/^:/, '').replace(/\\?$/, '');\n acc[key] = config.parse?.[key] ? config.parse[key](value) : value;\n }\n\n return acc;\n }, {});\n\n if (params && Object.keys(params).length) {\n return { name, params };\n }\n\n return { name };\n });\n\n remainingPath = remainingPath.replace(match[1], '');\n\n break;\n }\n }\n\n return { routes, remainingPath };\n};\n\nconst createNormalizedConfigs = (\n screen: string,\n routeConfig: PathConfigMap,\n routeNames: string[] = [],\n initials: InitialRouteConfig[],\n parentScreens: string[],\n parentPattern?: string\n): RouteConfig[] => {\n const configs: RouteConfig[] = [];\n\n routeNames.push(screen);\n\n parentScreens.push(screen);\n\n // @ts-expect-error: we can't strongly typecheck this for now\n const config = routeConfig[screen];\n\n if (typeof config === 'string') {\n // If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern\n const pattern = parentPattern ? joinPaths(parentPattern, config) : config;\n\n configs.push(createConfigItem(screen, routeNames, pattern, config));\n } else if (typeof config === 'object') {\n let pattern: string | undefined;\n\n // if an object is specified as the value (e.g. Foo: { ... }),\n // it can have `path` property and\n // it could have `screens` prop which has nested configs\n if (typeof config.path === 'string') {\n if (config.exact && config.path === undefined) {\n throw new Error(\n \"A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.\"\n );\n }\n\n pattern =\n config.exact !== true\n ? joinPaths(parentPattern || '', config.path || '')\n : config.path || '';\n\n configs.push(\n createConfigItem(\n screen,\n routeNames,\n pattern!,\n config.path,\n config.parse\n )\n );\n }\n\n if (config.screens) {\n // property `initialRouteName` without `screens` has no purpose\n if (config.initialRouteName) {\n initials.push({\n initialRouteName: config.initialRouteName,\n parentScreens,\n });\n }\n\n Object.keys(config.screens).forEach((nestedConfig) => {\n const result = createNormalizedConfigs(\n nestedConfig,\n config.screens as PathConfigMap,\n routeNames,\n initials,\n [...parentScreens],\n pattern ?? parentPattern\n );\n\n configs.push(...result);\n });\n }\n }\n\n routeNames.pop();\n\n return configs;\n};\n\nconst createConfigItem = (\n screen: string,\n routeNames: string[],\n pattern: string,\n path: string,\n parse?: ParseConfig\n): RouteConfig => {\n // Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.\n pattern = pattern.split('/').filter(Boolean).join('/');\n\n const regex = pattern\n ? new RegExp(\n `^(${pattern\n .split('/')\n .map((it) => {\n if (it.startsWith(':')) {\n return `(([^/]+\\\\/)${it.endsWith('?') ? '?' : ''})`;\n }\n\n return `${it === '*' ? '.*' : escape(it)}\\\\/`;\n })\n .join('')})`\n )\n : undefined;\n\n return {\n screen,\n regex,\n pattern,\n path,\n // The routeNames array is mutated, so copy it to keep the current state\n routeNames: [...routeNames],\n parse,\n };\n};\n\nconst findParseConfigForRoute = (\n routeName: string,\n flatConfig: RouteConfig[]\n): ParseConfig | undefined => {\n for (const config of flatConfig) {\n if (routeName === config.routeNames[config.routeNames.length - 1]) {\n return config.parse;\n }\n }\n\n return undefined;\n};\n\n// Try to find an initial route connected with the one passed\nconst findInitialRoute = (\n routeName: string,\n parentScreens: string[],\n initialRoutes: InitialRouteConfig[]\n): string | undefined => {\n for (const config of initialRoutes) {\n if (parentScreens.length === config.parentScreens.length) {\n let sameParents = true;\n for (let i = 0; i < parentScreens.length; i++) {\n if (parentScreens[i].localeCompare(config.parentScreens[i]) !== 0) {\n sameParents = false;\n break;\n }\n }\n if (sameParents) {\n return routeName !== config.initialRouteName\n ? config.initialRouteName\n : undefined;\n }\n }\n }\n return undefined;\n};\n\n// returns state object with values depending on whether\n// it is the end of state and if there is initialRoute for this level\nconst createStateObject = (\n initialRoute: string | undefined,\n route: ParsedRoute,\n isEmpty: boolean\n): InitialState => {\n if (isEmpty) {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, route],\n };\n } else {\n return {\n routes: [route],\n };\n }\n } else {\n if (initialRoute) {\n return {\n index: 1,\n routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }],\n };\n } else {\n return {\n routes: [{ ...route, state: { routes: [] } }],\n };\n }\n }\n};\n\nconst createNestedStateObject = (\n path: string,\n routes: ParsedRoute[],\n initialRoutes: InitialRouteConfig[],\n flatConfig?: RouteConfig[]\n) => {\n let state: InitialState;\n let route = routes.shift() as ParsedRoute;\n const parentScreens: string[] = [];\n\n let initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n parentScreens.push(route.name);\n\n state = createStateObject(initialRoute, route, routes.length === 0);\n\n if (routes.length > 0) {\n let nestedState = state;\n\n while ((route = routes.shift() as ParsedRoute)) {\n initialRoute = findInitialRoute(route.name, parentScreens, initialRoutes);\n\n const nestedStateIndex =\n nestedState.index || nestedState.routes.length - 1;\n\n nestedState.routes[nestedStateIndex].state = createStateObject(\n initialRoute,\n route,\n routes.length === 0\n );\n\n if (routes.length > 0) {\n nestedState = nestedState.routes[nestedStateIndex]\n .state as InitialState;\n }\n\n parentScreens.push(route.name);\n }\n }\n\n route = findFocusedRoute(state) as ParsedRoute;\n route.path = path;\n\n const params = parseQueryParams(\n path,\n flatConfig ? findParseConfigForRoute(route.name, flatConfig) : undefined\n );\n\n if (params) {\n route.params = { ...route.params, ...params };\n }\n\n return state;\n};\n\nconst parseQueryParams = (\n path: string,\n parseConfig?: Record any>\n) => {\n const query = path.split('?')[1];\n const params = queryString.parse(query);\n\n if (parseConfig) {\n Object.keys(params).forEach((name) => {\n if (parseConfig[name] && typeof params[name] === 'string') {\n params[name] = parseConfig[name](params[name] as string);\n }\n });\n }\n\n return Object.keys(params).length ? params : undefined;\n};\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\n/**\n * Context which holds the navigation helpers of the parent navigator.\n * Navigators should use this context in their view component.\n */\nconst NavigationHelpersContext = React.createContext<\n NavigationHelpers | undefined\n>(undefined);\n\nexport default NavigationHelpersContext;\n","import type {\n DefaultRouterOptions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport type * as React from 'react';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace ReactNavigation {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n interface RootParamList {}\n }\n}\n\ntype Keyof = Extract;\n\nexport type DefaultNavigatorOptions<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = DefaultRouterOptions> & {\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n /**\n * Event listeners for all the screens in the navigator.\n */\n screenListeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n /**\n * Default options for all screens under this navigator.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n /**\n * Default options specified by the navigator.\n * It receives the custom options in the arguments if a function is specified.\n */\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n};\n\nexport type EventMapBase = Record<\n string,\n { data?: any; canPreventDefault?: boolean }\n>;\n\nexport type EventMapCore = {\n focus: { data: undefined };\n blur: { data: undefined };\n state: { data: { state: State } };\n beforeRemove: { data: { action: NavigationAction }; canPreventDefault: true };\n};\n\nexport type EventArg<\n EventName extends string,\n CanPreventDefault extends boolean | undefined = false,\n Data = undefined\n> = {\n /**\n * Type of the event (e.g. `focus`, `blur`)\n */\n readonly type: EventName;\n readonly target?: string;\n} & (CanPreventDefault extends true\n ? {\n /**\n * Whether `event.preventDefault()` was called on this event object.\n */\n readonly defaultPrevented: boolean;\n /**\n * Prevent the default action which happens on this event.\n */\n preventDefault(): void;\n }\n : {}) &\n (undefined extends Data\n ? { readonly data?: Readonly }\n : { readonly data: Readonly });\n\nexport type EventListenerCallback<\n EventMap extends EventMapBase,\n EventName extends keyof EventMap\n> = (\n e: EventArg<\n Extract,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >\n) => void;\n\nexport type EventConsumer = {\n /**\n * Subscribe to events from the parent navigator.\n *\n * @param type Type of the event (e.g. `focus`, `blur`)\n * @param callback Callback listener which is executed upon receiving the event.\n */\n addListener>(\n type: EventName,\n callback: EventListenerCallback\n ): () => void;\n removeListener>(\n type: EventName,\n callback: EventListenerCallback\n ): void;\n};\n\nexport type EventEmitter = {\n /**\n * Emit an event to child screens.\n *\n * @param options.type Type of the event (e.g. `focus`, `blur`)\n * @param [options.data] Optional information regarding the event.\n * @param [options.target] Key of the target route which should receive the event.\n * If not specified, all routes receive the event.\n */\n emit>(\n options: {\n type: EventName;\n target?: string;\n } & (EventMap[EventName]['canPreventDefault'] extends true\n ? { canPreventDefault: true }\n : {}) &\n (undefined extends EventMap[EventName]['data']\n ? { data?: EventMap[EventName]['data'] }\n : { data: EventMap[EventName]['data'] })\n ): EventArg<\n EventName,\n EventMap[EventName]['canPreventDefault'],\n EventMap[EventName]['data']\n >;\n};\n\nexport class PrivateValueStore {\n /**\n * UGLY HACK! DO NOT USE THE TYPE!!!\n *\n * TypeScript requires a type to be used to be able to infer it.\n * The type should exist as its own without any operations such as union.\n * So we need to figure out a way to store this type in a property.\n * The problem with a normal property is that it shows up in intelliSense.\n * Adding private keyword works, but the annotation is stripped away in declaration.\n * Turns out if we use an empty string, it doesn't show up in intelliSense.\n */\n protected ''?: { a: A; b: B; c: C };\n}\n\ntype NavigationHelpersCommon<\n ParamList extends ParamListBase,\n State extends NavigationState = NavigationState\n> = {\n /**\n * Dispatch an action or an update function to the router.\n * The update function will receive the current state,\n *\n * @param action Action object or update function.\n */\n dispatch(\n action: NavigationAction | ((state: State) => NavigationAction)\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param name Name of the route to navigate to.\n * @param [params] Params object for the route.\n */\n navigate(\n ...args: undefined extends ParamList[RouteName]\n ? [screen: RouteName] | [screen: RouteName, params: ParamList[RouteName]]\n : [screen: RouteName, params: ParamList[RouteName]]\n ): void;\n\n /**\n * Navigate to a route in current navigation tree.\n *\n * @param route Object with `key` or `name` for the route to navigate to, and a `params` object.\n */\n navigate(\n options:\n | { key: string; params?: ParamList[RouteName]; merge?: boolean }\n | {\n name: RouteName;\n key?: string;\n params: ParamList[RouteName];\n merge?: boolean;\n }\n ): void;\n\n /**\n * Reset the navigation state to the provided state.\n *\n * @param state Navigation state object.\n */\n reset(state: PartialState | State): void;\n\n /**\n * Go back to the previous route in history.\n */\n goBack(): void;\n\n /**\n * Check if the screen is focused. The method returns `true` if focused, `false` otherwise.\n * Note that this method doesn't re-render screen when the focus changes. So don't use it in `render`.\n * To get notified of focus changes, use `addListener('focus', cb)` and `addListener('blur', cb)`.\n * To conditionally render content based on focus state, use the `useIsFocused` hook.\n */\n isFocused(): boolean;\n\n /**\n * Check if dispatching back action will be handled by navigation.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n canGoBack(): boolean;\n\n /**\n * Returns the navigation prop from the parent navigator,\n */\n getParent | undefined>(): T;\n\n /**\n * Returns the navigator's state.\n * Note that this method doesn't re-render screen when the result changes. So don't use it in `render`.\n */\n getState(): State;\n} & PrivateValueStore;\n\nexport type NavigationHelpers<\n ParamList extends ParamListBase,\n EventMap extends EventMapBase = {}\n> = NavigationHelpersCommon &\n EventEmitter & {\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(\n params: Partial\n ): void;\n };\n\nexport type NavigationContainerProps = {\n /**\n * Initial navigation state for the child navigators.\n */\n initialState?: InitialState;\n /**\n * Callback which is called with the latest navigation state when it changes.\n */\n onStateChange?: (state: NavigationState | undefined) => void;\n /**\n * Callback which is called when an action is not handled.\n */\n onUnhandledAction?: (action: NavigationAction) => void;\n /**\n * Whether this navigation container should be independent of parent containers.\n * If this is not set to `true`, this container cannot be nested inside another container.\n * Setting it to `true` disconnects any children navigators from parent container.\n */\n independent?: boolean;\n /**\n * Children elements to render.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationProp<\n ParamList extends {},\n RouteName extends keyof ParamList = Keyof,\n State extends NavigationState = NavigationState,\n ScreenOptions extends {} = {},\n EventMap extends EventMapBase = {}\n> = NavigationHelpersCommon & {\n /**\n * Update the param object for the route.\n * The new params will be shallow merged with the old one.\n *\n * @param params Params object for the current route.\n */\n setParams(params: Partial): void;\n\n /**\n * Update the options for the route.\n * The options object will be shallow merged with default options object.\n *\n * @param options Options object for the route.\n */\n setOptions(options: Partial): void;\n} & EventConsumer> &\n PrivateValueStore;\n\nexport type RouteProp<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList = Keyof\n> = Route, ParamList[RouteName]>;\n\nexport type CompositeNavigationProp<\n A extends NavigationProp,\n B extends NavigationHelpersCommon\n> = Omit> &\n NavigationProp<\n /**\n * Param list from both navigation objects needs to be combined\n * For example, we should be able to navigate to screens in both A and B\n */\n (A extends NavigationHelpersCommon ? T : never) &\n (B extends NavigationHelpersCommon ? U : never),\n /**\n * The route name should refer to the route name specified in the first type\n * Ideally it should work for any of them, but it's not possible to infer that way\n */\n A extends NavigationProp ? R : string,\n /**\n * The type of state should refer to the state specified in the first type\n */\n A extends NavigationProp ? S : NavigationState,\n /**\n * Screen options from both navigation objects needs to be combined\n * This allows typechecking `setOptions`\n */\n (A extends NavigationProp ? O : {}) &\n (B extends NavigationProp ? P : {}),\n /**\n * Event consumer config should refer to the config specified in the first type\n * This allows typechecking `addListener`/`removeListener`\n */\n A extends NavigationProp ? E : {}\n >;\n\nexport type CompositeScreenProps<\n A extends {\n navigation: NavigationProp;\n route: RouteProp;\n },\n B extends {\n navigation: NavigationHelpersCommon;\n }\n> = {\n navigation: CompositeNavigationProp;\n route: A['route'];\n};\n\nexport type Descriptor<\n ScreenOptions extends {},\n Navigation extends NavigationProp,\n Route extends RouteProp\n> = {\n /**\n * Render the component associated with this route.\n */\n render(): JSX.Element;\n\n /**\n * Options for the route.\n */\n options: ScreenOptions;\n\n /**\n * Route object for the screen\n */\n route: Route;\n\n /**\n * Navigation object for the screen\n */\n navigation: Navigation;\n};\n\nexport type ScreenListeners<\n State extends NavigationState,\n EventMap extends EventMapBase\n> = Partial<{\n [EventName in keyof (EventMap & EventMapCore)]: EventListenerCallback<\n EventMap,\n EventName\n >;\n}>;\n\nexport type RouteConfigComponent<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList\n> =\n | {\n /**\n * React component to render for this screen.\n */\n component: React.ComponentType;\n getComponent?: never;\n children?: never;\n }\n | {\n /**\n * Lazily get a React component to render for this screen.\n */\n getComponent: () => React.ComponentType;\n component?: never;\n children?: never;\n }\n | {\n /**\n * Render callback to render content of this screen.\n */\n children: (props: {\n route: RouteProp;\n navigation: any;\n }) => React.ReactNode;\n component?: never;\n getComponent?: never;\n };\n\nexport type RouteConfig<\n ParamList extends ParamListBase,\n RouteName extends keyof ParamList,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n /**\n * Optional key for this screen. This doesn't need to be unique.\n * If the key changes, existing screens with this name will be removed or reset.\n * Useful when we have some common screens and have conditional rendering.\n */\n navigationKey?: string;\n\n /**\n * Route name of this screen.\n */\n name: RouteName;\n\n /**\n * Navigator options for this screen.\n */\n options?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\n /**\n * Event listeners for this screen.\n */\n listeners?:\n | ScreenListeners\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenListeners);\n\n /**\n * Function to return an unique ID for this screen.\n * Receives an object with the route params.\n * For a given screen name, there will always be only one screen corresponding to an ID.\n * If `undefined` is returned, it acts same as no `getId` being specified.\n */\n getId?: ({ params }: { params: ParamList[RouteName] }) => string | undefined;\n\n /**\n * Initial params object for the route.\n */\n initialParams?: Partial;\n} & RouteConfigComponent;\n\nexport type RouteGroupConfig<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n> = {\n /**\n * Optional key for the screens in this group.\n * If the key changes, all existing screens in this group will be removed or reset.\n */\n navigationKey?: string;\n\n /**\n * Navigator options for this screen.\n */\n screenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n /**\n * Children React Elements to extract the route configuration from.\n * Only `Screen`, `Group` and `React.Fragment` are supported as children.\n */\n children: React.ReactNode;\n};\n\nexport type NavigationContainerEventMap = {\n /**\n * Event which fires when the navigation state changes.\n */\n state: {\n data: {\n /**\n * The updated state object after the state change.\n */\n state: NavigationState | PartialState | undefined;\n };\n };\n /**\n * Event which fires when current options changes.\n */\n options: { data: { options: object } };\n /**\n * Event which fires when an action is dispatched.\n * Only intended for debugging purposes, don't use it for app logic.\n * This event will be emitted before state changes have been applied.\n */\n __unsafe_action__: {\n data: {\n /**\n * The action object which was dispatched.\n */\n action: NavigationAction;\n /**\n * Whether the action was a no-op, i.e. resulted any state changes.\n */\n noop: boolean;\n /**\n * Stack trace of the action, this will only be available during development.\n */\n stack: string | undefined;\n };\n };\n};\n\nexport type NavigationContainerRef =\n NavigationHelpers &\n EventConsumer & {\n /**\n * Reset the navigation state of the root navigator to the provided state.\n *\n * @param state Navigation state object.\n */\n resetRoot(state?: PartialState | NavigationState): void;\n /**\n * Get the rehydrated navigation state of the navigation tree.\n */\n getRootState(): NavigationState;\n /**\n * Get the currently focused navigation route.\n */\n getCurrentRoute(): Route | undefined;\n /**\n * Get the currently focused route's options.\n */\n getCurrentOptions(): object | undefined;\n /**\n * Whether the navigation container is ready to handle actions.\n */\n isReady(): boolean;\n };\n\nexport type NavigationContainerRefWithCurrent =\n NavigationContainerRef & {\n current: NavigationContainerRef | null;\n };\n\nexport type TypedNavigator<\n ParamList extends ParamListBase,\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase,\n Navigator extends React.ComponentType\n> = {\n /**\n * Navigator component which manages the child screens.\n */\n Navigator: React.ComponentType<\n Omit<\n React.ComponentProps,\n keyof DefaultNavigatorOptions\n > &\n DefaultNavigatorOptions\n >;\n /**\n * Component used for grouping multiple route configuration.\n */\n Group: React.ComponentType>;\n /**\n * Component used for specifying route configuration.\n */\n Screen: (\n _: RouteConfig\n ) => null;\n};\n\nexport type NavigatorScreenParams<\n ParamList,\n State extends NavigationState = NavigationState\n> =\n | {\n screen?: never;\n params?: never;\n initial?: never;\n path?: string;\n state: PartialState | State | undefined;\n }\n | {\n [RouteName in keyof ParamList]: undefined extends ParamList[RouteName]\n ? {\n screen: RouteName;\n params?: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n }\n : {\n screen: RouteName;\n params: ParamList[RouteName];\n initial?: boolean;\n path?: string;\n state?: never;\n };\n }[keyof ParamList];\n\nexport type PathConfig = {\n path?: string;\n exact?: boolean;\n parse?: Record any>;\n stringify?: Record string>;\n screens?: PathConfigMap;\n initialRouteName?: keyof ParamList;\n};\n\nexport type PathConfigMap = {\n [RouteName in keyof ParamList]?: NonNullable<\n ParamList[RouteName]\n > extends NavigatorScreenParams\n ? string | PathConfig\n : string | Omit, 'screens' | 'initialRouteName'>;\n};\n","/**\n * Compare two arrays with primitive values as the content.\n * We need to make sure that both values and order match.\n */\nexport default function isArrayEqual(a: any[], b: any[]) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n return a.every((it, index) => it === b[index]);\n}\n","import * as React from 'react';\n\n/**\n * Component which prevents updates for children if no props changed\n */\nfunction StaticContainer(props: any) {\n return props.children;\n}\n\nexport default React.memo(StaticContainer, (prevProps: any, nextProps: any) => {\n const prevPropKeys = Object.keys(prevProps);\n const nextPropKeys = Object.keys(nextProps);\n\n if (prevPropKeys.length !== nextPropKeys.length) {\n return false;\n }\n\n for (const key of prevPropKeys) {\n if (key === 'children') {\n continue;\n }\n\n if (prevProps[key] !== nextProps[key]) {\n return false;\n }\n }\n\n return true;\n});\n","import type {\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport NavigationStateContext from './NavigationStateContext';\nimport StaticContainer from './StaticContainer';\nimport type { NavigationProp, RouteConfigComponent } from './types';\nimport useOptionsGetters from './useOptionsGetters';\n\ntype Props = {\n screen: RouteConfigComponent & { name: string };\n navigation: NavigationProp;\n route: Route;\n routeState: NavigationState | PartialState | undefined;\n getState: () => State;\n setState: (state: State) => void;\n options: object;\n clearOptions: () => void;\n};\n\n/**\n * Component which takes care of rendering the screen for a route.\n * It provides all required contexts and applies optimizations when applicable.\n */\nexport default function SceneView<\n State extends NavigationState,\n ScreenOptions extends {}\n>({\n screen,\n route,\n navigation,\n routeState,\n getState,\n setState,\n options,\n clearOptions,\n}: Props) {\n const navigatorKeyRef = React.useRef();\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const { addOptionsGetter } = useOptionsGetters({\n key: route.key,\n options,\n navigation,\n });\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const getCurrentState = React.useCallback(() => {\n const state = getState();\n const currentRoute = state.routes.find((r) => r.key === route.key);\n\n return currentRoute ? currentRoute.state : undefined;\n }, [getState, route.key]);\n\n const setCurrentState = React.useCallback(\n (child: NavigationState | PartialState | undefined) => {\n const state = getState();\n\n setState({\n ...state,\n routes: state.routes.map((r) =>\n r.key === route.key ? { ...r, state: child } : r\n ),\n });\n },\n [getState, route.key, setState]\n );\n\n const isInitialRef = React.useRef(true);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n });\n\n // Clear options set by this screen when it is unmounted\n React.useEffect(() => {\n return clearOptions;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state: routeState,\n getState: getCurrentState,\n setState: setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n routeState,\n getCurrentState,\n setCurrentState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const ScreenComponent = screen.getComponent\n ? screen.getComponent()\n : screen.component;\n\n return (\n \n \n \n {ScreenComponent !== undefined ? (\n \n ) : screen.children !== undefined ? (\n screen.children({ navigation, route })\n ) : null}\n \n \n \n );\n}\n","import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n AddKeyedListener,\n AddListener,\n} from './NavigationBuilderContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport SceneView from './SceneView';\nimport type {\n Descriptor,\n EventMapBase,\n NavigationHelpers,\n NavigationProp,\n RouteConfig,\n RouteProp,\n} from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useNavigationCache from './useNavigationCache';\nimport useRouteCache from './useRouteCache';\n\nexport type ScreenConfigWithParent<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n keys: (string | undefined)[];\n options: (ScreenOptionsOrCallback | undefined)[] | undefined;\n props: RouteConfig;\n};\n\ntype ScreenOptionsOrCallback =\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n }) => ScreenOptions);\n\ntype Options<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n> = {\n state: State;\n screens: Record<\n string,\n ScreenConfigWithParent\n >;\n navigation: NavigationHelpers;\n screenOptions?: ScreenOptionsOrCallback;\n defaultScreenOptions?:\n | ScreenOptions\n | ((props: {\n route: RouteProp;\n navigation: any;\n options: ScreenOptions;\n }) => ScreenOptions);\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n setState: (state: State) => void;\n addListener: AddListener;\n addKeyedListener: AddKeyedListener;\n onRouteFocus: (key: string) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\n/**\n * Hook to create descriptor objects for the child routes.\n *\n * A descriptor object provides 3 things:\n * - Helper method to render a screen\n * - Options specified by the screen for the navigator\n * - Navigation object intended for the route\n */\nexport default function useDescriptors<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>({\n state,\n screens,\n navigation,\n screenOptions,\n defaultScreenOptions,\n onAction,\n getState,\n setState,\n addListener,\n addKeyedListener,\n onRouteFocus,\n router,\n emitter,\n}: Options) {\n const [options, setOptions] = React.useState>({});\n const { onDispatchAction, onOptionsChange, stackRef } = React.useContext(\n NavigationBuilderContext\n );\n\n const context = React.useMemo(\n () => ({\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [\n navigation,\n onAction,\n addListener,\n addKeyedListener,\n onRouteFocus,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n ]\n );\n\n const navigations = useNavigationCache({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n });\n\n const routes = useRouteCache(state.routes);\n\n return routes.reduce<\n Record<\n string,\n Descriptor<\n ScreenOptions,\n NavigationProp &\n ActionHelpers,\n RouteProp\n >\n >\n >((acc, route, i) => {\n const config = screens[route.name];\n const screen = config.props;\n const navigation = navigations[route.key];\n\n const optionsList = [\n // The default `screenOptions` passed to the navigator\n screenOptions,\n // The `screenOptions` props passed to `Group` elements\n ...((config.options\n ? config.options.filter(Boolean)\n : []) as ScreenOptionsOrCallback[]),\n // The `options` prop passed to `Screen` elements,\n screen.options,\n // The options set via `navigation.setOptions`\n options[route.key],\n ];\n\n const customOptions = optionsList.reduce(\n (acc, curr) =>\n Object.assign(\n acc,\n typeof curr !== 'function' ? curr : curr({ route, navigation })\n ),\n {} as ScreenOptions\n );\n\n const mergedOptions = {\n ...(typeof defaultScreenOptions === 'function'\n ? // @ts-expect-error: ts gives incorrect error here\n defaultScreenOptions({\n route,\n navigation,\n options: customOptions,\n })\n : defaultScreenOptions),\n ...customOptions,\n };\n\n const clearOptions = () =>\n setOptions((o) => {\n if (route.key in o) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [route.key]: _, ...rest } = o;\n return rest;\n }\n\n return o;\n });\n\n acc[route.key] = {\n route,\n // @ts-expect-error: it's missing action helpers, fix later\n navigation,\n render() {\n return (\n \n \n \n \n \n \n \n );\n },\n options: mergedOptions as ScreenOptions,\n };\n\n return acc;\n }, {});\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport type { NavigationHelpers, NavigationProp } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options<\n State extends NavigationState,\n EventMap extends Record\n> = {\n state: State;\n getState: () => State;\n navigation: NavigationHelpers &\n Partial>;\n setOptions: (\n cb: (options: Record) => Record\n ) => void;\n router: Router;\n emitter: NavigationEventEmitter;\n};\n\ntype NavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n> = Record<\n string,\n NavigationProp\n>;\n\n/**\n * Hook to cache navigation objects for each screen in the navigator.\n * It's important to cache them to make sure navigation objects don't change between renders.\n * This lets us apply optimizations like `React.memo` to minimize re-rendering screens.\n */\nexport default function useNavigationCache<\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends Record\n>({\n state,\n getState,\n navigation,\n setOptions,\n router,\n emitter,\n}: Options) {\n const { stackRef } = React.useContext(NavigationBuilderContext);\n\n // Cache object which holds navigation objects for each screen\n // We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change\n // In reality, these deps will rarely change, if ever\n const cache = React.useMemo(\n () => ({ current: {} as NavigationCache }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [getState, navigation, setOptions, router, emitter]\n );\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n cache.current = state.routes.reduce<\n NavigationCache\n >((acc, route) => {\n const previous = cache.current[route.key];\n\n type Thunk =\n | NavigationAction\n | ((state: State) => NavigationAction | null | undefined);\n\n if (previous) {\n // If a cached navigation object already exists, reuse it\n acc[route.key] = previous;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { emit, ...rest } = navigation;\n\n const dispatch = (thunk: Thunk) => {\n const action = typeof thunk === 'function' ? thunk(getState()) : thunk;\n\n if (action != null) {\n navigation.dispatch({ source: route.key, ...action });\n }\n };\n\n const withStack = (callback: () => void) => {\n let isStackSet = false;\n\n try {\n if (\n process.env.NODE_ENV !== 'production' &&\n stackRef &&\n !stackRef.current\n ) {\n // Capture the stack trace for devtools\n stackRef.current = new Error().stack;\n isStackSet = true;\n }\n\n callback();\n } finally {\n if (isStackSet && stackRef) {\n stackRef.current = undefined;\n }\n }\n };\n\n const helpers = Object.keys(actions).reduce void>>(\n (acc, name) => {\n acc[name] = (...args: any) =>\n withStack(() =>\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n dispatch(actions[name](...args))\n );\n\n return acc;\n },\n {}\n );\n\n acc[route.key] = {\n ...rest,\n ...helpers,\n // FIXME: too much work to fix the types for now\n ...(emitter.create(route.key) as any),\n dispatch: (thunk: Thunk) => withStack(() => dispatch(thunk)),\n setOptions: (options: object) =>\n setOptions((o) => ({\n ...o,\n [route.key]: { ...o[route.key], ...options },\n })),\n isFocused: () => {\n const state = getState();\n\n if (state.routes[state.index].key !== route.key) {\n return false;\n }\n\n // If the current screen is focused, we also need to check if parent navigator is focused\n // This makes sure that we return the focus state in the whole tree, not just this navigator\n return navigation ? navigation.isFocused() : true;\n },\n };\n }\n\n return acc;\n }, {});\n\n return cache.current;\n}\n","import type {\n NavigationAction,\n NavigationState,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n getState: () => NavigationState;\n emitter: NavigationEventEmitter>;\n beforeRemoveListeners: Record;\n};\n\nconst VISITED_ROUTE_KEYS = Symbol('VISITED_ROUTE_KEYS');\n\nexport const shouldPreventRemove = (\n emitter: NavigationEventEmitter>,\n beforeRemoveListeners: Record,\n currentRoutes: { key: string }[],\n nextRoutes: { key?: string | undefined }[],\n action: NavigationAction\n) => {\n const nextRouteKeys = nextRoutes.map((route) => route.key);\n\n // Call these in reverse order so last screens handle the event first\n const removedRoutes = currentRoutes\n .filter((route) => !nextRouteKeys.includes(route.key))\n .reverse();\n\n const visitedRouteKeys: Set =\n // @ts-expect-error: add this property to mark that we've already emitted this action\n action[VISITED_ROUTE_KEYS] ?? new Set();\n\n const beforeRemoveAction = {\n ...action,\n [VISITED_ROUTE_KEYS]: visitedRouteKeys,\n };\n\n for (const route of removedRoutes) {\n if (visitedRouteKeys.has(route.key)) {\n // Skip if we've already emitted this action for this screen\n continue;\n }\n\n // First, we need to check if any child screens want to prevent it\n const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);\n\n if (isPrevented) {\n return true;\n }\n\n visitedRouteKeys.add(route.key);\n\n const event = emitter.emit({\n type: 'beforeRemove',\n target: route.key,\n data: { action: beforeRemoveAction },\n canPreventDefault: true,\n });\n\n if (event.defaultPrevented) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default function useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const routeKey = route?.key;\n\n React.useEffect(() => {\n if (routeKey) {\n return addKeyedListener?.('beforeRemove', routeKey, (action) => {\n const state = getState();\n\n return shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n [],\n action\n );\n });\n }\n }, [addKeyedListener, beforeRemoveListeners, emitter, getState, routeKey]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n PartialState,\n Router,\n RouterConfigOptions,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n ChildActionListener,\n ChildBeforeRemoveListener,\n} from './NavigationBuilderContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\nimport useOnPreventRemove, { shouldPreventRemove } from './useOnPreventRemove';\n\ntype Options = {\n router: Router;\n key?: string;\n getState: () => NavigationState;\n setState: (state: NavigationState | PartialState) => void;\n actionListeners: ChildActionListener[];\n beforeRemoveListeners: Record;\n routerConfigOptions: RouterConfigOptions;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to handle actions for a navigator, including state updates and bubbling.\n *\n * Bubbling an action is achieved in 2 ways:\n * 1. To bubble action to parent, we expose the action handler in context and then access the parent context\n * 2. To bubble action to child, child adds event listeners subscribing to actions from parent\n *\n * When the action handler handles as action, it returns `true`, otherwise `false`.\n */\nexport default function useOnAction({\n router,\n getState,\n setState,\n key,\n actionListeners,\n beforeRemoveListeners,\n routerConfigOptions,\n emitter,\n}: Options) {\n const {\n onAction: onActionParent,\n onRouteFocus: onRouteFocusParent,\n addListener: addListenerParent,\n onDispatchAction,\n } = React.useContext(NavigationBuilderContext);\n\n const routerConfigOptionsRef =\n React.useRef(routerConfigOptions);\n\n React.useEffect(() => {\n routerConfigOptionsRef.current = routerConfigOptions;\n });\n\n const onAction = React.useCallback(\n (\n action: NavigationAction,\n visitedNavigators: Set = new Set()\n ) => {\n const state = getState();\n\n // Since actions can bubble both up and down, they could come to the same navigator again\n // We keep track of navigators which have already tried to handle the action and return if it's already visited\n if (visitedNavigators.has(state.key)) {\n return false;\n }\n\n visitedNavigators.add(state.key);\n\n if (typeof action.target !== 'string' || action.target === state.key) {\n let result = router.getStateForAction(\n state,\n action,\n routerConfigOptionsRef.current\n );\n\n // If a target is specified and set to current navigator, the action shouldn't bubble\n // So instead of `null`, we use the state object for such cases to signal that action was handled\n result =\n result === null && action.target === state.key ? state : result;\n\n if (result !== null) {\n onDispatchAction(action, state === result);\n\n if (state !== result) {\n const isPrevented = shouldPreventRemove(\n emitter,\n beforeRemoveListeners,\n state.routes,\n result.routes,\n action\n );\n\n if (isPrevented) {\n return true;\n }\n\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined) {\n // Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree\n // This means we need to focus all of the parent navigators of this navigator as well\n const shouldFocus = router.shouldActionChangeFocus(action);\n\n if (shouldFocus && key !== undefined) {\n onRouteFocusParent(key);\n }\n }\n\n return true;\n }\n }\n\n if (onActionParent !== undefined) {\n // Bubble action to the parent if the current navigator didn't handle it\n if (onActionParent(action, visitedNavigators)) {\n return true;\n }\n }\n\n // If the action wasn't handled by current navigator or a parent navigator, let children handle it\n for (let i = actionListeners.length - 1; i >= 0; i--) {\n const listener = actionListeners[i];\n\n if (listener(action, visitedNavigators)) {\n return true;\n }\n }\n\n return false;\n },\n [\n actionListeners,\n beforeRemoveListeners,\n emitter,\n getState,\n key,\n onActionParent,\n onDispatchAction,\n onRouteFocusParent,\n router,\n setState,\n ]\n );\n\n useOnPreventRemove({\n getState,\n emitter,\n beforeRemoveListeners,\n });\n\n React.useEffect(\n () => addListenerParent?.('action', onAction),\n [addListenerParent, onAction]\n );\n\n return onAction;\n}\n","import {\n CommonActions,\n DefaultRouterOptions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n Router,\n RouterConfigOptions,\n RouterFactory,\n} from '@react-navigation/routers';\nimport * as React from 'react';\nimport { isValidElementType } from 'react-is';\n\nimport Group from './Group';\nimport isArrayEqual from './isArrayEqual';\nimport isRecordEqual from './isRecordEqual';\nimport NavigationHelpersContext from './NavigationHelpersContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport Screen from './Screen';\nimport {\n DefaultNavigatorOptions,\n EventMapBase,\n EventMapCore,\n NavigatorScreenParams,\n PrivateValueStore,\n RouteConfig,\n} from './types';\nimport useChildListeners from './useChildListeners';\nimport useComponent from './useComponent';\nimport useCurrentRender from './useCurrentRender';\nimport useDescriptors, { ScreenConfigWithParent } from './useDescriptors';\nimport useEventEmitter from './useEventEmitter';\nimport useFocusedListenersChildrenAdapter from './useFocusedListenersChildrenAdapter';\nimport useFocusEvents from './useFocusEvents';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useNavigationHelpers from './useNavigationHelpers';\nimport useOnAction from './useOnAction';\nimport useOnGetState from './useOnGetState';\nimport useOnRouteFocus from './useOnRouteFocus';\nimport useRegisterNavigator from './useRegisterNavigator';\nimport useScheduleUpdate from './useScheduleUpdate';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype NavigatorRoute = {\n key: string;\n params?: NavigatorScreenParams;\n};\n\nconst isValidKey = (key: unknown) =>\n key === undefined || (typeof key === 'string' && key !== '');\n\n/**\n * Extract route config object from React children elements.\n *\n * @param children React Elements to extract the config from.\n */\nconst getRouteConfigsFromChildren = <\n State extends NavigationState,\n ScreenOptions extends {},\n EventMap extends EventMapBase\n>(\n children: React.ReactNode,\n groupKey?: string,\n groupOptions?: ScreenConfigWithParent<\n State,\n ScreenOptions,\n EventMap\n >['options']\n) => {\n const configs = React.Children.toArray(children).reduce<\n ScreenConfigWithParent[]\n >((acc, child) => {\n if (React.isValidElement(child)) {\n if (child.type === Screen) {\n // We can only extract the config from `Screen` elements\n // If something else was rendered, it's probably a bug\n\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the screen '${\n child.props.name\n }'. It must be a non-empty string or 'undefined'.`\n );\n }\n\n acc.push({\n keys: [groupKey, child.props.navigationKey],\n options: groupOptions,\n props: child.props as RouteConfig<\n ParamListBase,\n string,\n State,\n ScreenOptions,\n EventMap\n >,\n });\n return acc;\n }\n\n if (child.type === React.Fragment || child.type === Group) {\n if (!isValidKey(child.props.navigationKey)) {\n throw new Error(\n `Got an invalid 'navigationKey' prop (${JSON.stringify(\n child.props.navigationKey\n )}) for the group. It must be a non-empty string or 'undefined'.`\n );\n }\n\n // When we encounter a fragment or group, we need to dive into its children to extract the configs\n // This is handy to conditionally define a group of screens\n acc.push(\n ...getRouteConfigsFromChildren(\n child.props.children,\n child.props.navigationKey,\n child.type !== Group\n ? groupOptions\n : groupOptions != null\n ? [...groupOptions, child.props.screenOptions]\n : [child.props.screenOptions]\n )\n );\n return acc;\n }\n }\n\n throw new Error(\n `A navigator can only contain 'Screen', 'Group' or 'React.Fragment' as its direct children (found ${\n React.isValidElement(child)\n ? `'${\n typeof child.type === 'string' ? child.type : child.type?.name\n }'${\n child.props?.name ? ` for the screen '${child.props.name}'` : ''\n }`\n : typeof child === 'object'\n ? JSON.stringify(child)\n : `'${String(child)}'`\n }). To render this component in the navigator, pass it in the 'component' prop to 'Screen'.`\n );\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n configs.forEach((config) => {\n const { name, children, component, getComponent } = config.props;\n\n if (typeof name !== 'string' || !name) {\n throw new Error(\n `Got an invalid name (${JSON.stringify(\n name\n )}) for the screen. It must be a non-empty string.`\n );\n }\n\n if (\n children != null ||\n component !== undefined ||\n getComponent !== undefined\n ) {\n if (children != null && component !== undefined) {\n throw new Error(\n `Got both 'component' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && getComponent !== undefined) {\n throw new Error(\n `Got both 'getComponent' and 'children' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (component !== undefined && getComponent !== undefined) {\n throw new Error(\n `Got both 'component' and 'getComponent' props for the screen '${name}'. You must pass only one of them.`\n );\n }\n\n if (children != null && typeof children !== 'function') {\n throw new Error(\n `Got an invalid value for 'children' prop for the screen '${name}'. It must be a function returning a React Element.`\n );\n }\n\n if (component !== undefined && !isValidElementType(component)) {\n throw new Error(\n `Got an invalid value for 'component' prop for the screen '${name}'. It must be a valid React Component.`\n );\n }\n\n if (getComponent !== undefined && typeof getComponent !== 'function') {\n throw new Error(\n `Got an invalid value for 'getComponent' prop for the screen '${name}'. It must be a function returning a React Component.`\n );\n }\n\n if (typeof component === 'function') {\n if (component.name === 'component') {\n // Inline anonymous functions passed in the `component` prop will have the name of the prop\n // It's relatively safe to assume that it's not a component since it should also have PascalCase name\n // We won't catch all scenarios here, but this should catch a good chunk of incorrect use.\n console.warn(\n `Looks like you're passing an inline function for 'component' prop for the screen '${name}' (e.g. component={() => }). Passing an inline function will cause the component state to be lost on re-render and cause perf issues since it's re-created every render. You can pass the function as children to 'Screen' instead to achieve the desired behaviour.`\n );\n } else if (/^[a-z]/.test(component.name)) {\n console.warn(\n `Got a component with the name '${component.name}' for the screen '${name}'. React Components must start with an uppercase letter. If you're passing a regular function and not a component, pass it as children to 'Screen' instead. Otherwise capitalize your component's name.`\n );\n }\n }\n } else {\n throw new Error(\n `Couldn't find a 'component', 'getComponent' or 'children' prop for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`\n );\n }\n });\n }\n\n return configs;\n};\n\n/**\n * Hook for building navigators.\n *\n * @param createRouter Factory method which returns router object.\n * @param options Options object containing `children` and additional options for the router.\n * @returns An object containing `state`, `navigation`, `descriptors` objects.\n */\nexport default function useNavigationBuilder<\n State extends NavigationState,\n RouterOptions extends DefaultRouterOptions,\n ActionHelpers extends Record void>,\n ScreenOptions extends {},\n EventMap extends Record\n>(\n createRouter: RouterFactory,\n options: DefaultNavigatorOptions<\n ParamListBase,\n State,\n ScreenOptions,\n EventMap\n > &\n RouterOptions\n) {\n const navigatorKey = useRegisterNavigator();\n\n const route = React.useContext(NavigationRouteContext) as\n | NavigatorRoute\n | undefined;\n\n const { children, screenListeners, ...rest } = options;\n const { current: router } = React.useRef>(\n createRouter({\n ...(rest as unknown as RouterOptions),\n ...(route?.params &&\n route.params.state == null &&\n route.params.initial !== false &&\n typeof route.params.screen === 'string'\n ? { initialRouteName: route.params.screen }\n : null),\n })\n );\n\n const routeConfigs = getRouteConfigsFromChildren<\n State,\n ScreenOptions,\n EventMap\n >(children);\n\n const screens = routeConfigs.reduce<\n Record>\n >((acc, config) => {\n if (config.props.name in acc) {\n throw new Error(\n `A navigator cannot contain multiple 'Screen' components with the same name (found duplicate screen named '${config.props.name}')`\n );\n }\n\n acc[config.props.name] = config;\n return acc;\n }, {});\n\n const routeNames = routeConfigs.map((config) => config.props.name);\n const routeKeyList = routeNames.reduce>(\n (acc, curr) => {\n acc[curr] = screens[curr].keys.map((key) => key ?? '').join(':');\n return acc;\n },\n {}\n );\n const routeParamList = routeNames.reduce>(\n (acc, curr) => {\n const { initialParams } = screens[curr].props;\n acc[curr] = initialParams;\n return acc;\n },\n {}\n );\n const routeGetIdList = routeNames.reduce<\n RouterConfigOptions['routeGetIdList']\n >(\n (acc, curr) =>\n Object.assign(acc, {\n [curr]: screens[curr].props.getId,\n }),\n {}\n );\n\n if (!routeNames.length) {\n throw new Error(\n \"Couldn't find any screens for the navigator. Have you defined any screens as its children?\"\n );\n }\n\n const isStateValid = React.useCallback(\n (state) => state.type === undefined || state.type === router.type,\n [router.type]\n );\n\n const isStateInitialized = React.useCallback(\n (state) =>\n state !== undefined && state.stale === false && isStateValid(state),\n [isStateValid]\n );\n\n const {\n state: currentState,\n getState: getCurrentState,\n setState: setCurrentState,\n setKey,\n getKey,\n getIsInitial,\n } = React.useContext(NavigationStateContext);\n\n const stateCleanedUp = React.useRef(false);\n\n const cleanUpState = React.useCallback(() => {\n setCurrentState(undefined);\n stateCleanedUp.current = true;\n }, [setCurrentState]);\n\n const setState = React.useCallback(\n (state: NavigationState | PartialState | undefined) => {\n if (stateCleanedUp.current) {\n // State might have been already cleaned up due to unmount\n // We do not want to expose API allowing to override this\n // This would lead to old data preservation on main navigator unmount\n return;\n }\n setCurrentState(state);\n },\n [setCurrentState]\n );\n\n const [initializedState, isFirstStateInitialization] = React.useMemo(() => {\n const initialRouteParamList = routeNames.reduce<\n Record\n >((acc, curr) => {\n const { initialParams } = screens[curr].props;\n const initialParamsFromParams =\n route?.params?.state == null &&\n route?.params?.initial !== false &&\n route?.params?.screen === curr\n ? route.params.params\n : undefined;\n\n acc[curr] =\n initialParams !== undefined || initialParamsFromParams !== undefined\n ? {\n ...initialParams,\n ...initialParamsFromParams,\n }\n : undefined;\n\n return acc;\n }, {});\n\n // If the current state isn't initialized on first render, we initialize it\n // We also need to re-initialize it if the state passed from parent was changed (maybe due to reset)\n // Otherwise assume that the state was provided as initial state\n // So we need to rehydrate it to make it usable\n if (\n (currentState === undefined || !isStateValid(currentState)) &&\n route?.params?.state == null\n ) {\n return [\n router.getInitialState({\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }),\n true,\n ];\n } else {\n return [\n router.getRehydratedState(\n route?.params?.state ?? (currentState as PartialState),\n {\n routeNames,\n routeParamList: initialRouteParamList,\n routeGetIdList,\n }\n ),\n false,\n ];\n }\n // We explicitly don't include routeNames, route.params etc. in the dep list\n // below. We want to avoid forcing a new state to be calculated in those cases\n // Instead, we handle changes to these in the nextState code below. Note\n // that some changes to routeConfigs are explicitly ignored, such as changes\n // to initialParams\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentState, router, isStateValid]);\n\n const previousRouteKeyListRef = React.useRef(routeKeyList);\n\n React.useEffect(() => {\n previousRouteKeyListRef.current = routeKeyList;\n });\n\n const previousRouteKeyList = previousRouteKeyListRef.current;\n\n let state =\n // If the state isn't initialized, or stale, use the state we initialized instead\n // The state won't update until there's a change needed in the state we have initalized locally\n // So it'll be `undefined` or stale until the first navigation event happens\n isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedState as State);\n\n let nextState: State = state;\n\n if (\n !isArrayEqual(state.routeNames, routeNames) ||\n !isRecordEqual(routeKeyList, previousRouteKeyList)\n ) {\n // When the list of route names change, the router should handle it to remove invalid routes\n nextState = router.getStateForRouteNamesChange(state, {\n routeNames,\n routeParamList,\n routeGetIdList,\n routeKeyChanges: Object.keys(routeKeyList).filter(\n (name) =>\n previousRouteKeyList.hasOwnProperty(name) &&\n routeKeyList[name] !== previousRouteKeyList[name]\n ),\n });\n }\n\n const previousNestedParamsRef = React.useRef(route?.params);\n\n React.useEffect(() => {\n previousNestedParamsRef.current = route?.params;\n }, [route?.params]);\n\n if (route?.params) {\n const previousParams = previousNestedParamsRef.current;\n\n let action: CommonActions.Action | undefined;\n\n if (\n typeof route.params.state === 'object' &&\n route.params.state != null &&\n route.params !== previousParams\n ) {\n // If the route was updated with new state, we should reset to it\n action = CommonActions.reset(route.params.state);\n } else if (\n typeof route.params.screen === 'string' &&\n ((route.params.initial === false && isFirstStateInitialization) ||\n route.params !== previousParams)\n ) {\n // If the route was updated with new screen name and/or params, we should navigate there\n action = CommonActions.navigate({\n name: route.params.screen,\n params: route.params.params,\n path: route.params.path,\n });\n }\n\n // The update should be limited to current navigator only, so we call the router manually\n const updatedState = action\n ? router.getStateForAction(nextState, action, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : null;\n\n nextState =\n updatedState !== null\n ? router.getRehydratedState(updatedState, {\n routeNames,\n routeParamList,\n routeGetIdList,\n })\n : nextState;\n }\n\n const shouldUpdate = state !== nextState;\n\n useScheduleUpdate(() => {\n if (shouldUpdate) {\n // If the state needs to be updated, we'll schedule an update\n setState(nextState);\n }\n });\n\n // The up-to-date state will come in next render, but we don't need to wait for it\n // We can't use the outdated state since the screens have changed, which will cause error due to mismatched config\n // So we override the state object we return to use the latest state as soon as possible\n state = nextState;\n\n React.useEffect(() => {\n setKey(navigatorKey);\n\n if (!getIsInitial()) {\n // If it's not initial render, we need to update the state\n // This will make sure that our container gets notifier of state changes due to new mounts\n // This is necessary for proper screen tracking, URL updates etc.\n setState(nextState);\n }\n\n return () => {\n // We need to clean up state for this navigator on unmount\n // We do it in a timeout because we need to detect if another navigator mounted in the meantime\n // For example, if another navigator has started rendering, we should skip cleanup\n // Otherwise, our cleanup step will cleanup state for the other navigator and re-initialize it\n setTimeout(() => {\n if (getCurrentState() !== undefined && getKey() === navigatorKey) {\n cleanUpState();\n }\n }, 0);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // We initialize this ref here to avoid a new getState getting initialized\n // whenever initializedState changes. We want getState to have access to the\n // latest initializedState, but don't need it to change when that happens\n const initializedStateRef = React.useRef();\n initializedStateRef.current = initializedState;\n\n const getState = React.useCallback((): State => {\n const currentState = getCurrentState();\n\n return isStateInitialized(currentState)\n ? (currentState as State)\n : (initializedStateRef.current as State);\n }, [getCurrentState, isStateInitialized]);\n\n const emitter = useEventEmitter>((e) => {\n let routeNames = [];\n\n let route: Route | undefined;\n\n if (e.target) {\n route = state.routes.find((route) => route.key === e.target);\n\n if (route?.name) {\n routeNames.push(route.name);\n }\n } else {\n route = state.routes[state.index];\n routeNames.push(\n ...Object.keys(screens).filter((name) => route?.name === name)\n );\n }\n\n if (route == null) {\n return;\n }\n\n const navigation = descriptors[route.key].navigation;\n\n const listeners = ([] as (((e: any) => void) | undefined)[])\n .concat(\n // Get an array of listeners for all screens + common listeners on navigator\n ...[\n screenListeners,\n ...routeNames.map((name) => {\n const { listeners } = screens[name].props;\n return listeners;\n }),\n ].map((listeners) => {\n const map =\n typeof listeners === 'function'\n ? listeners({ route: route as any, navigation })\n : listeners;\n\n return map\n ? Object.keys(map)\n .filter((type) => type === e.type)\n .map((type) => map?.[type])\n : undefined;\n })\n )\n // We don't want same listener to be called multiple times for same event\n // So we remove any duplicate functions from the array\n .filter((cb, i, self) => cb && self.lastIndexOf(cb) === i);\n\n listeners.forEach((listener) => listener?.(e));\n });\n\n useFocusEvents({ state, emitter });\n\n React.useEffect(() => {\n emitter.emit({ type: 'state', data: { state } });\n }, [emitter, state]);\n\n const { listeners: childListeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const onAction = useOnAction({\n router,\n getState,\n setState,\n key: route?.key,\n actionListeners: childListeners.action,\n beforeRemoveListeners: keyedListeners.beforeRemove,\n routerConfigOptions: {\n routeNames,\n routeParamList,\n routeGetIdList,\n },\n emitter,\n });\n\n const onRouteFocus = useOnRouteFocus({\n router,\n key: route?.key,\n getState,\n setState,\n });\n\n const navigation = useNavigationHelpers<\n State,\n ActionHelpers,\n NavigationAction,\n EventMap\n >({\n onAction,\n getState,\n emitter,\n router,\n });\n\n useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners: childListeners.focus,\n });\n\n useOnGetState({\n getState,\n getStateListeners: keyedListeners.getState,\n });\n\n const descriptors = useDescriptors<\n State,\n ActionHelpers,\n ScreenOptions,\n EventMap\n >({\n state,\n screens,\n navigation,\n screenOptions: options.screenOptions,\n defaultScreenOptions: options.defaultScreenOptions,\n onAction,\n getState,\n setState,\n onRouteFocus,\n addListener,\n addKeyedListener,\n router,\n // @ts-expect-error: this should have both core and custom events, but too much work right now\n emitter,\n });\n\n useCurrentRender({\n state,\n navigation,\n descriptors,\n });\n\n const NavigationContent = useComponent(NavigationHelpersContext.Provider, {\n value: navigation,\n });\n\n return {\n state,\n navigation,\n descriptors,\n NavigationContent,\n };\n}\n","import { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\n\nimport { SingleNavigatorContext } from './EnsureSingleNavigator';\n\n/**\n * Register a navigator in the parent context (either a navigation container or a screen).\n * This is used to prevent multiple navigators under a single container or screen.\n */\nexport default function useRegisterNavigator() {\n const [key] = React.useState(() => nanoid());\n const container = React.useContext(SingleNavigatorContext);\n\n if (container === undefined) {\n throw new Error(\n \"Couldn't register the navigator. Have you wrapped your app with 'NavigationContainer'?\\n\\nThis can also happen if there are multiple copies of '@react-navigation' packages installed.\"\n );\n }\n\n React.useEffect(() => {\n const { register, unregister } = container;\n\n register(key);\n\n return () => unregister(key);\n }, [container, key]);\n\n return key;\n}\n","/**\n * Compare two records with primitive values as the content.\n */\nexport default function isRecordEqual(\n a: Record,\n b: Record\n) {\n if (a === b) {\n return true;\n }\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n return aKeys.every((key) => a[key] === b[key]);\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport type { EventMapCore } from './types';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\ntype Options = {\n state: State;\n emitter: NavigationEventEmitter>;\n};\n\n/**\n * Hook to take care of emitting `focus` and `blur` events.\n */\nexport default function useFocusEvents({\n state,\n emitter,\n}: Options) {\n const navigation = React.useContext(NavigationContext);\n const lastFocusedKeyRef = React.useRef();\n\n const currentFocusedKey = state.routes[state.index].key;\n\n // When the parent screen changes its focus state, we also need to change child's focus\n // Coz the child screen can't be focused if the parent screen is out of focus\n React.useEffect(\n () =>\n navigation?.addListener('focus', () => {\n lastFocusedKeyRef.current = currentFocusedKey;\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(\n () =>\n navigation?.addListener('blur', () => {\n lastFocusedKeyRef.current = undefined;\n emitter.emit({ type: 'blur', target: currentFocusedKey });\n }),\n [currentFocusedKey, emitter, navigation]\n );\n\n React.useEffect(() => {\n const lastFocusedKey = lastFocusedKeyRef.current;\n\n lastFocusedKeyRef.current = currentFocusedKey;\n\n // We wouldn't have `lastFocusedKey` on initial mount\n // Fire focus event for the current route on mount if there's no parent navigator\n if (lastFocusedKey === undefined && !navigation) {\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }\n\n // We should only emit events when the focused key changed and navigator is focused\n // When navigator is not focused, screens inside shouldn't receive focused status either\n if (\n lastFocusedKey === currentFocusedKey ||\n !(navigation ? navigation.isFocused() : true)\n ) {\n return;\n }\n\n if (lastFocusedKey === undefined) {\n // Only fire events after initial mount\n return;\n }\n\n emitter.emit({ type: 'blur', target: lastFocusedKey });\n emitter.emit({ type: 'focus', target: currentFocusedKey });\n }, [currentFocusedKey, emitter, navigation]);\n}\n","import type {\n NavigationAction,\n NavigationState,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext from './NavigationBuilderContext';\n\ntype Options = {\n router: Router;\n getState: () => NavigationState;\n setState: (state: NavigationState) => void;\n key?: string;\n};\n\n/**\n * Hook to handle focus actions for a route.\n * Focus action needs to be treated specially, coz when a nested route is focused,\n * the parent navigators also needs to be focused.\n */\nexport default function useOnRouteFocus({\n router,\n getState,\n key: sourceRouteKey,\n setState,\n}: Options) {\n const { onRouteFocus: onRouteFocusParent } = React.useContext(\n NavigationBuilderContext\n );\n\n return React.useCallback(\n (key: string) => {\n const state = getState();\n const result = router.getStateForRouteFocus(state, key);\n\n if (result !== state) {\n setState(result);\n }\n\n if (onRouteFocusParent !== undefined && sourceRouteKey !== undefined) {\n onRouteFocusParent(sourceRouteKey);\n }\n },\n [getState, onRouteFocusParent, router, setState, sourceRouteKey]\n );\n}\n","import {\n CommonActions,\n NavigationAction,\n NavigationState,\n ParamListBase,\n Router,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationContext from './NavigationContext';\nimport { NavigationHelpers, NavigationProp, PrivateValueStore } from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport type { NavigationEventEmitter } from './useEventEmitter';\n\n// This is to make TypeScript compiler happy\n// eslint-disable-next-line babel/no-unused-expressions\nPrivateValueStore;\n\ntype Options = {\n onAction: (action: NavigationAction) => boolean;\n getState: () => State;\n emitter: NavigationEventEmitter;\n router: Router;\n};\n\n/**\n * Navigation object with helper methods to be used by a navigator.\n * This object includes methods for common actions as well as methods the parent screen's navigation object.\n */\nexport default function useNavigationHelpers<\n State extends NavigationState,\n ActionHelpers extends Record void>,\n Action extends NavigationAction,\n EventMap extends Record\n>({ onAction, getState, emitter, router }: Options) {\n const onUnhandledAction = React.useContext(UnhandledActionContext);\n const parentNavigationHelpers = React.useContext(NavigationContext);\n\n return React.useMemo(() => {\n const dispatch = (op: Action | ((state: State) => Action)) => {\n const action = typeof op === 'function' ? op(getState()) : op;\n\n const handled = onAction(action);\n\n if (!handled) {\n onUnhandledAction?.(action);\n }\n };\n\n const actions = {\n ...router.actionCreators,\n ...CommonActions,\n };\n\n const helpers = Object.keys(actions).reduce void>>(\n (acc, name) => {\n // @ts-expect-error: name is a valid key, but TypeScript is dumb\n acc[name] = (...args: any) => dispatch(actions[name](...args));\n return acc;\n },\n {}\n );\n\n return {\n ...parentNavigationHelpers,\n ...helpers,\n dispatch,\n emit: emitter.emit,\n isFocused: parentNavigationHelpers\n ? parentNavigationHelpers.isFocused\n : () => true,\n canGoBack: () => {\n const state = getState();\n\n return (\n router.getStateForAction(state, CommonActions.goBack() as Action, {\n routeNames: state.routeNames,\n routeParamList: {},\n routeGetIdList: {},\n }) !== null ||\n parentNavigationHelpers?.canGoBack() ||\n false\n );\n },\n getParent: () => parentNavigationHelpers as any,\n getState,\n } as NavigationHelpers &\n (NavigationProp | undefined) &\n ActionHelpers;\n }, [\n emitter.emit,\n getState,\n onAction,\n onUnhandledAction,\n parentNavigationHelpers,\n router,\n ]);\n}\n","import type { ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport NavigationBuilderContext, {\n FocusedNavigationCallback,\n FocusedNavigationListener,\n} from './NavigationBuilderContext';\nimport type { NavigationHelpers } from './types';\n\ntype Options = {\n navigation: NavigationHelpers;\n focusedListeners: FocusedNavigationListener[];\n};\n\n/**\n * Hook for passing focus callback to children\n */\nexport default function useFocusedListenersChildrenAdapter({\n navigation,\n focusedListeners,\n}: Options) {\n const { addListener } = React.useContext(NavigationBuilderContext);\n\n const listener = React.useCallback(\n (callback: FocusedNavigationCallback) => {\n if (navigation.isFocused()) {\n for (const listener of focusedListeners) {\n const { handled, result } = listener(callback);\n\n if (handled) {\n return { handled, result };\n }\n }\n\n return { handled: true, result: callback(navigation) };\n } else {\n return { handled: false, result: null };\n }\n },\n [focusedListeners, navigation]\n );\n\n React.useEffect(\n () => addListener?.('focus', listener),\n [addListener, listener]\n );\n}\n","import type { NavigationState } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport isArrayEqual from './isArrayEqual';\nimport NavigationBuilderContext, {\n GetStateListener,\n} from './NavigationBuilderContext';\nimport NavigationRouteContext from './NavigationRouteContext';\n\ntype Options = {\n getState: () => NavigationState;\n getStateListeners: Record;\n};\n\nexport default function useOnGetState({\n getState,\n getStateListeners,\n}: Options) {\n const { addKeyedListener } = React.useContext(NavigationBuilderContext);\n const route = React.useContext(NavigationRouteContext);\n const key = route ? route.key : 'root';\n\n const getRehydratedState = React.useCallback(() => {\n const state = getState();\n\n // Avoid returning new route objects if we don't need to\n const routes = state.routes.map((route) => {\n const childState = getStateListeners[route.key]?.();\n\n if (route.state === childState) {\n return route;\n }\n\n return { ...route, state: childState };\n });\n\n if (isArrayEqual(state.routes, routes)) {\n return state;\n }\n\n return { ...state, routes };\n }, [getState, getStateListeners]);\n\n React.useEffect(() => {\n return addKeyedListener?.('getState', key, getRehydratedState);\n }, [addKeyedListener, getRehydratedState, key]);\n}\n","import type { NavigationState, ParamListBase } from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport CurrentRenderContext from './CurrentRenderContext';\nimport type {\n Descriptor,\n NavigationHelpers,\n NavigationProp,\n RouteProp,\n} from './types';\n\ntype Options = {\n state: NavigationState;\n navigation: NavigationHelpers;\n descriptors: Record<\n string,\n Descriptor, RouteProp>\n >;\n};\n\n/**\n * Write the current options, so that server renderer can get current values\n * Mutating values like this is not safe in async mode, but it doesn't apply to SSR\n */\nexport default function useCurrentRender({\n state,\n navigation,\n descriptors,\n}: Options) {\n const current = React.useContext(CurrentRenderContext);\n\n if (current && navigation.isFocused()) {\n current.options = descriptors[state.routes[state.index].key].options;\n }\n}\n","import * as React from 'react';\n\nexport default function useComponent<\n T extends React.ComponentType,\n P extends {}\n>(Component: T, props: P) {\n const propsRef = React.useRef

(props);\n\n // Normally refs shouldn't be mutated in render\n // But we return a component which will be rendered\n // So it's just for immediate consumption\n propsRef.current = props;\n\n React.useEffect(() => {\n propsRef.current = null;\n });\n\n return React.useRef((rest: Omit, keyof P>) => {\n const props = propsRef.current;\n\n if (props === null) {\n throw new Error(\n 'The returned component must be rendered in the same render phase as the hook.'\n );\n }\n\n // @ts-expect-error: the props should be fine here\n return ;\n }).current;\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\n/**\n * This class is responsible for coordinating the \"focused\"\n * state for TextInputs. All calls relating to the keyboard\n * should be funneled through here\n */\n\nvar TextInputState = {\n /**\n * Internal state\n */\n _currentlyFocusedNode: null,\n\n /**\n * Returns the ID of the currently focused text field, if one exists\n * If no text field is focused it returns null\n */\n currentlyFocusedField: function currentlyFocusedField() {\n if (document.activeElement !== this._currentlyFocusedNode) {\n this._currentlyFocusedNode = null;\n }\n\n return this._currentlyFocusedNode;\n },\n\n /**\n * @param {Object} TextInputID id of the text field to focus\n * Focuses the specified text field\n * noop if the text field was already focused\n */\n focusTextInput: function focusTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = textFieldNode;\n\n if (document.activeElement !== textFieldNode) {\n UIManager.focus(textFieldNode);\n }\n }\n },\n\n /**\n * @param {Object} textFieldNode id of the text field to focus\n * Unfocuses the specified text field\n * noop if it wasn't focused\n */\n blurTextInput: function blurTextInput(textFieldNode) {\n if (textFieldNode !== null) {\n this._currentlyFocusedNode = null;\n\n if (document.activeElement === textFieldNode) {\n UIManager.blur(textFieldNode);\n }\n }\n }\n};\nexport default TextInputState;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar assets = [];\nexport function registerAsset(asset) {\n // `push` returns new array length, so the first asset will\n // get id 1 (not 0) to make the value truthy\n return assets.push(asset);\n}\nexport function getAssetByID(assetId) {\n return assets[assetId - 1];\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar dataUriPattern = /^data:/;\nexport var ImageUriCache = /*#__PURE__*/function () {\n function ImageUriCache() {}\n\n ImageUriCache.has = function has(uri) {\n var entries = ImageUriCache._entries;\n var isDataUri = dataUriPattern.test(uri);\n return isDataUri || Boolean(entries[uri]);\n };\n\n ImageUriCache.add = function add(uri) {\n var entries = ImageUriCache._entries;\n var lastUsedTimestamp = Date.now();\n\n if (entries[uri]) {\n entries[uri].lastUsedTimestamp = lastUsedTimestamp;\n entries[uri].refCount += 1;\n } else {\n entries[uri] = {\n lastUsedTimestamp: lastUsedTimestamp,\n refCount: 1\n };\n }\n };\n\n ImageUriCache.remove = function remove(uri) {\n var entries = ImageUriCache._entries;\n\n if (entries[uri]) {\n entries[uri].refCount -= 1;\n } // Free up entries when the cache is \"full\"\n\n\n ImageUriCache._cleanUpIfNeeded();\n };\n\n ImageUriCache._cleanUpIfNeeded = function _cleanUpIfNeeded() {\n var entries = ImageUriCache._entries;\n var imageUris = Object.keys(entries);\n\n if (imageUris.length + 1 > ImageUriCache._maximumEntries) {\n var leastRecentlyUsedKey;\n var leastRecentlyUsedEntry;\n imageUris.forEach(function (uri) {\n var entry = entries[uri];\n\n if ((!leastRecentlyUsedEntry || entry.lastUsedTimestamp < leastRecentlyUsedEntry.lastUsedTimestamp) && entry.refCount === 0) {\n leastRecentlyUsedKey = uri;\n leastRecentlyUsedEntry = entry;\n }\n });\n\n if (leastRecentlyUsedKey) {\n delete entries[leastRecentlyUsedKey];\n }\n }\n };\n\n return ImageUriCache;\n}();\nImageUriCache._maximumEntries = 256;\nImageUriCache._entries = {};\nvar id = 0;\nvar requests = {};\nvar ImageLoader = {\n abort: function abort(requestId) {\n var image = requests[\"\" + requestId];\n\n if (image) {\n image.onerror = null;\n image.onload = null;\n image = null;\n delete requests[\"\" + requestId];\n }\n },\n getSize: function getSize(uri, success, failure) {\n var complete = false;\n var interval = setInterval(callback, 16);\n var requestId = ImageLoader.load(uri, callback, errorCallback);\n\n function callback() {\n var image = requests[\"\" + requestId];\n\n if (image) {\n var naturalHeight = image.naturalHeight,\n naturalWidth = image.naturalWidth;\n\n if (naturalHeight && naturalWidth) {\n success(naturalWidth, naturalHeight);\n complete = true;\n }\n }\n\n if (complete) {\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n }\n\n function errorCallback() {\n if (typeof failure === 'function') {\n failure();\n }\n\n ImageLoader.abort(requestId);\n clearInterval(interval);\n }\n },\n has: function has(uri) {\n return ImageUriCache.has(uri);\n },\n load: function load(uri, onLoad, onError) {\n id += 1;\n var image = new window.Image();\n image.onerror = onError;\n\n image.onload = function (e) {\n // avoid blocking the main thread\n var onDecode = function onDecode() {\n return onLoad({\n nativeEvent: e\n });\n };\n\n if (typeof image.decode === 'function') {\n // Safari currently throws exceptions when decoding svgs.\n // We want to catch that error and allow the load handler\n // to be forwarded to the onLoad handler in this case\n image.decode().then(onDecode, onDecode);\n } else {\n setTimeout(onDecode, 0);\n }\n };\n\n image.src = uri;\n requests[\"\" + id] = image;\n return id;\n },\n prefetch: function prefetch(uri) {\n return new Promise(function (resolve, reject) {\n ImageLoader.load(uri, function () {\n // Add the uri to the cache so it can be immediately displayed when used\n // but also immediately remove it to correctly reflect that it has no active references\n ImageUriCache.add(uri);\n ImageUriCache.remove(uri);\n resolve();\n }, reject);\n });\n },\n queryCache: function queryCache(uris) {\n var result = {};\n uris.forEach(function (u) {\n if (ImageUriCache.has(u)) {\n result[u] = 'disk/memory';\n }\n });\n return Promise.resolve(result);\n }\n};\nexport default ImageLoader;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport css from '../StyleSheet/css';\nimport { getAssetByID } from '../../modules/AssetRegistry';\nimport resolveShadowValue from '../StyleSheet/resolveShadowValue';\nimport ImageLoader from '../../modules/ImageLoader';\nimport PixelRatio from '../PixelRatio';\nimport StyleSheet from '../StyleSheet';\nimport TextAncestorContext from '../Text/TextAncestorContext';\nimport View from '../View';\nvar ERRORED = 'ERRORED';\nvar LOADED = 'LOADED';\nvar LOADING = 'LOADING';\nvar IDLE = 'IDLE';\nvar _filterId = 0;\nvar svgDataUriPattern = /^(data:image\\/svg\\+xml;utf8,)(.*)/;\n\nfunction createTintColorSVG(tintColor, id) {\n return tintColor && id != null ? /*#__PURE__*/React.createElement(\"svg\", {\n style: {\n position: 'absolute',\n height: 0,\n visibility: 'hidden',\n width: 0\n }\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"filter\", {\n id: \"tint-\" + id,\n suppressHydrationWarning: true\n }, /*#__PURE__*/React.createElement(\"feFlood\", {\n floodColor: \"\" + tintColor,\n key: tintColor\n }), /*#__PURE__*/React.createElement(\"feComposite\", {\n in2: \"SourceAlpha\",\n operator: \"atop\"\n })))) : null;\n}\n\nfunction getFlatStyle(style, blurRadius, filterId) {\n var flatStyle = _objectSpread({}, StyleSheet.flatten(style));\n\n var filter = flatStyle.filter,\n resizeMode = flatStyle.resizeMode,\n shadowOffset = flatStyle.shadowOffset,\n tintColor = flatStyle.tintColor; // Add CSS filters\n // React Native exposes these features as props and proprietary styles\n\n var filters = [];\n var _filter = null;\n\n if (filter) {\n filters.push(filter);\n }\n\n if (blurRadius) {\n filters.push(\"blur(\" + blurRadius + \"px)\");\n }\n\n if (shadowOffset) {\n var shadowString = resolveShadowValue(flatStyle);\n\n if (shadowString) {\n filters.push(\"drop-shadow(\" + shadowString + \")\");\n }\n }\n\n if (tintColor && filterId != null) {\n filters.push(\"url(#tint-\" + filterId + \")\");\n }\n\n if (filters.length > 0) {\n _filter = filters.join(' ');\n } // These styles are converted to CSS filters applied to the\n // element displaying the background image.\n\n\n delete flatStyle.blurRadius;\n delete flatStyle.shadowColor;\n delete flatStyle.shadowOpacity;\n delete flatStyle.shadowOffset;\n delete flatStyle.shadowRadius;\n delete flatStyle.tintColor; // These styles are not supported on View\n\n delete flatStyle.overlayColor;\n delete flatStyle.resizeMode;\n return [flatStyle, resizeMode, _filter, tintColor];\n}\n\nfunction resolveAssetDimensions(source) {\n if (typeof source === 'number') {\n var _getAssetByID = getAssetByID(source),\n _height = _getAssetByID.height,\n _width = _getAssetByID.width;\n\n return {\n height: _height,\n width: _width\n };\n } else if (source != null && !Array.isArray(source) && typeof source === 'object') {\n var _height2 = source.height,\n _width2 = source.width;\n return {\n height: _height2,\n width: _width2\n };\n }\n}\n\nfunction resolveAssetUri(source) {\n var uri = null;\n\n if (typeof source === 'number') {\n // get the URI from the packager\n var asset = getAssetByID(source);\n var scale = asset.scales[0];\n\n if (asset.scales.length > 1) {\n var preferredScale = PixelRatio.get(); // Get the scale which is closest to the preferred scale\n\n scale = asset.scales.reduce(function (prev, curr) {\n return Math.abs(curr - preferredScale) < Math.abs(prev - preferredScale) ? curr : prev;\n });\n }\n\n var scaleSuffix = scale !== 1 ? \"@\" + scale + \"x\" : '';\n uri = asset ? asset.httpServerLocation + \"/\" + asset.name + scaleSuffix + \".\" + asset.type : '';\n } else if (typeof source === 'string') {\n uri = source;\n } else if (source && typeof source.uri === 'string') {\n uri = source.uri;\n }\n\n if (uri) {\n var match = uri.match(svgDataUriPattern); // inline SVG markup may contain characters (e.g., #, \") that need to be escaped\n\n if (match) {\n var prefix = match[1],\n svg = match[2];\n var encodedSvg = encodeURIComponent(svg);\n return \"\" + prefix + encodedSvg;\n }\n }\n\n return uri;\n}\n\nvar Image = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var accessibilityLabel = props.accessibilityLabel,\n blurRadius = props.blurRadius,\n defaultSource = props.defaultSource,\n draggable = props.draggable,\n onError = props.onError,\n onLayout = props.onLayout,\n onLoad = props.onLoad,\n onLoadEnd = props.onLoadEnd,\n onLoadStart = props.onLoadStart,\n pointerEvents = props.pointerEvents,\n source = props.source,\n style = props.style,\n rest = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"blurRadius\", \"defaultSource\", \"draggable\", \"onError\", \"onLayout\", \"onLoad\", \"onLoadEnd\", \"onLoadStart\", \"pointerEvents\", \"source\", \"style\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.children) {\n throw new Error('The component cannot contain children. If you want to render content on top of the image, consider using the component or absolute positioning.');\n }\n }\n\n var _React$useState = React.useState(function () {\n var uri = resolveAssetUri(source);\n\n if (uri != null) {\n var isLoaded = ImageLoader.has(uri);\n\n if (isLoaded) {\n return LOADED;\n }\n }\n\n return IDLE;\n }),\n state = _React$useState[0],\n updateState = _React$useState[1];\n\n var _React$useState2 = React.useState({}),\n layout = _React$useState2[0],\n updateLayout = _React$useState2[1];\n\n var hasTextAncestor = React.useContext(TextAncestorContext);\n var hiddenImageRef = React.useRef(null);\n var filterRef = React.useRef(_filterId++);\n var requestRef = React.useRef(null);\n var shouldDisplaySource = state === LOADED || state === LOADING && defaultSource == null;\n\n var _getFlatStyle = getFlatStyle(style, blurRadius, filterRef.current),\n flatStyle = _getFlatStyle[0],\n _resizeMode = _getFlatStyle[1],\n filter = _getFlatStyle[2],\n tintColor = _getFlatStyle[3];\n\n var resizeMode = props.resizeMode || _resizeMode || 'cover';\n var selectedSource = shouldDisplaySource ? source : defaultSource;\n var displayImageUri = resolveAssetUri(selectedSource);\n var imageSizeStyle = resolveAssetDimensions(selectedSource);\n var backgroundImage = displayImageUri ? \"url(\\\"\" + displayImageUri + \"\\\")\" : null;\n var backgroundSize = getBackgroundSize(); // Accessibility image allows users to trigger the browser's image context menu\n\n var hiddenImage = displayImageUri ? createElement('img', {\n alt: accessibilityLabel || '',\n classList: [classes.accessibilityImage],\n draggable: draggable || false,\n ref: hiddenImageRef,\n src: displayImageUri\n }) : null;\n\n function getBackgroundSize() {\n if (hiddenImageRef.current != null && (resizeMode === 'center' || resizeMode === 'repeat')) {\n var _hiddenImageRef$curre = hiddenImageRef.current,\n naturalHeight = _hiddenImageRef$curre.naturalHeight,\n naturalWidth = _hiddenImageRef$curre.naturalWidth;\n var _height3 = layout.height,\n _width3 = layout.width;\n\n if (naturalHeight && naturalWidth && _height3 && _width3) {\n var scaleFactor = Math.min(1, _width3 / naturalWidth, _height3 / naturalHeight);\n var x = Math.ceil(scaleFactor * naturalWidth);\n var y = Math.ceil(scaleFactor * naturalHeight);\n return x + \"px \" + y + \"px\";\n }\n }\n }\n\n function handleLayout(e) {\n if (resizeMode === 'center' || resizeMode === 'repeat' || onLayout) {\n var _layout = e.nativeEvent.layout;\n onLayout && onLayout(e);\n updateLayout(_layout);\n }\n } // Image loading\n\n\n var uri = resolveAssetUri(source);\n React.useEffect(function () {\n abortPendingRequest();\n\n if (uri != null) {\n updateState(LOADING);\n\n if (onLoadStart) {\n onLoadStart();\n }\n\n requestRef.current = ImageLoader.load(uri, function load(e) {\n updateState(LOADED);\n\n if (onLoad) {\n onLoad(e);\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n }, function error() {\n updateState(ERRORED);\n\n if (onError) {\n onError({\n nativeEvent: {\n error: \"Failed to load resource \" + uri + \" (404)\"\n }\n });\n }\n\n if (onLoadEnd) {\n onLoadEnd();\n }\n });\n }\n\n function abortPendingRequest() {\n if (requestRef.current != null) {\n ImageLoader.abort(requestRef.current);\n requestRef.current = null;\n }\n }\n\n return abortPendingRequest;\n }, [uri, requestRef, updateState, onError, onLoad, onLoadEnd, onLoadStart]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, {\n accessibilityLabel: accessibilityLabel,\n onLayout: handleLayout,\n pointerEvents: pointerEvents,\n ref: ref,\n style: [styles.root, hasTextAncestor && styles.inline, imageSizeStyle, flatStyle]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.image, resizeModeStyles[resizeMode], {\n backgroundImage: backgroundImage,\n filter: filter\n }, backgroundSize != null && {\n backgroundSize: backgroundSize\n }],\n suppressHydrationWarning: true\n }), hiddenImage, createTintColorSVG(tintColor, filterRef.current));\n});\nImage.displayName = 'Image'; // $FlowIgnore: This is the correct type, but casting makes it unhappy since the variables aren't defined yet\n\nvar ImageWithStatics = Image;\n\nImageWithStatics.getSize = function (uri, success, failure) {\n ImageLoader.getSize(uri, success, failure);\n};\n\nImageWithStatics.prefetch = function (uri) {\n return ImageLoader.prefetch(uri);\n};\n\nImageWithStatics.queryCache = function (uris) {\n return ImageLoader.queryCache(uris);\n};\n\nvar classes = css.create({\n accessibilityImage: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n opacity: 0,\n width: '100%',\n zIndex: -1\n })\n});\nvar styles = StyleSheet.create({\n root: {\n flexBasis: 'auto',\n overflow: 'hidden',\n zIndex: 0\n },\n inline: {\n display: 'inline-flex'\n },\n image: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n backgroundColor: 'transparent',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n height: '100%',\n width: '100%',\n zIndex: -1\n })\n});\nvar resizeModeStyles = StyleSheet.create({\n center: {\n backgroundSize: 'auto'\n },\n contain: {\n backgroundSize: 'contain'\n },\n cover: {\n backgroundSize: 'cover'\n },\n none: {\n backgroundPosition: '0 0',\n backgroundSize: 'auto'\n },\n repeat: {\n backgroundPosition: '0 0',\n backgroundRepeat: 'repeat',\n backgroundSize: 'auto'\n },\n stretch: {\n backgroundSize: '100% 100%'\n }\n});\nexport default ImageWithStatics;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (ExecutionEnvironment.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n getConstants: function getConstants() {\n return {\n doLeftAndRightSwapInRTL: doLeftAndRightSwapInRTL,\n isRTL: isRTL()\n };\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n }\n};\nexport default I18nManager;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport _EventSubscription from './_EventSubscription';\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\nvar EmitterSubscription = /*#__PURE__*/function (_EventSubscription2) {\n _inheritsLoose(EmitterSubscription, _EventSubscription2);\n\n /**\n * @param {EventEmitter} emitter - The event emitter that registered this\n * subscription\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n * this subscription\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n function EmitterSubscription(emitter, subscriber, listener, context) {\n var _this;\n\n _this = _EventSubscription2.call(this, subscriber) || this;\n _this.emitter = emitter;\n _this.listener = listener;\n _this.context = context;\n return _this;\n }\n /**\n * Removes this subscription from the emitter that registered it.\n * Note: we're overriding the `remove()` method of _EventSubscription here\n * but deliberately not calling `super.remove()` as the responsibility\n * for removing the subscription lies with the EventEmitter.\n */\n\n\n var _proto = EmitterSubscription.prototype;\n\n _proto.remove = function remove() {\n this.emitter.removeSubscription(this);\n };\n\n return EmitterSubscription;\n}(_EventSubscription);\n\nexport default EmitterSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\nvar _EventSubscription = /*#__PURE__*/function () {\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n function _EventSubscription(subscriber) {\n this.subscriber = subscriber;\n }\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n\n var _proto = _EventSubscription.prototype;\n\n _proto.remove = function remove() {\n this.subscriber.removeSubscription(this);\n };\n\n return _EventSubscription;\n}();\n\nexport default _EventSubscription;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\nvar EventSubscriptionVendor = /*#__PURE__*/function () {\n function EventSubscriptionVendor() {\n this._subscriptionsForType = {};\n }\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n\n var _proto = EventSubscriptionVendor.prototype;\n\n _proto.addSubscription = function addSubscription(eventType, subscription) {\n invariant(subscription.subscriber === this, 'The subscriber of the subscription is incorrectly set.');\n\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n\n var key = this._subscriptionsForType[eventType].length;\n\n this._subscriptionsForType[eventType].push(subscription);\n\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n }\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n ;\n\n _proto.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType == null) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n var subscriptionsForType = this._subscriptionsForType[eventType];\n\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n }\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @returns {?array}\n */\n ;\n\n _proto.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n}();\n\nexport default EventSubscriptionVendor;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n * @typecheck\n */\nimport invariant from 'fbjs/lib/invariant';\nimport EmitterSubscription from './_EmitterSubscription';\nimport EventSubscriptionVendor from './_EventSubscriptionVendor';\n\nvar sparseFilterPredicate = function sparseFilterPredicate() {\n return true;\n};\n\n/**\n * @class EventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\nvar EventEmitter = /*#__PURE__*/function () {\n /**\n * @constructor\n *\n * @param {EventSubscriptionVendor} subscriber - Optional subscriber instance\n * to use. If omitted, a new subscriber will be created for the emitter.\n */\n function EventEmitter(subscriber) {\n this._subscriber = subscriber || new EventSubscriptionVendor();\n }\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n\n var _proto = EventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this, this._subscriber, listener, context));\n }\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeSubscription = function removeSubscription(subscription) {\n invariant(subscription.emitter === this, 'Subscription does not belong to this emitter.');\n\n this._subscriber.removeSubscription(subscription);\n }\n /**\n * Returns the number of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @returns {number}\n */\n ;\n\n _proto.listenerCount = function listenerCount(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? // We filter out missing entries because the array is sparse.\n // \"callbackfn is called only for elements of the array which actually\n // exist; it is not called for missing elements of the array.\"\n // https://www.ecma-international.org/ecma-262/9.0/index.html#sec-array.prototype.filter\n subscriptions.filter(sparseFilterPredicate).length : 0;\n }\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {...*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n ;\n\n _proto.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n\n if (subscription && subscription.listener) {\n subscription.listener.apply(subscription.context, args);\n }\n }\n }\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeListener = function removeListener(eventType, // FIXME: listeners should return void instead of mixed to prevent issues\n listener) {\n console.error(\"EventEmitter.removeListener('\" + eventType + \"', ...): Method has been \" + 'deprecated. Please instead use `remove()` on the subscription ' + 'returned by `EventEmitter.addListener`.');\n\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n for (var i = 0, l = subscriptions.length; i < l; i++) {\n var subscription = subscriptions[i]; // The subscription may have been removed during this event loop.\n // its listener matches the listener in method parameters\n\n if (subscription && subscription.listener === listener) {\n subscription.remove();\n }\n }\n }\n };\n\n return EventEmitter;\n}();\n\nexport default EventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport EventEmitter from './_EventEmitter';\nexport default EventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport EventEmitter from '../emitter/EventEmitter'; // FIXME: use typed events\n\n/**\n * Global EventEmitter used by the native platform to emit events to JavaScript.\n * Events are identified by globally unique event names.\n *\n * NativeModules that emit events should instead subclass `NativeEventEmitter`.\n */\nexport default new EventEmitter();","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport styleResolver from './styleResolver';\n/**\n * A simple (and dangerous) CSS system.\n * The order of CSS rule insertion is not guaranteed.\n * Avoiding combining 2 or more classes that modify the same property.\n */\n\nvar css = {\n /**\n * const classes = css.create({ base: {}, extra: {} })\n */\n create: function create(rules, group) {\n return styleResolver.createCSS(rules, group);\n }\n};\nexport default css;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar _requestIdleCallback = function _requestIdleCallback(cb, options) {\n return setTimeout(function () {\n var start = Date.now();\n cb({\n didTimeout: false,\n timeRemaining: function timeRemaining() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\n\nvar _cancelIdleCallback = function _cancelIdleCallback(id) {\n clearTimeout(id);\n};\n\nvar isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined';\nvar requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback;\nvar cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback;\nexport default requestIdleCallback;\nexport { cancelIdleCallback };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport requestIdleCallback, { cancelIdleCallback } from '../../modules/requestIdleCallback';\nvar InteractionManager = {\n Events: {\n interactionStart: 'interactionStart',\n interactionComplete: 'interactionComplete'\n },\n\n /**\n * Schedule a function to run after all interactions have completed.\n */\n runAfterInteractions: function runAfterInteractions(task) {\n var handle;\n var promise = new Promise(function (resolve) {\n handle = requestIdleCallback(function () {\n if (task) {\n resolve(task());\n } else {\n resolve();\n }\n });\n });\n return {\n then: promise.then.bind(promise),\n done: promise.then.bind(promise),\n cancel: function cancel() {\n cancelIdleCallback(handle);\n }\n };\n },\n\n /**\n * Notify manager that an interaction has started.\n */\n createInteractionHandle: function createInteractionHandle() {\n return 1;\n },\n\n /**\n * Notify manager that an interaction has completed.\n */\n clearInteractionHandle: function clearInteractionHandle(handle) {\n invariant(!!handle, 'Must provide a handle to clear.');\n },\n addListener: function addListener() {}\n};\nexport default InteractionManager;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * useLayoutEffect throws an error on the server. On the few occasions where is\n * problematic, use this hook.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { useEffect, useLayoutEffect } from 'react';\nvar useLayoutEffectImpl = canUseDOM ? useLayoutEffect : useEffect;\nexport default useLayoutEffectImpl;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function pick(obj, list) {\n var nextObj = {};\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (list[key] === true || // Temporary until ARIA is mapped to explicit props\n key.indexOf('aria-') === 0) {\n nextObj[key] = obj[key];\n }\n }\n }\n\n return nextObj;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../../exports/UIManager';\nimport createDOMProps from '../createDOMProps';\nimport useStable from '../useStable';\nimport { useRef } from 'react';\nvar emptyObject = {};\n\nfunction setNativeProps(node, nativeProps, classList, pointerEvents, style, previousStyleRef) {\n if (node != null && nativeProps) {\n var domProps = createDOMProps(null, _objectSpread(_objectSpread({\n pointerEvents: pointerEvents\n }, nativeProps), {}, {\n classList: [classList, nativeProps.className],\n style: [style, nativeProps.style]\n }));\n var nextDomStyle = domProps.style;\n\n if (previousStyleRef.current != null) {\n if (domProps.style == null) {\n domProps.style = {};\n }\n\n for (var styleName in previousStyleRef.current) {\n if (domProps.style[styleName] == null) {\n domProps.style[styleName] = '';\n }\n }\n }\n\n previousStyleRef.current = nextDomStyle;\n UIManager.updateView(node, domProps);\n }\n}\n/**\n * Adds non-standard methods to the hode element. This is temporarily until an\n * API like `ReactNative.measure(hostRef, callback)` is added to React Native.\n */\n\n\nexport default function usePlatformMethods(_ref) {\n var classList = _ref.classList,\n pointerEvents = _ref.pointerEvents,\n style = _ref.style;\n var previousStyleRef = useRef(null);\n var setNativePropsArgsRef = useRef(null);\n setNativePropsArgsRef.current = {\n classList: classList,\n pointerEvents: pointerEvents,\n style: style\n }; // Avoid creating a new ref on every render. The props only need to be\n // available to 'setNativeProps' when it is called.\n\n var ref = useStable(function () {\n return function (hostNode) {\n if (hostNode != null) {\n hostNode.measure = function (callback) {\n return UIManager.measure(hostNode, callback);\n };\n\n hostNode.measureLayout = function (relativeToNode, success, failure) {\n return UIManager.measureLayout(hostNode, relativeToNode, failure, success);\n };\n\n hostNode.measureInWindow = function (callback) {\n return UIManager.measureInWindow(hostNode, callback);\n };\n\n hostNode.setNativeProps = function (nativeProps) {\n var _ref2 = setNativePropsArgsRef.current || emptyObject,\n classList = _ref2.classList,\n style = _ref2.style,\n pointerEvents = _ref2.pointerEvents;\n\n setNativeProps(hostNode, nativeProps, classList, pointerEvents, style, previousStyleRef);\n };\n }\n };\n });\n return ref;\n}","/**\n * Portions Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0,\n aA = _aA,\n aB = _aB;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n var aGuessT = _aGuessT;\n\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n } // Precompute samples table\n\n\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n if (x === 0) {\n return 0;\n }\n\n if (x === 1) {\n return 1;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport _bezier from './bezier';\n\nvar _ease;\n/**\n * The `Easing` module implements common easing functions. This module is used\n * by [Animate.timing()](docs/animate.html#timing) to convey physically\n * believable motion in animations.\n *\n * You can find a visualization of some common easing functions at\n * http://easings.net/\n *\n * ### Predefined animations\n *\n * The `Easing` module provides several predefined animations through the\n * following methods:\n *\n * - [`back`](docs/easing.html#back) provides a simple animation where the\n * object goes slightly back before moving forward\n * - [`bounce`](docs/easing.html#bounce) provides a bouncing animation\n * - [`ease`](docs/easing.html#ease) provides a simple inertial animation\n * - [`elastic`](docs/easing.html#elastic) provides a simple spring interaction\n *\n * ### Standard functions\n *\n * Three standard easing functions are provided:\n *\n * - [`linear`](docs/easing.html#linear)\n * - [`quad`](docs/easing.html#quad)\n * - [`cubic`](docs/easing.html#cubic)\n *\n * The [`poly`](docs/easing.html#poly) function can be used to implement\n * quartic, quintic, and other higher power functions.\n *\n * ### Additional functions\n *\n * Additional mathematical functions are provided by the following methods:\n *\n * - [`bezier`](docs/easing.html#bezier) provides a cubic bezier curve\n * - [`circle`](docs/easing.html#circle) provides a circular function\n * - [`sin`](docs/easing.html#sin) provides a sinusoidal function\n * - [`exp`](docs/easing.html#exp) provides an exponential function\n *\n * The following helpers are used to modify other easing functions.\n *\n * - [`in`](docs/easing.html#in) runs an easing function forwards\n * - [`inOut`](docs/easing.html#inout) makes any easing function symmetrical\n * - [`out`](docs/easing.html#out) runs an easing function backwards\n */\n\n\nvar Easing = /*#__PURE__*/function () {\n function Easing() {}\n\n /**\n * A stepping function, returns 1 for any positive value of `n`.\n */\n Easing.step0 = function step0(n) {\n return n > 0 ? 1 : 0;\n }\n /**\n * A stepping function, returns 1 if `n` is greater than or equal to 1.\n */\n ;\n\n Easing.step1 = function step1(n) {\n return n >= 1 ? 1 : 0;\n }\n /**\n * A linear function, `f(t) = t`. Position correlates to elapsed time one to\n * one.\n *\n * http://cubic-bezier.com/#0,0,1,1\n */\n ;\n\n Easing.linear = function linear(t) {\n return t;\n }\n /**\n * A simple inertial interaction, similar to an object slowly accelerating to\n * speed.\n *\n * http://cubic-bezier.com/#.42,0,1,1\n */\n ;\n\n Easing.ease = function ease(t) {\n if (!_ease) {\n _ease = Easing.bezier(0.42, 0, 1, 1);\n }\n\n return _ease(t);\n }\n /**\n * A quadratic function, `f(t) = t * t`. Position equals the square of elapsed\n * time.\n *\n * http://easings.net/#easeInQuad\n */\n ;\n\n Easing.quad = function quad(t) {\n return t * t;\n }\n /**\n * A cubic function, `f(t) = t * t * t`. Position equals the cube of elapsed\n * time.\n *\n * http://easings.net/#easeInCubic\n */\n ;\n\n Easing.cubic = function cubic(t) {\n return t * t * t;\n }\n /**\n * A power function. Position is equal to the Nth power of elapsed time.\n *\n * n = 4: http://easings.net/#easeInQuart\n * n = 5: http://easings.net/#easeInQuint\n */\n ;\n\n Easing.poly = function poly(n) {\n return function (t) {\n return Math.pow(t, n);\n };\n }\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n ;\n\n Easing.sin = function sin(t) {\n return 1 - Math.cos(t * Math.PI / 2);\n }\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n ;\n\n Easing.circle = function circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n ;\n\n Easing.exp = function exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n /**\n * A simple elastic interaction, similar to a spring oscillating back and\n * forth.\n *\n * Default bounciness is 1, which overshoots a little bit once. 0 bounciness\n * doesn't overshoot at all, and bounciness of N > 1 will overshoot about N\n * times.\n *\n * http://easings.net/#easeInElastic\n */\n ;\n\n Easing.elastic = function elastic(bounciness) {\n if (bounciness === void 0) {\n bounciness = 1;\n }\n\n var p = bounciness * Math.PI;\n return function (t) {\n return 1 - Math.pow(Math.cos(t * Math.PI / 2), 3) * Math.cos(t * p);\n };\n }\n /**\n * Use with `Animated.parallel()` to create a simple effect where the object\n * animates back slightly as the animation starts.\n *\n * Wolfram Plot:\n *\n * - http://tiny.cc/back_default (s = 1.70158, default)\n */\n ;\n\n Easing.back = function back(s) {\n if (s === void 0) {\n s = 1.70158;\n }\n\n return function (t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n ;\n\n Easing.bounce = function bounce(t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n var _t = t - 1.5 / 2.75;\n\n return 7.5625 * _t * _t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n var _t2 = t - 2.25 / 2.75;\n\n return 7.5625 * _t2 * _t2 + 0.9375;\n }\n\n var t2 = t - 2.625 / 2.75;\n return 7.5625 * t2 * t2 + 0.984375;\n }\n /**\n * Provides a cubic bezier curve, equivalent to CSS Transitions'\n * `transition-timing-function`.\n *\n * A useful tool to visualize cubic bezier curves can be found at\n * http://cubic-bezier.com/\n */\n ;\n\n Easing.bezier = function bezier(x1, y1, x2, y2) {\n return _bezier(x1, y1, x2, y2);\n }\n /**\n * Runs an easing function forwards.\n */\n ;\n\n Easing.in = function _in(easing) {\n return easing;\n }\n /**\n * Runs an easing function backwards.\n */\n ;\n\n Easing.out = function out(easing) {\n return function (t) {\n return 1 - easing(1 - t);\n };\n }\n /**\n * Makes any easing function symmetrical. The easing function will run\n * forwards for half of the duration, then backwards for the rest of the\n * duration.\n */\n ;\n\n Easing.inOut = function inOut(easing) {\n return function (t) {\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n\n return 1 - easing((1 - t) * 2) / 2;\n };\n };\n\n return Easing;\n}();\n\nexport default Easing;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Easing from '../../vendor/react-native/Animated/Easing';\nexport default Easing;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nvar DELAY = 'DELAY';\nvar ERROR = 'ERROR';\nvar LONG_PRESS_DETECTED = 'LONG_PRESS_DETECTED';\nvar NOT_RESPONDER = 'NOT_RESPONDER';\nvar RESPONDER_ACTIVE_LONG_PRESS_START = 'RESPONDER_ACTIVE_LONG_PRESS_START';\nvar RESPONDER_ACTIVE_PRESS_START = 'RESPONDER_ACTIVE_PRESS_START';\nvar RESPONDER_INACTIVE_PRESS_START = 'RESPONDER_INACTIVE_PRESS_START';\nvar RESPONDER_GRANT = 'RESPONDER_GRANT';\nvar RESPONDER_RELEASE = 'RESPONDER_RELEASE';\nvar RESPONDER_TERMINATED = 'RESPONDER_TERMINATED';\nvar Transitions = Object.freeze({\n NOT_RESPONDER: {\n DELAY: ERROR,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: ERROR,\n RESPONDER_TERMINATED: ERROR,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_INACTIVE_PRESS_START: {\n DELAY: RESPONDER_ACTIVE_PRESS_START,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: ERROR\n },\n RESPONDER_ACTIVE_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n RESPONDER_ACTIVE_LONG_PRESS_START: {\n DELAY: ERROR,\n RESPONDER_GRANT: ERROR,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: RESPONDER_ACTIVE_LONG_PRESS_START\n },\n ERROR: {\n DELAY: NOT_RESPONDER,\n RESPONDER_GRANT: RESPONDER_INACTIVE_PRESS_START,\n RESPONDER_RELEASE: NOT_RESPONDER,\n RESPONDER_TERMINATED: NOT_RESPONDER,\n LONG_PRESS_DETECTED: NOT_RESPONDER\n }\n});\n\nvar isActiveSignal = function isActiveSignal(signal) {\n return signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isButtonRole = function isButtonRole(element) {\n return element.getAttribute('role') === 'button';\n};\n\nvar isPressStartSignal = function isPressStartSignal(signal) {\n return signal === RESPONDER_INACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_PRESS_START || signal === RESPONDER_ACTIVE_LONG_PRESS_START;\n};\n\nvar isTerminalSignal = function isTerminalSignal(signal) {\n return signal === RESPONDER_TERMINATED || signal === RESPONDER_RELEASE;\n};\n\nvar isValidKeyPress = function isValidKeyPress(event) {\n var key = event.key,\n target = event.target;\n var role = target.getAttribute('role');\n var isSpacebar = key === ' ' || key === 'Spacebar';\n return key === 'Enter' || isSpacebar && role === 'button';\n};\n\nvar DEFAULT_LONG_PRESS_DELAY_MS = 450; // 500 - 50\n\nvar DEFAULT_PRESS_DELAY_MS = 50;\n/**\n * =========================== PressResponder Tutorial ===========================\n *\n * The `PressResponder` class helps you create press interactions by analyzing the\n * geometry of elements and observing when another responder (e.g. ScrollView)\n * has stolen the touch lock. It offers hooks for your component to provide\n * interaction feedback to the user:\n *\n * - When a press has activated (e.g. highlight an element)\n * - When a press has deactivated (e.g. un-highlight an element)\n * - When a press sould trigger an action, meaning it activated and deactivated\n * while within the geometry of the element without the lock being stolen.\n *\n * A high quality interaction isn't as simple as you might think. There should\n * be a slight delay before activation. Moving your finger beyond an element's\n * bounds should trigger deactivation, but moving the same finger back within an\n * element's bounds should trigger reactivation.\n *\n * In order to use `PressResponder`, do the following:\n *\n * const pressResponder = new PressResponder(config);\n *\n * 2. Choose the rendered component who should collect the press events. On that\n * element, spread `pressability.getEventHandlers()` into its props.\n *\n * return (\n * \n * );\n *\n * 3. Reset `PressResponder` when your component unmounts.\n *\n * componentWillUnmount() {\n * this.state.pressResponder.reset();\n * }\n *\n * ==================== Implementation Details ====================\n *\n * `PressResponder` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * # Geometry\n *\n * ┌────────────────────────┐\n * │ ┌──────────────────┐ │ - Presses start anywhere within `HitRect`.\n * │ │ ┌────────────┐ │ │\n * │ │ │ VisualRect │ │ │\n * │ │ └────────────┘ │ │ - When pressed down for sufficient amount of time\n * │ │ HitRect │ │ before letting up, `VisualRect` activates.\n * │ └──────────────────┘ │\n * │ Out Region o │\n * └────────────────────│───┘\n * └────── When the press is released outside the `HitRect`,\n * the responder is NOT eligible for a \"press\".\n *\n * # State Machine\n *\n * ┌───────────────┐ ◀──── RESPONDER_RELEASE\n * │ NOT_RESPONDER │\n * └───┬───────────┘ ◀──── RESPONDER_TERMINATED\n * │\n * │ RESPONDER_GRANT (HitRect)\n * │\n * ▼\n * ┌─────────────────────┐ ┌───────────────────┐ ┌───────────────────┐\n * │ RESPONDER_INACTIVE_ │ DELAY │ RESPONDER_ACTIVE_ │ T + DELAY │ RESPONDER_ACTIVE_ │\n * │ PRESS_START ├────────▶ │ PRESS_START ├────────────▶ │ LONG_PRESS_START │\n * └─────────────────────┘ └───────────────────┘ └───────────────────┘\n *\n * T + DELAY => LONG_PRESS_DELAY + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the invocation of `onLongPress`. Only when the browser produces a\n * `click` event is `onPress` invoked.\n */\n\nvar PressResponder = /*#__PURE__*/function () {\n function PressResponder(config) {\n this._eventHandlers = null;\n this._isPointerTouch = false;\n this._longPressDelayTimeout = null;\n this._longPressDispatched = false;\n this._pressDelayTimeout = null;\n this._pressOutDelayTimeout = null;\n this._touchState = NOT_RESPONDER;\n this.configure(config);\n }\n\n var _proto = PressResponder.prototype;\n\n _proto.configure = function configure(config) {\n this._config = config;\n }\n /**\n * Resets any pending timers. This should be called on unmount.\n */\n ;\n\n _proto.reset = function reset() {\n this._cancelLongPressDelayTimeout();\n\n this._cancelPressDelayTimeout();\n\n this._cancelPressOutDelayTimeout();\n }\n /**\n * Returns a set of props to spread into the interactive element.\n */\n ;\n\n _proto.getEventHandlers = function getEventHandlers() {\n if (this._eventHandlers == null) {\n this._eventHandlers = this._createEventHandlers();\n }\n\n return this._eventHandlers;\n };\n\n _proto._createEventHandlers = function _createEventHandlers() {\n var _this = this;\n\n var start = function start(event, shouldDelay) {\n event.persist();\n\n _this._cancelPressOutDelayTimeout();\n\n _this._longPressDispatched = false;\n _this._selectionTerminated = false;\n _this._touchState = NOT_RESPONDER;\n _this._isPointerTouch = event.nativeEvent.type === 'touchstart';\n\n _this._receiveSignal(RESPONDER_GRANT, event);\n\n var delayPressStart = normalizeDelay(_this._config.delayPressStart, 0, DEFAULT_PRESS_DELAY_MS);\n\n if (shouldDelay !== false && delayPressStart > 0) {\n _this._pressDelayTimeout = setTimeout(function () {\n _this._receiveSignal(DELAY, event);\n }, delayPressStart);\n } else {\n _this._receiveSignal(DELAY, event);\n }\n\n var delayLongPress = normalizeDelay(_this._config.delayLongPress, 10, DEFAULT_LONG_PRESS_DELAY_MS);\n _this._longPressDelayTimeout = setTimeout(function () {\n _this._handleLongPress(event);\n }, delayLongPress + delayPressStart);\n };\n\n var end = function end(event) {\n _this._receiveSignal(RESPONDER_RELEASE, event);\n };\n\n var keyupHandler = function keyupHandler(event) {\n var onPress = _this._config.onPress;\n var target = event.target;\n\n if (_this._touchState !== NOT_RESPONDER && isValidKeyPress(event)) {\n end(event);\n document.removeEventListener('keyup', keyupHandler);\n var role = target.getAttribute('role');\n var elementType = target.tagName.toLowerCase();\n var isNativeInteractiveElement = role === 'link' || elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea';\n\n if (onPress != null && !isNativeInteractiveElement) {\n onPress(event);\n }\n }\n };\n\n return {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n var disabled = _this._config.disabled;\n\n if (disabled && isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n\n if (disabled == null) {\n return true;\n }\n\n return !disabled;\n },\n onKeyDown: function onKeyDown(event) {\n var disabled = _this._config.disabled;\n var key = event.key,\n target = event.target;\n\n if (!disabled && isValidKeyPress(event)) {\n if (_this._touchState === NOT_RESPONDER) {\n start(event, false); // Listen to 'keyup' on document to account for situations where\n // focus is moved to another element during 'keydown'.\n\n document.addEventListener('keyup', keyupHandler);\n }\n\n var role = target.getAttribute('role');\n var isSpacebarKey = key === ' ' || key === 'Spacebar';\n\n var _isButtonRole = role === 'button' || role === 'menuitem';\n\n if (isSpacebarKey && _isButtonRole) {\n // Prevent spacebar scrolling the window\n event.preventDefault();\n }\n\n event.stopPropagation();\n }\n },\n onResponderGrant: function onResponderGrant(event) {\n return start(event);\n },\n onResponderMove: function onResponderMove(event) {\n if (_this._config.onPressMove != null) {\n _this._config.onPressMove(event);\n }\n\n var touch = getTouchFromResponderEvent(event);\n\n if (_this._touchActivatePosition != null) {\n var deltaX = _this._touchActivatePosition.pageX - touch.pageX;\n var deltaY = _this._touchActivatePosition.pageY - touch.pageY;\n\n if (Math.hypot(deltaX, deltaY) > 10) {\n _this._cancelLongPressDelayTimeout();\n }\n }\n },\n onResponderRelease: function onResponderRelease(event) {\n return end(event);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n if (event.nativeEvent.type === 'selectionchange') {\n _this._selectionTerminated = true;\n }\n\n _this._receiveSignal(RESPONDER_TERMINATED, event);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n var _this$_config = _this._config,\n cancelable = _this$_config.cancelable,\n disabled = _this$_config.disabled,\n onLongPress = _this$_config.onLongPress; // If `onLongPress` is provided, don't terminate on `contextmenu` as default\n // behavior will be prevented for non-mouse pointers.\n\n if (!disabled && onLongPress != null && _this._isPointerTouch && event.nativeEvent.type === 'contextmenu') {\n return false;\n }\n\n if (cancelable == null) {\n return true;\n }\n\n return cancelable;\n },\n // NOTE: this diverges from react-native in 3 significant ways:\n // * The `onPress` callback is not connected to the responder system (the native\n // `click` event must be used but is dispatched in many scenarios where no pointers\n // are on the screen.) Therefore, it's possible for `onPress` to be called without\n // `onPress{Start,End}` being called first.\n // * The `onPress` callback is only be called on the first ancestor of the native\n // `click` target that is using the PressResponder.\n // * The event's `nativeEvent` is a `MouseEvent` not a `TouchEvent`.\n onClick: function onClick(event) {\n var _this$_config2 = _this._config,\n disabled = _this$_config2.disabled,\n onPress = _this$_config2.onPress;\n\n if (!disabled) {\n // If long press dispatched, cancel default click behavior.\n // If the responder terminated because text was selected during the gesture,\n // cancel the default click behavior.\n event.stopPropagation();\n\n if (_this._longPressDispatched || _this._selectionTerminated) {\n event.preventDefault();\n } else if (onPress != null && event.altKey === false) {\n onPress(event);\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n },\n // If `onLongPress` is provided and a touch pointer is being used, prevent the\n // default context menu from opening.\n onContextMenu: function onContextMenu(event) {\n var _this$_config3 = _this._config,\n disabled = _this$_config3.disabled,\n onLongPress = _this$_config3.onLongPress;\n\n if (!disabled) {\n if (onLongPress != null && _this._isPointerTouch && !event.defaultPrevented) {\n event.preventDefault();\n event.stopPropagation();\n }\n } else {\n if (isButtonRole(event.currentTarget)) {\n event.stopPropagation();\n }\n }\n }\n };\n }\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n */\n ;\n\n _proto._receiveSignal = function _receiveSignal(signal, event) {\n var prevState = this._touchState;\n var nextState = null;\n\n if (Transitions[prevState] != null) {\n nextState = Transitions[prevState][signal];\n }\n\n if (this._touchState === NOT_RESPONDER && signal === RESPONDER_RELEASE) {\n return;\n }\n\n if (nextState == null || nextState === ERROR) {\n console.error(\"PressResponder: Invalid signal \" + signal + \" for state \" + prevState + \" on responder\");\n } else if (prevState !== nextState) {\n this._performTransitionSideEffects(prevState, nextState, signal, event);\n\n this._touchState = nextState;\n }\n }\n /**\n * Performs a transition between touchable states and identify any activations\n * or deactivations (and callback invocations).\n */\n ;\n\n _proto._performTransitionSideEffects = function _performTransitionSideEffects(prevState, nextState, signal, event) {\n if (isTerminalSignal(signal)) {\n this._isPointerTouch = false;\n this._touchActivatePosition = null;\n\n this._cancelLongPressDelayTimeout();\n }\n\n if (isPressStartSignal(prevState) && signal === LONG_PRESS_DETECTED) {\n var onLongPress = this._config.onLongPress; // Long press is not supported for keyboards because 'click' can be dispatched\n // immediately (and multiple times) after 'keydown'.\n\n if (onLongPress != null && event.nativeEvent.key == null) {\n onLongPress(event);\n this._longPressDispatched = true;\n }\n }\n\n var isPrevActive = isActiveSignal(prevState);\n var isNextActive = isActiveSignal(nextState);\n\n if (!isPrevActive && isNextActive) {\n this._activate(event);\n } else if (isPrevActive && !isNextActive) {\n this._deactivate(event);\n }\n\n if (isPressStartSignal(prevState) && signal === RESPONDER_RELEASE) {\n var _this$_config4 = this._config,\n _onLongPress = _this$_config4.onLongPress,\n onPress = _this$_config4.onPress;\n\n if (onPress != null) {\n var isPressCanceledByLongPress = _onLongPress != null && prevState === RESPONDER_ACTIVE_LONG_PRESS_START;\n\n if (!isPressCanceledByLongPress) {\n // If we never activated (due to delays), activate and deactivate now.\n if (!isNextActive && !isPrevActive) {\n this._activate(event);\n\n this._deactivate(event);\n }\n }\n }\n }\n\n this._cancelPressDelayTimeout();\n };\n\n _proto._activate = function _activate(event) {\n var _this$_config5 = this._config,\n onPressChange = _this$_config5.onPressChange,\n onPressStart = _this$_config5.onPressStart;\n var touch = getTouchFromResponderEvent(event);\n this._touchActivatePosition = {\n pageX: touch.pageX,\n pageY: touch.pageY\n };\n\n if (onPressStart != null) {\n onPressStart(event);\n }\n\n if (onPressChange != null) {\n onPressChange(true);\n }\n };\n\n _proto._deactivate = function _deactivate(event) {\n var _this$_config6 = this._config,\n onPressChange = _this$_config6.onPressChange,\n onPressEnd = _this$_config6.onPressEnd;\n\n function end() {\n if (onPressEnd != null) {\n onPressEnd(event);\n }\n\n if (onPressChange != null) {\n onPressChange(false);\n }\n }\n\n var delayPressEnd = normalizeDelay(this._config.delayPressEnd);\n\n if (delayPressEnd > 0) {\n this._pressOutDelayTimeout = setTimeout(function () {\n end();\n }, delayPressEnd);\n } else {\n end();\n }\n };\n\n _proto._handleLongPress = function _handleLongPress(event) {\n if (this._touchState === RESPONDER_ACTIVE_PRESS_START || this._touchState === RESPONDER_ACTIVE_LONG_PRESS_START) {\n this._receiveSignal(LONG_PRESS_DETECTED, event);\n }\n };\n\n _proto._cancelLongPressDelayTimeout = function _cancelLongPressDelayTimeout() {\n if (this._longPressDelayTimeout != null) {\n clearTimeout(this._longPressDelayTimeout);\n this._longPressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressDelayTimeout = function _cancelPressDelayTimeout() {\n if (this._pressDelayTimeout != null) {\n clearTimeout(this._pressDelayTimeout);\n this._pressDelayTimeout = null;\n }\n };\n\n _proto._cancelPressOutDelayTimeout = function _cancelPressOutDelayTimeout() {\n if (this._pressOutDelayTimeout != null) {\n clearTimeout(this._pressOutDelayTimeout);\n this._pressOutDelayTimeout = null;\n }\n };\n\n return PressResponder;\n}();\n\nexport { PressResponder as default };\n\nfunction normalizeDelay(delay, min, fallback) {\n if (min === void 0) {\n min = 0;\n }\n\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return Math.max(min, delay !== null && delay !== void 0 ? delay : fallback);\n}\n\nfunction getTouchFromResponderEvent(event) {\n var _event$nativeEvent = event.nativeEvent,\n changedTouches = _event$nativeEvent.changedTouches,\n touches = _event$nativeEvent.touches;\n\n if (touches != null && touches.length > 0) {\n return touches[0];\n }\n\n if (changedTouches != null && changedTouches.length > 0) {\n return changedTouches[0];\n }\n\n return event.nativeEvent;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport PressResponder from './PressResponder';\nimport { useDebugValue, useEffect, useRef } from 'react';\nexport default function usePressEvents(hostRef, config) {\n var pressResponderRef = useRef(null);\n\n if (pressResponderRef.current == null) {\n pressResponderRef.current = new PressResponder(config);\n }\n\n var pressResponder = pressResponderRef.current; // Re-configure to use the current node and configuration.\n\n useEffect(function () {\n pressResponder.configure(config);\n }, [config, pressResponder]); // Reset the `pressResponder` when cleanup needs to occur. This is\n // a separate effect because we do not want to rest the responder when `config` changes.\n\n useEffect(function () {\n return function () {\n pressResponder.reset();\n };\n }, [pressResponder]);\n useDebugValue(config);\n return pressResponder.getEventHandlers();\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\n/**\n * A simple class for batching up invocations of a low-pri callback. A timeout is set to run the\n * callback once after a delay, no matter how many times it's scheduled. Once the delay is reached,\n * InteractionManager.runAfterInteractions is used to invoke the callback after any hi-pri\n * interactions are done running.\n *\n * Make sure to cleanup with dispose(). Example:\n *\n * class Widget extends React.Component {\n * _batchedSave: new Batchinator(() => this._saveState, 1000);\n * _saveSate() {\n * // save this.state to disk\n * }\n * componentDidUpdate() {\n * this._batchedSave.schedule();\n * }\n * componentWillUnmount() {\n * this._batchedSave.dispose();\n * }\n * ...\n * }\n */\n\nvar Batchinator = /*#__PURE__*/function () {\n function Batchinator(callback, delayMS) {\n this._delay = delayMS;\n this._callback = callback;\n }\n /*\n * Cleanup any pending tasks.\n *\n * By default, if there is a pending task the callback is run immediately. Set the option abort to\n * true to not call the callback if it was pending.\n */\n\n\n var _proto = Batchinator.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {\n abort: false\n };\n }\n\n if (this._taskHandle) {\n this._taskHandle.cancel();\n\n if (!options.abort) {\n this._callback();\n }\n\n this._taskHandle = null;\n }\n };\n\n _proto.schedule = function schedule() {\n var _this = this;\n\n if (this._taskHandle) {\n return;\n }\n\n var timeoutHandle = setTimeout(function () {\n _this._taskHandle = InteractionManager.runAfterInteractions(function () {\n // Note that we clear the handle before invoking the callback so that if the callback calls\n // schedule again, it will actually schedule another task.\n _this._taskHandle = null;\n\n _this._callback();\n });\n }, this._delay);\n this._taskHandle = {\n cancel: function cancel() {\n return clearTimeout(timeoutHandle);\n }\n };\n };\n\n return Batchinator;\n}();\n\nexport default Batchinator;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * A Utility class for calculating viewable items based on current metrics like scroll position and\n * layout.\n *\n * An item is said to be in a \"viewable\" state when any of the following\n * is true for longer than `minimumViewTime` milliseconds (after an interaction if `waitForInteraction`\n * is true):\n *\n * - Occupying >= `viewAreaCoveragePercentThreshold` of the view area XOR fraction of the item\n * visible in the view area >= `itemVisiblePercentThreshold`.\n * - Entirely visible on screen\n */\nvar ViewabilityHelper = /*#__PURE__*/function () {\n function ViewabilityHelper(config) {\n if (config === void 0) {\n config = {\n viewAreaCoveragePercentThreshold: 0\n };\n }\n\n this._hasInteracted = false;\n this._timers = new Set();\n this._viewableIndices = [];\n this._viewableItems = new Map();\n this._config = config;\n }\n /**\n * Cleanup, e.g. on unmount. Clears any pending timers.\n */\n\n\n var _proto = ViewabilityHelper.prototype;\n\n _proto.dispose = function dispose() {\n this._timers.forEach(clearTimeout);\n }\n /**\n * Determines which items are viewable based on the current metrics and config.\n */\n ;\n\n _proto.computeViewableItems = function computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange) {\n var _this$_config = this._config,\n itemVisiblePercentThreshold = _this$_config.itemVisiblePercentThreshold,\n viewAreaCoveragePercentThreshold = _this$_config.viewAreaCoveragePercentThreshold;\n var viewAreaMode = viewAreaCoveragePercentThreshold != null;\n var viewablePercentThreshold = viewAreaMode ? viewAreaCoveragePercentThreshold : itemVisiblePercentThreshold;\n invariant(viewablePercentThreshold != null && itemVisiblePercentThreshold != null !== (viewAreaCoveragePercentThreshold != null), 'Must set exactly one of itemVisiblePercentThreshold or viewAreaCoveragePercentThreshold');\n var viewableIndices = [];\n\n if (itemCount === 0) {\n return viewableIndices;\n }\n\n var firstVisible = -1;\n\n var _ref = renderRange || {\n first: 0,\n last: itemCount - 1\n },\n first = _ref.first,\n last = _ref.last;\n\n if (last >= itemCount) {\n console.warn('Invalid render range computing viewability ' + JSON.stringify({\n renderRange: renderRange,\n itemCount: itemCount\n }));\n return [];\n }\n\n for (var idx = first; idx <= last; idx++) {\n var metrics = getFrameMetrics(idx);\n\n if (!metrics) {\n continue;\n }\n\n var top = metrics.offset - scrollOffset;\n var bottom = top + metrics.length;\n\n if (top < viewportHeight && bottom > 0) {\n firstVisible = idx;\n\n if (_isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, metrics.length)) {\n viewableIndices.push(idx);\n }\n } else if (firstVisible >= 0) {\n break;\n }\n }\n\n return viewableIndices;\n }\n /**\n * Figures out which items are viewable and how that has changed from before and calls\n * `onViewableItemsChanged` as appropriate.\n */\n ;\n\n _proto.onUpdate = function onUpdate(itemCount, scrollOffset, viewportHeight, getFrameMetrics, createViewToken, onViewableItemsChanged, renderRange) {\n var _this = this;\n\n if (this._config.waitForInteraction && !this._hasInteracted || itemCount === 0 || !getFrameMetrics(0)) {\n return;\n }\n\n var viewableIndices = [];\n\n if (itemCount) {\n viewableIndices = this.computeViewableItems(itemCount, scrollOffset, viewportHeight, getFrameMetrics, renderRange);\n }\n\n if (this._viewableIndices.length === viewableIndices.length && this._viewableIndices.every(function (v, ii) {\n return v === viewableIndices[ii];\n })) {\n // We might get a lot of scroll events where visibility doesn't change and we don't want to do\n // extra work in those cases.\n return;\n }\n\n this._viewableIndices = viewableIndices;\n\n if (this._config.minimumViewTime) {\n var handle = setTimeout(function () {\n _this._timers.delete(handle);\n\n _this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }, this._config.minimumViewTime);\n\n this._timers.add(handle);\n } else {\n this._onUpdateSync(viewableIndices, onViewableItemsChanged, createViewToken);\n }\n }\n /**\n * clean-up cached _viewableIndices to evaluate changed items on next update\n */\n ;\n\n _proto.resetViewableIndices = function resetViewableIndices() {\n this._viewableIndices = [];\n }\n /**\n * Records that an interaction has happened even if there has been no scroll.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n this._hasInteracted = true;\n };\n\n _proto._onUpdateSync = function _onUpdateSync( // $FlowFixMe\n viewableIndicesToCheck, // $FlowFixMe\n onViewableItemsChanged, // $FlowFixMe\n createViewToken) {\n var _this2 = this;\n\n // Filter out indices that have gone out of view since this call was scheduled.\n viewableIndicesToCheck = viewableIndicesToCheck.filter(function (ii) {\n return _this2._viewableIndices.includes(ii);\n });\n var prevItems = this._viewableItems;\n var nextItems = new Map(viewableIndicesToCheck.map(function (ii) {\n var viewable = createViewToken(ii, true);\n return [viewable.key, viewable];\n }));\n var changed = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(nextItems), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n viewable = _step$value[1];\n\n if (!prevItems.has(key)) {\n changed.push(viewable);\n }\n }\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(prevItems), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _key = _step2$value[0],\n _viewable = _step2$value[1];\n\n if (!nextItems.has(_key)) {\n changed.push(_objectSpread(_objectSpread({}, _viewable), {}, {\n isViewable: false\n }));\n }\n }\n\n if (changed.length > 0) {\n this._viewableItems = nextItems;\n onViewableItemsChanged({\n viewableItems: Array.from(nextItems.values()),\n changed: changed,\n viewabilityConfig: this._config\n });\n }\n };\n\n return ViewabilityHelper;\n}();\n\nfunction _isViewable(viewAreaMode, viewablePercentThreshold, top, bottom, viewportHeight, itemLength) {\n if (_isEntirelyVisible(top, bottom, viewportHeight)) {\n return true;\n } else {\n var pixels = _getPixelsVisible(top, bottom, viewportHeight);\n\n var percent = 100 * (viewAreaMode ? pixels / viewportHeight : pixels / itemLength);\n return percent >= viewablePercentThreshold;\n }\n}\n\nfunction _getPixelsVisible(top, bottom, viewportHeight) {\n var visibleHeight = Math.min(bottom, viewportHeight) - Math.max(top, 0);\n return Math.max(0, visibleHeight);\n}\n\nfunction _isEntirelyVisible(top, bottom, viewportHeight) {\n return top >= 0 && bottom <= viewportHeight && bottom > top;\n}\n\nexport default ViewabilityHelper;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n/**\n * Intentional info-level logging for clear separation from ad-hoc console debug logging.\n */\n\nfunction infoLog() {\n var _console;\n\n return (_console = console).log.apply(_console, arguments);\n}\n\nexport default infoLog;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\n/**\n * Used to find the indices of the frames that overlap the given offsets. Useful for finding the\n * items that bound different windows of content, such as the visible area or the buffered overscan\n * area.\n */\n\nfunction elementsThatOverlapOffsets(offsets, itemCount, getFrameMetrics) {\n var out = [];\n var outLength = 0;\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = getFrameMetrics(ii);\n var trailingOffset = frame.offset + frame.length;\n\n for (var kk = 0; kk < offsets.length; kk++) {\n if (out[kk] == null && trailingOffset >= offsets[kk]) {\n out[kk] = ii;\n outLength++;\n\n if (kk === offsets.length - 1) {\n invariant(outLength === offsets.length, 'bad offsets input, should be in increasing order: %s', JSON.stringify(offsets));\n return out;\n }\n }\n }\n }\n\n return out;\n}\n/**\n * Computes the number of elements in the `next` range that are new compared to the `prev` range.\n * Handy for calculating how many new items will be rendered when the render window changes so we\n * can restrict the number of new items render at once so that content can appear on the screen\n * faster.\n */\n\n\nfunction newRangeCount(prev, next) {\n return next.last - next.first + 1 - Math.max(0, 1 + Math.min(next.last, prev.last) - Math.max(next.first, prev.first));\n}\n/**\n * Custom logic for determining which items should be rendered given the current frame and scroll\n * metrics, as well as the previous render state. The algorithm may evolve over time, but generally\n * prioritizes the visible area first, then expands that with overscan regions ahead and behind,\n * biased in the direction of scroll.\n */\n\n\nfunction computeWindowedRenderLimits(props, prev, getFrameMetricsApprox, scrollMetrics) {\n var data = props.data,\n getItemCount = props.getItemCount,\n maxToRenderPerBatch = props.maxToRenderPerBatch,\n windowSize = props.windowSize;\n var itemCount = getItemCount(data);\n\n if (itemCount === 0) {\n return prev;\n }\n\n var offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Start with visible area, then compute maximum overscan region by expanding from there, biased\n // in the direction of scroll. Total overscan area is capped, which should cap memory consumption\n // too.\n\n var visibleBegin = Math.max(0, offset);\n var visibleEnd = visibleBegin + visibleLength;\n var overscanLength = (windowSize - 1) * visibleLength; // Considering velocity seems to introduce more churn than it's worth.\n\n var leadFactor = 0.5; // Math.max(0, Math.min(1, velocity / 25 + 0.5));\n\n var fillPreference = velocity > 1 ? 'after' : velocity < -1 ? 'before' : 'none';\n var overscanBegin = Math.max(0, visibleBegin - (1 - leadFactor) * overscanLength);\n var overscanEnd = Math.max(0, visibleEnd + leadFactor * overscanLength);\n var lastItemOffset = getFrameMetricsApprox(itemCount - 1).offset;\n\n if (lastItemOffset < overscanBegin) {\n // Entire list is before our overscan window\n return {\n first: Math.max(0, itemCount - 1 - maxToRenderPerBatch),\n last: itemCount - 1\n };\n } // Find the indices that correspond to the items at the render boundaries we're targeting.\n\n\n var _elementsThatOverlapO = elementsThatOverlapOffsets([overscanBegin, visibleBegin, visibleEnd, overscanEnd], props.getItemCount(props.data), getFrameMetricsApprox),\n overscanFirst = _elementsThatOverlapO[0],\n first = _elementsThatOverlapO[1],\n last = _elementsThatOverlapO[2],\n overscanLast = _elementsThatOverlapO[3];\n\n overscanFirst = overscanFirst == null ? 0 : overscanFirst;\n first = first == null ? Math.max(0, overscanFirst) : first;\n overscanLast = overscanLast == null ? itemCount - 1 : overscanLast;\n last = last == null ? Math.min(overscanLast, first + maxToRenderPerBatch - 1) : last;\n var visible = {\n first: first,\n last: last\n }; // We want to limit the number of new cells we're rendering per batch so that we can fill the\n // content on the screen quickly. If we rendered the entire overscan window at once, the user\n // could be staring at white space for a long time waiting for a bunch of offscreen content to\n // render.\n\n var newCellCount = newRangeCount(prev, visible);\n\n while (true) {\n if (first <= overscanFirst && last >= overscanLast) {\n // If we fill the entire overscan range, we're done.\n break;\n }\n\n var maxNewCells = newCellCount >= maxToRenderPerBatch;\n var firstWillAddMore = first <= prev.first || first > prev.last;\n var firstShouldIncrement = first > overscanFirst && (!maxNewCells || !firstWillAddMore);\n var lastWillAddMore = last >= prev.last || last < prev.first;\n var lastShouldIncrement = last < overscanLast && (!maxNewCells || !lastWillAddMore);\n\n if (maxNewCells && !firstShouldIncrement && !lastShouldIncrement) {\n // We only want to stop if we've hit maxNewCells AND we cannot increment first or last\n // without rendering new items. This let's us preserve as many already rendered items as\n // possible, reducing render churn and keeping the rendered overscan range as large as\n // possible.\n break;\n }\n\n if (firstShouldIncrement && !(fillPreference === 'after' && lastShouldIncrement && lastWillAddMore)) {\n if (firstWillAddMore) {\n newCellCount++;\n }\n\n first--;\n }\n\n if (lastShouldIncrement && !(fillPreference === 'before' && firstShouldIncrement && firstWillAddMore)) {\n if (lastWillAddMore) {\n newCellCount++;\n }\n\n last++;\n }\n }\n\n if (!(last >= first && first >= 0 && last < itemCount && first >= overscanFirst && last <= overscanLast && first <= visible.first && last >= visible.last)) {\n throw new Error('Bad window calculation ' + JSON.stringify({\n first: first,\n last: last,\n itemCount: itemCount,\n overscanFirst: overscanFirst,\n overscanLast: overscanLast,\n visible: visible\n }));\n }\n\n return {\n first: first,\n last: last\n };\n}\n\nvar VirtualizeUtils = {\n computeWindowedRenderLimits: computeWindowedRenderLimits,\n elementsThatOverlapOffsets: elementsThatOverlapOffsets,\n newRangeCount: newRangeCount\n};\nexport { computeWindowedRenderLimits, elementsThatOverlapOffsets, newRangeCount };\nexport default VirtualizeUtils;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as React from 'react';\nimport { useMemo, useContext } from 'react';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nexport var VirtualizedListContext = /*#__PURE__*/React.createContext(null);\n\nif (__DEV__) {\n VirtualizedListContext.displayName = 'VirtualizedListContext';\n}\n/**\n * Resets the context. Intended for use by portal-like components (e.g. Modal).\n */\n\n\nexport function VirtualizedListContextResetter(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: null\n }, children);\n}\n/**\n * Sets the context with memoization. Intended to be used by `VirtualizedList`.\n */\n\nexport function VirtualizedListContextProvider(_ref2) {\n var children = _ref2.children,\n value = _ref2.value;\n // Avoid setting a newly created context object if the values are identical.\n var context = useMemo(function () {\n return {\n cellKey: null,\n getScrollMetrics: value.getScrollMetrics,\n horizontal: value.horizontal,\n getOutermostParentListRef: value.getOutermostParentListRef,\n getNestedChildState: value.getNestedChildState,\n registerAsNestedChild: value.registerAsNestedChild,\n unregisterAsNestedChild: value.unregisterAsNestedChild,\n debugInfo: {\n cellKey: value.debugInfo.cellKey,\n horizontal: value.debugInfo.horizontal,\n listKey: value.debugInfo.listKey,\n parent: value.debugInfo.parent\n }\n };\n }, [value.getScrollMetrics, value.horizontal, value.getOutermostParentListRef, value.getNestedChildState, value.registerAsNestedChild, value.unregisterAsNestedChild, value.debugInfo.cellKey, value.debugInfo.horizontal, value.debugInfo.listKey, value.debugInfo.parent]);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context\n }, children);\n}\n/**\n * Sets the `cellKey`. Intended to be used by `VirtualizedList` for each cell.\n */\n\nexport function VirtualizedListCellContextProvider(_ref3) {\n var cellKey = _ref3.cellKey,\n children = _ref3.children;\n var context = useContext(VirtualizedListContext);\n return /*#__PURE__*/React.createElement(VirtualizedListContext.Provider, {\n value: context == null ? null : _objectSpread(_objectSpread({}, context), {}, {\n cellKey: cellKey\n })\n }, children);\n}","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport Batchinator from '../Batchinator';\nimport FillRateHelper from '../FillRateHelper';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport RefreshControl from '../../../exports/RefreshControl';\nimport ScrollView from '../../../exports/ScrollView';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport UIManager from '../../../exports/UIManager';\nimport View from '../../../exports/View';\nimport ViewabilityHelper from '../ViewabilityHelper';\nimport findNodeHandle from '../../../exports/findNodeHandle';\nvar flattenStyle = StyleSheet.flatten;\nimport infoLog from '../infoLog';\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport { computeWindowedRenderLimits } from '../VirtualizeUtils';\nimport { VirtualizedListCellContextProvider, VirtualizedListContext, VirtualizedListContextProvider } from './VirtualizedListContext.js';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar _usedIndexForKey = false;\nvar _keylessItemComponentName = '';\n\n/**\n * Base implementation for the more convenient [``](https://reactnative.dev/docs/flatlist.html)\n * and [``](https://reactnative.dev/docs/sectionlist.html) components, which are also better\n * documented. In general, this should only really be used if you need more flexibility than\n * `FlatList` provides, e.g. for use with immutable data instead of plain arrays.\n *\n * Virtualization massively improves memory consumption and performance of large lists by\n * maintaining a finite render window of active items and replacing all items outside of the render\n * window with appropriately sized blank space. The window adapts to scrolling behavior, and items\n * are rendered incrementally with low-pri (after any running interactions) if they are far from the\n * visible area, or with hi-pri otherwise to minimize the potential of seeing blank space.\n *\n * Some caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` or `id` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nvar VirtualizedList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedList, _React$PureComponent);\n\n var _proto = VirtualizedList.prototype;\n\n // scrollToEnd may be janky without getItemLayout prop\n _proto.scrollToEnd = function scrollToEnd(params) {\n var animated = params ? params.animated : true;\n var veryLast = this.props.getItemCount(this.props.data) - 1;\n\n var frame = this._getFrameMetricsApprox(veryLast);\n\n var offset = Math.max(0, frame.offset + frame.length + this._footerLength - this._scrollMetrics.visibleLength);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToIndex may be janky without getItemLayout prop\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n var _this$props = this.props,\n data = _this$props.data,\n horizontal = _this$props.horizontal,\n getItemCount = _this$props.getItemCount,\n getItemLayout = _this$props.getItemLayout,\n onScrollToIndexFailed = _this$props.onScrollToIndexFailed;\n var animated = params.animated,\n index = params.index,\n viewOffset = params.viewOffset,\n viewPosition = params.viewPosition;\n invariant(index >= 0, \"scrollToIndex out of range: requested index \" + index + \" but minimum is 0\");\n invariant(getItemCount(data) >= 1, \"scrollToIndex out of range: item length \" + getItemCount(data) + \" but minimum is 1\");\n invariant(index < getItemCount(data), \"scrollToIndex out of range: requested index \" + index + \" is out of 0 to \" + (getItemCount(data) - 1));\n\n if (!getItemLayout && index > this._highestMeasuredFrameIndex) {\n invariant(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, ' + 'otherwise there is no way to know the location of offscreen indices or handle failures.');\n onScrollToIndexFailed({\n averageItemLength: this._averageCellLength,\n highestMeasuredFrameIndex: this._highestMeasuredFrameIndex,\n index: index\n });\n return;\n }\n\n var frame = this._getFrameMetricsApprox(index);\n\n var offset = Math.max(0, frame.offset - (viewPosition || 0) * (this._scrollMetrics.visibleLength - frame.length)) - (viewOffset || 0);\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n } // scrollToItem may be janky without getItemLayout prop. Required linear scan through items -\n // use scrollToIndex instead if possible.\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n var item = params.item;\n var _this$props2 = this.props,\n data = _this$props2.data,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount;\n var itemCount = getItemCount(data);\n\n for (var _index = 0; _index < itemCount; _index++) {\n if (getItem(data, _index) === item) {\n this.scrollToIndex(_objectSpread(_objectSpread({}, params), {}, {\n index: _index\n }));\n break;\n }\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Param `offset` expects the offset to scroll to.\n * In case of `horizontal` is true, the offset is the x-value,\n * in any other case the offset is the y-value.\n *\n * Param `animated` (`true` by default) defines whether the list\n * should do an animation while scrolling.\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n var animated = params.animated,\n offset = params.offset;\n\n if (this._scrollRef == null) {\n return;\n }\n\n if (this._scrollRef.scrollTo == null) {\n console.warn('No scrollTo method provided. This may be because you have two nested ' + 'VirtualizedLists with the same orientation, or because you are ' + 'using a custom component that does not implement scrollTo.');\n return;\n }\n\n this._scrollRef.scrollTo(this.props.horizontal ? {\n x: offset,\n animated: animated\n } : {\n y: offset,\n animated: animated\n });\n };\n\n _proto.recordInteraction = function recordInteraction() {\n this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref.recordInteraction();\n });\n\n this._viewabilityTuples.forEach(function (t) {\n t.viewabilityHelper.recordInteraction();\n });\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._scrollRef == null) {\n return;\n }\n\n this._scrollRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n * Note that `this._scrollRef` might not be a `ScrollView`, so we\n * need to check that it responds to `getScrollResponder` before calling it.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._scrollRef && this._scrollRef.getScrollResponder) {\n return this._scrollRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n return this._scrollRef.getScrollableNode();\n } else {\n return findNodeHandle(this._scrollRef);\n }\n };\n\n _proto.getScrollRef = function getScrollRef() {\n if (this._scrollRef && this._scrollRef.getScrollRef) {\n return this._scrollRef.getScrollRef();\n } else {\n return this._scrollRef;\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._scrollRef) {\n this._scrollRef.setNativeProps(props);\n }\n };\n\n _proto._getCellKey = function _getCellKey() {\n var _this$context;\n\n return ((_this$context = this.context) == null ? void 0 : _this$context.cellKey) || 'rootList';\n };\n\n _proto._getListKey = function _getListKey() {\n return this.props.listKey || this._getCellKey();\n };\n\n _proto._getDebugInfo = function _getDebugInfo() {\n var _this$context2;\n\n return {\n listKey: this._getListKey(),\n cellKey: this._getCellKey(),\n horizontal: !!this.props.horizontal,\n parent: (_this$context2 = this.context) == null ? void 0 : _this$context2.debugInfo\n };\n };\n\n _proto.hasMore = function hasMore() {\n return this._hasMore;\n };\n\n function VirtualizedList(_props) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props) || this;\n\n _this._getScrollMetrics = function () {\n return _this._scrollMetrics;\n };\n\n _this._getOutermostParentListRef = function () {\n if (_this._isNestedWithSameOrientation()) {\n return _this.context.getOutermostParentListRef();\n } else {\n return _assertThisInitialized(_this);\n }\n };\n\n _this._getNestedChildState = function (key) {\n var existingChildData = _this._nestedChildLists.get(key);\n\n return existingChildData && existingChildData.state;\n };\n\n _this._registerAsNestedChild = function (childList) {\n // Register the mapping between this child key and the cellKey for its cell\n var childListsInCell = _this._cellKeysToChildListKeys.get(childList.cellKey) || new Set();\n childListsInCell.add(childList.key);\n\n _this._cellKeysToChildListKeys.set(childList.cellKey, childListsInCell);\n\n var existingChildData = _this._nestedChildLists.get(childList.key);\n\n if (existingChildData && existingChildData.ref !== null) {\n console.error('A VirtualizedList contains a cell which itself contains ' + 'more than one VirtualizedList of the same orientation as the parent ' + 'list. You must pass a unique listKey prop to each sibling list.\\n\\n' + describeNestedLists(_objectSpread(_objectSpread({}, childList), {}, {\n // We're called from the child's componentDidMount, so it's safe to\n // read the child's props here (albeit weird).\n horizontal: !!childList.ref.props.horizontal\n })));\n }\n\n _this._nestedChildLists.set(childList.key, {\n ref: childList.ref,\n state: null\n });\n\n if (_this._hasInteracted) {\n childList.ref.recordInteraction();\n }\n };\n\n _this._unregisterAsNestedChild = function (childList) {\n _this._nestedChildLists.set(childList.key, {\n ref: null,\n state: childList.state\n });\n };\n\n _this._onUpdateSeparators = function (keys, newProps) {\n keys.forEach(function (key) {\n var ref = key != null && _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n });\n };\n\n _this._averageCellLength = 0;\n _this._cellKeysToChildListKeys = new Map();\n _this._cellRefs = {};\n _this._frames = {};\n _this._footerLength = 0;\n _this._hasDoneInitialScroll = false;\n _this._hasInteracted = false;\n _this._hasMore = false;\n _this._hasWarned = {};\n _this._headerLength = 0;\n _this._hiPriInProgress = false;\n _this._highestMeasuredFrameIndex = 0;\n _this._indicesToKeys = new Map();\n _this._nestedChildLists = new Map();\n _this._offsetFromParentVirtualizedList = 0;\n _this._prevParentOffset = 0;\n _this._scrollMetrics = {\n contentLength: 0,\n dOffset: 0,\n dt: 10,\n offset: 0,\n timestamp: 0,\n velocity: 0,\n visibleLength: 0\n };\n _this._scrollRef = null;\n _this._sentEndForContentLength = 0;\n _this._totalCellLength = 0;\n _this._totalCellsMeasured = 0;\n _this._viewabilityTuples = [];\n\n _this._captureScrollRef = function (ref) {\n _this._scrollRef = ref;\n };\n\n _this._defaultRenderScrollComponent = function (props) {\n var onRefresh = props.onRefresh;\n\n if (_this._isNestedWithSameOrientation()) {\n // $FlowFixMe - Typing ReactNativeComponent revealed errors\n return /*#__PURE__*/React.createElement(View, props);\n } else if (onRefresh) {\n invariant(typeof props.refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' +\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n JSON.stringify(props.refreshing) + '`');\n return (\n /*#__PURE__*/\n // $FlowFixMe Invalid prop usage\n React.createElement(ScrollView, _extends({}, props, {\n refreshControl: props.refreshControl == null ? /*#__PURE__*/React.createElement(RefreshControl, {\n refreshing: props.refreshing,\n onRefresh: onRefresh,\n progressViewOffset: props.progressViewOffset\n }) : props.refreshControl\n }))\n );\n } else {\n // $FlowFixMe Invalid prop usage\n return /*#__PURE__*/React.createElement(ScrollView, props);\n }\n };\n\n _this._onCellUnmount = function (cellKey) {\n var curr = _this._frames[cellKey];\n\n if (curr) {\n _this._frames[cellKey] = _objectSpread(_objectSpread({}, curr), {}, {\n inLayout: false\n });\n }\n };\n\n _this._onLayout = function (e) {\n if (_this._isNestedWithSameOrientation()) {\n // Need to adjust our scroll metrics to be relative to our containing\n // VirtualizedList before we can make claims about list item viewability\n _this.measureLayoutRelativeToContainingList();\n } else {\n _this._scrollMetrics.visibleLength = _this._selectLength(e.nativeEvent.layout);\n }\n\n _this.props.onLayout && _this.props.onLayout(e);\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._onLayoutEmpty = function (e) {\n _this.props.onLayout && _this.props.onLayout(e);\n };\n\n _this._onLayoutFooter = function (e) {\n _this._triggerRemeasureForChildListsInCell(_this._getFooterCellKey());\n\n _this._footerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onLayoutHeader = function (e) {\n _this._headerLength = _this._selectLength(e.nativeEvent.layout);\n };\n\n _this._onContentSizeChange = function (width, height) {\n if (width > 0 && height > 0 && _this.props.initialScrollIndex != null && _this.props.initialScrollIndex > 0 && !_this._hasDoneInitialScroll) {\n _this._hasDoneInitialScroll = true;\n }\n\n if (_this.props.onContentSizeChange) {\n _this.props.onContentSizeChange(width, height);\n }\n\n _this._scrollMetrics.contentLength = _this._selectLength({\n height: height,\n width: width\n });\n\n _this._scheduleCellsToRenderUpdate();\n\n _this._maybeCallOnEndReached();\n };\n\n _this._convertParentScrollMetrics = function (metrics) {\n // Offset of the top of the nested list relative to the top of its parent's viewport\n var offset = metrics.offset - _this._offsetFromParentVirtualizedList; // Child's visible length is the same as its parent's\n\n var visibleLength = metrics.visibleLength;\n var dOffset = offset - _this._scrollMetrics.offset;\n var contentLength = _this._scrollMetrics.contentLength;\n return {\n visibleLength: visibleLength,\n contentLength: contentLength,\n offset: offset,\n dOffset: dOffset\n };\n };\n\n _this._onScroll = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScroll(e);\n });\n\n if (_this.props.onScroll) {\n _this.props.onScroll(e);\n }\n\n var timestamp = e.timeStamp;\n\n var visibleLength = _this._selectLength(e.nativeEvent.layoutMeasurement);\n\n var contentLength = _this._selectLength(e.nativeEvent.contentSize);\n\n var offset = _this._selectOffset(e.nativeEvent.contentOffset);\n\n var dOffset = offset - _this._scrollMetrics.offset;\n\n if (_this._isNestedWithSameOrientation()) {\n if (_this._scrollMetrics.contentLength === 0) {\n // Ignore scroll events until onLayout has been called and we\n // know our offset from our offset from our parent\n return;\n }\n\n var _this$_convertParentS = _this._convertParentScrollMetrics({\n visibleLength: visibleLength,\n offset: offset\n });\n\n visibleLength = _this$_convertParentS.visibleLength;\n contentLength = _this$_convertParentS.contentLength;\n offset = _this$_convertParentS.offset;\n dOffset = _this$_convertParentS.dOffset;\n }\n\n var dt = _this._scrollMetrics.timestamp ? Math.max(1, timestamp - _this._scrollMetrics.timestamp) : 1;\n var velocity = dOffset / dt;\n\n if (dt > 500 && _this._scrollMetrics.dt > 500 && contentLength > 5 * visibleLength && !_this._hasWarned.perf) {\n infoLog('VirtualizedList: You have a large list that is slow to update - make sure your ' + 'renderItem function renders components that follow React performance best practices ' + 'like PureComponent, shouldComponentUpdate, etc.', {\n dt: dt,\n prevDt: _this._scrollMetrics.dt,\n contentLength: contentLength\n });\n _this._hasWarned.perf = true;\n }\n\n _this._scrollMetrics = {\n contentLength: contentLength,\n dt: dt,\n dOffset: dOffset,\n offset: offset,\n timestamp: timestamp,\n velocity: velocity,\n visibleLength: visibleLength\n };\n\n _this._updateViewableItems(_this.props.data);\n\n if (!_this.props) {\n return;\n }\n\n _this._maybeCallOnEndReached();\n\n if (velocity !== 0) {\n _this._fillRateHelper.activate();\n }\n\n _this._computeBlankness();\n\n _this._scheduleCellsToRenderUpdate();\n };\n\n _this._onScrollBeginDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollBeginDrag(e);\n });\n\n _this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.recordInteraction();\n });\n\n _this._hasInteracted = true;\n _this.props.onScrollBeginDrag && _this.props.onScrollBeginDrag(e);\n };\n\n _this._onScrollEndDrag = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onScrollEndDrag(e);\n });\n\n var velocity = e.nativeEvent.velocity;\n\n if (velocity) {\n _this._scrollMetrics.velocity = _this._selectOffset(velocity);\n }\n\n _this._computeBlankness();\n\n _this.props.onScrollEndDrag && _this.props.onScrollEndDrag(e);\n };\n\n _this._onMomentumScrollBegin = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollBegin(e);\n });\n\n _this.props.onMomentumScrollBegin && _this.props.onMomentumScrollBegin(e);\n };\n\n _this._onMomentumScrollEnd = function (e) {\n _this._nestedChildLists.forEach(function (childList) {\n childList.ref && childList.ref._onMomentumScrollEnd(e);\n });\n\n _this._scrollMetrics.velocity = 0;\n\n _this._computeBlankness();\n\n _this.props.onMomentumScrollEnd && _this.props.onMomentumScrollEnd(e);\n };\n\n _this._updateCellsToRender = function () {\n var _this$props3 = _this.props,\n data = _this$props3.data,\n getItemCount = _this$props3.getItemCount,\n onEndReachedThreshold = _this$props3.onEndReachedThreshold;\n\n var isVirtualizationDisabled = _this._isVirtualizationDisabled();\n\n _this._updateViewableItems(data);\n\n if (!data) {\n return;\n }\n\n _this.setState(function (state) {\n var newState;\n var _this$_scrollMetrics = _this._scrollMetrics,\n contentLength = _this$_scrollMetrics.contentLength,\n offset = _this$_scrollMetrics.offset,\n visibleLength = _this$_scrollMetrics.visibleLength;\n\n if (!isVirtualizationDisabled) {\n // If we run this with bogus data, we'll force-render window {first: 0, last: 0},\n // and wipe out the initialNumToRender rendered elements.\n // So let's wait until the scroll view metrics have been set up. And until then,\n // we will trust the initialNumToRender suggestion\n if (visibleLength > 0 && contentLength > 0) {\n // If we have a non-zero initialScrollIndex and run this before we've scrolled,\n // we'll wipe out the initialNumToRender rendered elements starting at initialScrollIndex.\n // So let's wait until we've scrolled the view to the right place. And until then,\n // we will trust the initialScrollIndex suggestion.\n if (!_this.props.initialScrollIndex || _this._scrollMetrics.offset) {\n newState = computeWindowedRenderLimits(_this.props, state, _this._getFrameMetricsApprox, _this._scrollMetrics);\n }\n }\n } else {\n var distanceFromEnd = contentLength - visibleLength - offset;\n var renderAhead =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.63 was deployed. To see the error\n * delete this comment and run Flow. */\n distanceFromEnd < onEndReachedThreshold * visibleLength ? _this.props.maxToRenderPerBatch : 0;\n newState = {\n first: 0,\n last: Math.min(state.last + renderAhead, getItemCount(data) - 1)\n };\n }\n\n if (newState && _this._nestedChildLists.size > 0) {\n var newFirst = newState.first;\n var newLast = newState.last; // If some cell in the new state has a child list in it, we should only render\n // up through that item, so that we give that list a chance to render.\n // Otherwise there's churn from multiple child lists mounting and un-mounting\n // their items.\n\n for (var ii = newFirst; ii <= newLast; ii++) {\n var cellKeyForIndex = _this._indicesToKeys.get(ii);\n\n var childListKeys = cellKeyForIndex && _this._cellKeysToChildListKeys.get(cellKeyForIndex);\n\n if (!childListKeys) {\n continue;\n }\n\n var someChildHasMore = false; // For each cell, need to check whether any child list in it has more elements to render\n\n for (var _iterator = _createForOfIteratorHelperLoose(childListKeys), _step; !(_step = _iterator()).done;) {\n var childKey = _step.value;\n\n var childList = _this._nestedChildLists.get(childKey);\n\n if (childList && childList.ref && childList.ref.hasMore()) {\n someChildHasMore = true;\n break;\n }\n }\n\n if (someChildHasMore && newState) {\n newState.last = ii;\n break;\n }\n }\n }\n\n if (newState != null && newState.first === state.first && newState.last === state.last) {\n newState = null;\n }\n\n return newState;\n });\n };\n\n _this._createViewToken = function (index, isViewable) {\n var _this$props4 = _this.props,\n data = _this$props4.data,\n getItem = _this$props4.getItem,\n keyExtractor = _this$props4.keyExtractor;\n var item = getItem(data, index);\n return {\n index: index,\n item: item,\n key: keyExtractor(item, index),\n isViewable: isViewable\n };\n };\n\n _this._getFrameMetricsApprox = function (index) {\n var frame = _this._getFrameMetrics(index);\n\n if (frame && frame.index === index) {\n // check for invalid frames due to row re-ordering\n return frame;\n } else {\n var getItemLayout = _this.props.getItemLayout;\n invariant(!getItemLayout, 'Should not have to estimate frames when a measurement metrics function is provided');\n return {\n length: _this._averageCellLength,\n offset: _this._averageCellLength * index\n };\n }\n };\n\n _this._getFrameMetrics = function (index) {\n var _this$props5 = _this.props,\n data = _this$props5.data,\n getItem = _this$props5.getItem,\n getItemCount = _this$props5.getItemCount,\n getItemLayout = _this$props5.getItemLayout,\n keyExtractor = _this$props5.keyExtractor;\n invariant(getItemCount(data) > index, 'Tried to get frame for out of range index ' + index);\n var item = getItem(data, index);\n\n var frame = item && _this._frames[keyExtractor(item, index)];\n\n if (!frame || frame.index !== index) {\n if (getItemLayout) {\n frame = getItemLayout(data, index);\n }\n }\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n return frame;\n };\n\n invariant( // $FlowFixMe\n !_props.onScroll || !_props.onScroll.__isNative, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent ' + 'to support native onScroll events with useNativeDriver');\n invariant(_props.windowSize > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.');\n _this._fillRateHelper = new FillRateHelper(_this._getFrameMetrics);\n _this._updateCellsToRenderBatcher = new Batchinator(_this._updateCellsToRender, _this.props.updateCellsBatchingPeriod);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._viewabilityTuples = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityHelper: new ViewabilityHelper(pair.viewabilityConfig),\n onViewableItemsChanged: pair.onViewableItemsChanged\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n var onViewableItemsChanged = _this.props.onViewableItemsChanged;\n\n _this._viewabilityTuples.push({\n viewabilityHelper: new ViewabilityHelper(_this.props.viewabilityConfig),\n onViewableItemsChanged: onViewableItemsChanged\n });\n }\n\n var initialState = {\n first: _this.props.initialScrollIndex || 0,\n last: Math.min(_this.props.getItemCount(_this.props.data), (_this.props.initialScrollIndex || 0) + _this.props.initialNumToRender) - 1\n };\n\n if (_this._isNestedWithSameOrientation()) {\n var storedState = _this.context.getNestedChildState(_this._getListKey());\n\n if (storedState) {\n initialState = storedState;\n _this.state = storedState;\n _this._frames = storedState.frames;\n }\n }\n\n _this.state = initialState;\n return _this;\n }\n\n _proto.componentDidMount = function componentDidMount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.registerAsNestedChild({\n cellKey: this._getCellKey(),\n key: this._getListKey(),\n ref: this,\n // NOTE: When the child mounts (here) it's not necessarily safe to read\n // the parent's props. This is why we explicitly propagate debugInfo\n // \"down\" via context and \"up\" again via this method call on the\n // parent.\n parentDebugInfo: this.context.debugInfo\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._isNestedWithSameOrientation()) {\n this.context.unregisterAsNestedChild({\n key: this._getListKey(),\n state: {\n first: this.state.first,\n last: this.state.last,\n frames: this._frames\n }\n });\n }\n\n this._updateViewableItems(null);\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.dispose();\n });\n\n this._fillRateHelper.deactivateAndFlush();\n };\n\n VirtualizedList.getDerivedStateFromProps = function getDerivedStateFromProps(newProps, prevState) {\n var data = newProps.data,\n getItemCount = newProps.getItemCount,\n maxToRenderPerBatch = newProps.maxToRenderPerBatch; // first and last could be stale (e.g. if a new, shorter items props is passed in), so we make\n // sure we're rendering a reasonable range here.\n\n return {\n first: Math.max(0, Math.min(prevState.first, getItemCount(data) - 1 - maxToRenderPerBatch)),\n last: Math.max(0, Math.min(prevState.last, getItemCount(data) - 1))\n };\n };\n\n _proto._pushCells = function _pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, first, last, inversionStyle) {\n var _this2 = this;\n\n var _this$props6 = this.props,\n CellRendererComponent = _this$props6.CellRendererComponent,\n ItemSeparatorComponent = _this$props6.ItemSeparatorComponent,\n data = _this$props6.data,\n getItem = _this$props6.getItem,\n getItemCount = _this$props6.getItemCount,\n horizontal = _this$props6.horizontal,\n keyExtractor = _this$props6.keyExtractor;\n var stickyOffset = this.props.ListHeaderComponent ? 1 : 0;\n var end = getItemCount(data) - 1;\n var prevCellKey;\n last = Math.min(end, last);\n\n var _loop = function _loop(ii) {\n var item = getItem(data, ii);\n var key = keyExtractor(item, ii);\n\n _this2._indicesToKeys.set(ii, key);\n\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n stickyHeaderIndices.push(cells.length);\n }\n\n cells.push( /*#__PURE__*/React.createElement(CellRenderer, {\n CellRendererComponent: CellRendererComponent,\n ItemSeparatorComponent: ii < end ? ItemSeparatorComponent : undefined,\n cellKey: key,\n fillRateHelper: _this2._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this2._onUpdateSeparators,\n onLayout: function onLayout(e) {\n return _this2._onCellLayout(e, key, ii);\n },\n onUnmount: _this2._onCellUnmount,\n parentProps: _this2.props,\n ref: function ref(_ref) {\n _this2._cellRefs[key] = _ref;\n }\n }));\n prevCellKey = key;\n };\n\n for (var ii = first; ii <= last; ii++) {\n _loop(ii);\n }\n };\n\n _proto._isVirtualizationDisabled = function _isVirtualizationDisabled() {\n return this.props.disableVirtualization || false;\n };\n\n _proto._isNestedWithSameOrientation = function _isNestedWithSameOrientation() {\n var nestedContext = this.context;\n return !!(nestedContext && !!nestedContext.horizontal === !!this.props.horizontal);\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n if (__DEV__) {\n var flatStyles = flattenStyle(this.props.contentContainerStyle);\n\n if (flatStyles != null && flatStyles.flexWrap === 'wrap') {\n console.warn('`flexWrap: `wrap`` is not supported with the `VirtualizedList` components.' + 'Consider using `numColumns` with `FlatList` instead.');\n }\n }\n\n var _this$props7 = this.props,\n ListEmptyComponent = _this$props7.ListEmptyComponent,\n ListFooterComponent = _this$props7.ListFooterComponent,\n ListHeaderComponent = _this$props7.ListHeaderComponent;\n var _this$props8 = this.props,\n data = _this$props8.data,\n horizontal = _this$props8.horizontal;\n\n var isVirtualizationDisabled = this._isVirtualizationDisabled();\n\n var inversionStyle = this.props.inverted ? this.props.horizontal ? styles.horizontallyInverted : styles.verticallyInverted : null;\n var cells = [];\n var stickyIndicesFromProps = new Set(this.props.stickyHeaderIndices);\n var stickyHeaderIndices = [];\n\n if (ListHeaderComponent) {\n if (stickyIndicesFromProps.has(0)) {\n stickyHeaderIndices.push(0);\n }\n\n var element = /*#__PURE__*/React.isValidElement(ListHeaderComponent) ? ListHeaderComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListHeaderComponent, null);\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getCellKey() + '-header',\n key: \"$header\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutHeader,\n style: StyleSheet.compose(inversionStyle, this.props.ListHeaderComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n element)));\n }\n\n var itemCount = this.props.getItemCount(data);\n\n if (itemCount > 0) {\n _usedIndexForKey = false;\n _keylessItemComponentName = '';\n var spacerKey = !horizontal ? 'height' : 'width';\n var lastInitialIndex = this.props.initialScrollIndex ? -1 : this.props.initialNumToRender - 1;\n var _this$state = this.state,\n first = _this$state.first,\n last = _this$state.last;\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, 0, lastInitialIndex, inversionStyle);\n\n var firstAfterInitial = Math.max(lastInitialIndex + 1, first);\n\n if (!isVirtualizationDisabled && first > lastInitialIndex + 1) {\n var insertedStickySpacer = false;\n\n if (stickyIndicesFromProps.size > 0) {\n var stickyOffset = ListHeaderComponent ? 1 : 0; // See if there are any sticky headers in the virtualized space that we need to render.\n\n for (var ii = firstAfterInitial - 1; ii > lastInitialIndex; ii--) {\n if (stickyIndicesFromProps.has(ii + stickyOffset)) {\n var _ref2, _ref3;\n\n var initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var stickyBlock = this._getFrameMetricsApprox(ii);\n\n var leadSpace = stickyBlock.offset - initBlock.offset - (this.props.initialScrollIndex ? 0 : initBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_lead\",\n style: (_ref2 = {}, _ref2[spacerKey] = leadSpace, _ref2)\n }));\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, ii, ii, inversionStyle);\n\n var trailSpace = this._getFrameMetricsApprox(first).offset - (stickyBlock.offset + stickyBlock.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To\n * see the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$sticky_trail\",\n style: (_ref3 = {}, _ref3[spacerKey] = trailSpace, _ref3)\n }));\n insertedStickySpacer = true;\n break;\n }\n }\n }\n\n if (!insertedStickySpacer) {\n var _ref4;\n\n var _initBlock = this._getFrameMetricsApprox(lastInitialIndex);\n\n var firstSpace = this._getFrameMetricsApprox(first).offset - (_initBlock.offset + _initBlock.length);\n\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment\n * suppresses an error found when Flow v0.111 was deployed. To see\n * the error, delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$lead_spacer\",\n style: (_ref4 = {}, _ref4[spacerKey] = firstSpace, _ref4)\n }));\n }\n }\n\n this._pushCells(cells, stickyHeaderIndices, stickyIndicesFromProps, firstAfterInitial, last, inversionStyle);\n\n if (!this._hasWarned.keys && _usedIndexForKey) {\n console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each ' + 'item or provide a custom keyExtractor.', _keylessItemComponentName);\n this._hasWarned.keys = true;\n }\n\n if (!isVirtualizationDisabled && last < itemCount - 1) {\n var _ref5;\n\n var lastFrame = this._getFrameMetricsApprox(last); // Without getItemLayout, we limit our tail spacer to the _highestMeasuredFrameIndex to\n // prevent the user for hyperscrolling into un-measured area because otherwise content will\n // likely jump around as it renders in above the viewport.\n\n\n var end = this.props.getItemLayout ? itemCount - 1 : Math.min(itemCount - 1, this._highestMeasuredFrameIndex);\n\n var endFrame = this._getFrameMetricsApprox(end);\n\n var tailSpacerLength = endFrame.offset + endFrame.length - (lastFrame.offset + lastFrame.length);\n cells.push(\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.111.0 site=react_native_fb) This comment suppresses\n * an error found when Flow v0.111 was deployed. To see the error,\n * delete this comment and run Flow. */\n React.createElement(View, {\n key: \"$tail_spacer\",\n style: (_ref5 = {}, _ref5[spacerKey] = tailSpacerLength, _ref5)\n }));\n }\n } else if (ListEmptyComponent) {\n var _element = /*#__PURE__*/React.isValidElement(ListEmptyComponent) ? ListEmptyComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListEmptyComponent, null);\n\n cells.push( /*#__PURE__*/React.cloneElement(_element, {\n key: '$empty',\n onLayout: function onLayout(event) {\n _this3._onLayoutEmpty(event);\n\n if (_element.props.onLayout) {\n _element.props.onLayout(event);\n }\n },\n style: StyleSheet.compose(inversionStyle, _element.props.style)\n }));\n }\n\n if (ListFooterComponent) {\n var _element2 = /*#__PURE__*/React.isValidElement(ListFooterComponent) ? ListFooterComponent :\n /*#__PURE__*/\n // $FlowFixMe\n React.createElement(ListFooterComponent, null);\n\n cells.push( /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this._getFooterCellKey(),\n key: \"$footer\"\n }, /*#__PURE__*/React.createElement(View, {\n onLayout: this._onLayoutFooter,\n style: StyleSheet.compose(inversionStyle, this.props.ListFooterComponentStyle)\n }, // $FlowFixMe - Typing ReactNativeComponent revealed errors\n _element2)));\n }\n\n var scrollProps = _objectSpread(_objectSpread({}, this.props), {}, {\n onContentSizeChange: this._onContentSizeChange,\n onLayout: this._onLayout,\n onScroll: this._onScroll,\n onScrollBeginDrag: this._onScrollBeginDrag,\n onScrollEndDrag: this._onScrollEndDrag,\n onMomentumScrollBegin: this._onMomentumScrollBegin,\n onMomentumScrollEnd: this._onMomentumScrollEnd,\n scrollEventThrottle: this.props.scrollEventThrottle,\n // TODO: Android support\n stickyHeaderIndices: stickyHeaderIndices,\n style: inversionStyle ? [inversionStyle, this.props.style] : this.props.style\n });\n\n this._hasMore = this.state.last < this.props.getItemCount(this.props.data) - 1;\n var innerRet = /*#__PURE__*/React.createElement(VirtualizedListContextProvider, {\n value: {\n cellKey: null,\n getScrollMetrics: this._getScrollMetrics,\n horizontal: this.props.horizontal,\n getOutermostParentListRef: this._getOutermostParentListRef,\n getNestedChildState: this._getNestedChildState,\n registerAsNestedChild: this._registerAsNestedChild,\n unregisterAsNestedChild: this._unregisterAsNestedChild,\n debugInfo: this._getDebugInfo()\n }\n }, /*#__PURE__*/React.cloneElement((this.props.renderScrollComponent || this._defaultRenderScrollComponent)(scrollProps), {\n ref: this._captureScrollRef\n }, cells));\n var ret = innerRet;\n\n if (this.props.debug) {\n return /*#__PURE__*/React.createElement(View, {\n style: styles.debug\n }, ret, this._renderDebugOverlay());\n } else {\n return ret;\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props9 = this.props,\n data = _this$props9.data,\n extraData = _this$props9.extraData;\n\n if (data !== prevProps.data || extraData !== prevProps.extraData) {\n // clear the viewableIndices cache to also trigger\n // the onViewableItemsChanged callback with the new data\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.resetViewableIndices();\n });\n } // The `this._hiPriInProgress` is guaranteeing a hiPri cell update will only happen\n // once per fiber update. The `_scheduleCellsToRenderUpdate` will set it to true\n // if a hiPri update needs to perform. If `componentDidUpdate` is triggered with\n // `this._hiPriInProgress=true`, means it's triggered by the hiPri update. The\n // `_scheduleCellsToRenderUpdate` will check this condition and not perform\n // another hiPri update.\n\n\n var hiPriInProgress = this._hiPriInProgress;\n\n this._scheduleCellsToRenderUpdate(); // Make sure setting `this._hiPriInProgress` back to false after `componentDidUpdate`\n // is triggered with `this._hiPriInProgress = true`\n\n\n if (hiPriInProgress) {\n this._hiPriInProgress = false;\n }\n };\n\n _proto._computeBlankness = function _computeBlankness() {\n this._fillRateHelper.computeBlankness(this.props, this.state, this._scrollMetrics);\n };\n\n _proto._onCellLayout = function _onCellLayout(e, cellKey, index) {\n var layout = e.nativeEvent.layout;\n var next = {\n offset: this._selectOffset(layout),\n length: this._selectLength(layout),\n index: index,\n inLayout: true\n };\n var curr = this._frames[cellKey];\n\n if (!curr || next.offset !== curr.offset || next.length !== curr.length || index !== curr.index) {\n this._totalCellLength += next.length - (curr ? curr.length : 0);\n this._totalCellsMeasured += curr ? 0 : 1;\n this._averageCellLength = this._totalCellLength / this._totalCellsMeasured;\n this._frames[cellKey] = next;\n this._highestMeasuredFrameIndex = Math.max(this._highestMeasuredFrameIndex, index);\n\n this._scheduleCellsToRenderUpdate();\n } else {\n this._frames[cellKey].inLayout = true;\n }\n\n this._triggerRemeasureForChildListsInCell(cellKey);\n\n this._computeBlankness();\n\n this._updateViewableItems(this.props.data);\n };\n\n _proto._triggerRemeasureForChildListsInCell = function _triggerRemeasureForChildListsInCell(cellKey) {\n var childListKeys = this._cellKeysToChildListKeys.get(cellKey);\n\n if (childListKeys) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(childListKeys), _step2; !(_step2 = _iterator2()).done;) {\n var childKey = _step2.value;\n\n var childList = this._nestedChildLists.get(childKey);\n\n childList && childList.ref && childList.ref.measureLayoutRelativeToContainingList();\n }\n }\n };\n\n _proto.measureLayoutRelativeToContainingList = function measureLayoutRelativeToContainingList() {\n var _this4 = this;\n\n // TODO (T35574538): findNodeHandle sometimes crashes with \"Unable to find\n // node on an unmounted component\" during scrolling\n try {\n if (!this._scrollRef) {\n return;\n } // We are assuming that getOutermostParentListRef().getScrollRef()\n // is a non-null reference to a ScrollView\n\n\n this._scrollRef.measureLayout(this.context.getOutermostParentListRef().getScrollRef(), function (x, y, width, height) {\n _this4._offsetFromParentVirtualizedList = _this4._selectOffset({\n x: x,\n y: y\n });\n _this4._scrollMetrics.contentLength = _this4._selectLength({\n width: width,\n height: height\n });\n\n var scrollMetrics = _this4._convertParentScrollMetrics(_this4.context.getScrollMetrics());\n\n _this4._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n _this4._scrollMetrics.offset = scrollMetrics.offset;\n }, function (error) {\n console.warn(\"VirtualizedList: Encountered an error while measuring a list's\" + ' offset from its containing VirtualizedList.');\n });\n } catch (error) {\n console.warn('measureLayoutRelativeToContainingList threw an error', error.stack);\n }\n };\n\n _proto._getFooterCellKey = function _getFooterCellKey() {\n return this._getCellKey() + '-footer';\n };\n\n _proto._renderDebugOverlay = function _renderDebugOverlay() {\n var normalize = this._scrollMetrics.visibleLength / (this._scrollMetrics.contentLength || 1);\n var framesInLayout = [];\n var itemCount = this.props.getItemCount(this.props.data);\n\n for (var ii = 0; ii < itemCount; ii++) {\n var frame = this._getFrameMetricsApprox(ii);\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n\n\n if (frame.inLayout) {\n framesInLayout.push(frame);\n }\n }\n\n var windowTop = this._getFrameMetricsApprox(this.state.first).offset;\n\n var frameLast = this._getFrameMetricsApprox(this.state.last);\n\n var windowLen = frameLast.offset + frameLast.length - windowTop;\n var visTop = this._scrollMetrics.offset;\n var visLen = this._scrollMetrics.visibleLength;\n return /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlay]\n }, framesInLayout.map(function (f, ii) {\n return /*#__PURE__*/React.createElement(View, {\n key: 'f' + ii,\n style: [styles.debugOverlayBase, styles.debugOverlayFrame, {\n top: f.offset * normalize,\n height: f.length * normalize\n }]\n });\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameLast, {\n top: windowTop * normalize,\n height: windowLen * normalize\n }]\n }), /*#__PURE__*/React.createElement(View, {\n style: [styles.debugOverlayBase, styles.debugOverlayFrameVis, {\n top: visTop * normalize,\n height: visLen * normalize\n }]\n }));\n };\n\n _proto._selectLength = function _selectLength(metrics) {\n return !this.props.horizontal ? metrics.height : metrics.width;\n };\n\n _proto._selectOffset = function _selectOffset(metrics) {\n return !this.props.horizontal ? metrics.y : metrics.x;\n };\n\n _proto._maybeCallOnEndReached = function _maybeCallOnEndReached() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n getItemCount = _this$props10.getItemCount,\n onEndReached = _this$props10.onEndReached,\n onEndReachedThreshold = _this$props10.onEndReachedThreshold;\n var _this$_scrollMetrics2 = this._scrollMetrics,\n contentLength = _this$_scrollMetrics2.contentLength,\n visibleLength = _this$_scrollMetrics2.visibleLength,\n offset = _this$_scrollMetrics2.offset;\n var distanceFromEnd = contentLength - visibleLength - offset;\n var threshold = onEndReachedThreshold ? onEndReachedThreshold * visibleLength : 2;\n\n if (onEndReached && this.state.last === getItemCount(data) - 1 && distanceFromEnd < threshold && this._scrollMetrics.contentLength !== this._sentEndForContentLength) {\n // Only call onEndReached once for a given content length\n this._sentEndForContentLength = this._scrollMetrics.contentLength;\n onEndReached({\n distanceFromEnd: distanceFromEnd\n });\n } else if (distanceFromEnd > threshold) {\n // If the user scrolls away from the end and back again cause\n // an onEndReached to be triggered again\n this._sentEndForContentLength = 0;\n }\n };\n\n _proto._scheduleCellsToRenderUpdate = function _scheduleCellsToRenderUpdate() {\n var _this$state2 = this.state,\n first = _this$state2.first,\n last = _this$state2.last;\n var _this$_scrollMetrics3 = this._scrollMetrics,\n offset = _this$_scrollMetrics3.offset,\n visibleLength = _this$_scrollMetrics3.visibleLength,\n velocity = _this$_scrollMetrics3.velocity;\n var itemCount = this.props.getItemCount(this.props.data);\n var hiPri = false;\n var scrollingThreshold =\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n this.props.onEndReachedThreshold * visibleLength / 2; // Mark as high priority if we're close to the start of the first item\n // But only if there are items before the first rendered item\n\n if (first > 0) {\n var distTop = offset - this._getFrameMetricsApprox(first).offset;\n\n hiPri = hiPri || distTop < 0 || velocity < -2 && distTop < scrollingThreshold;\n } // Mark as high priority if we're close to the end of the last item\n // But only if there are items after the last rendered item\n\n\n if (last < itemCount - 1) {\n var distBottom = this._getFrameMetricsApprox(last).offset - (offset + visibleLength);\n hiPri = hiPri || distBottom < 0 || velocity > 2 && distBottom < scrollingThreshold;\n } // Only trigger high-priority updates if we've actually rendered cells,\n // and with that size estimate, accurately compute how many cells we should render.\n // Otherwise, it would just render as many cells as it can (of zero dimension),\n // each time through attempting to render more (limited by maxToRenderPerBatch),\n // starving the renderer from actually laying out the objects and computing _averageCellLength.\n // If this is triggered in an `componentDidUpdate` followed by a hiPri cellToRenderUpdate\n // We shouldn't do another hipri cellToRenderUpdate\n\n\n if (hiPri && (this._averageCellLength || this.props.getItemLayout) && !this._hiPriInProgress) {\n this._hiPriInProgress = true; // Don't worry about interactions when scrolling quickly; focus on filling content as fast\n // as possible.\n\n this._updateCellsToRenderBatcher.dispose({\n abort: true\n });\n\n this._updateCellsToRender();\n\n return;\n } else {\n this._updateCellsToRenderBatcher.schedule();\n }\n };\n\n _proto._updateViewableItems = function _updateViewableItems(data) {\n var _this5 = this;\n\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), _this5._scrollMetrics.offset, _this5._scrollMetrics.visibleLength, _this5._getFrameMetrics, _this5._createViewToken, tuple.onViewableItemsChanged, _this5.state);\n });\n };\n\n return VirtualizedList;\n}(React.PureComponent);\n\nVirtualizedList.contextType = VirtualizedListContext;\nVirtualizedList.defaultProps = {\n disableVirtualization: false,\n horizontal: false,\n initialNumToRender: 10,\n keyExtractor: function keyExtractor(item, index) {\n if (item.key != null) {\n return item.key;\n }\n\n if (item.id != null) {\n return item.id;\n }\n\n _usedIndexForKey = true;\n\n if (item.type && item.type.displayName) {\n _keylessItemComponentName = item.type.displayName;\n }\n\n return String(index);\n },\n maxToRenderPerBatch: 10,\n onEndReachedThreshold: 2,\n // multiples of length\n scrollEventThrottle: 50,\n updateCellsBatchingPeriod: 50,\n windowSize: 21 // multiples of length\n\n};\n\nvar CellRenderer = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CellRenderer, _React$Component);\n\n function CellRenderer() {\n var _this6;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this6 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this6.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this6.props.item\n }\n };\n _this6._separators = {\n highlight: function highlight() {\n var _this6$props = _this6.props,\n cellKey = _this6$props.cellKey,\n prevCellKey = _this6$props.prevCellKey;\n\n _this6.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: function unhighlight() {\n var _this6$props2 = _this6.props,\n cellKey = _this6$props2.cellKey,\n prevCellKey = _this6$props2.prevCellKey;\n\n _this6.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this6$props3 = _this6.props,\n cellKey = _this6$props3.cellKey,\n prevCellKey = _this6$props3.prevCellKey;\n\n _this6.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n return _this6;\n }\n\n CellRenderer.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item\n })\n };\n } // TODO: consider factoring separator stuff out of VirtualizedList into FlatList since it's not\n // reused by SectionList and we can keep VirtualizedList simpler.\n ;\n\n var _proto2 = CellRenderer.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n this.props.onUnmount(this.props.cellKey);\n };\n\n _proto2._renderElement = function _renderElement(renderItem, ListItemComponent, item, index) {\n if (renderItem && ListItemComponent) {\n console.warn('VirtualizedList: Both ListItemComponent and renderItem props are present. ListItemComponent will take' + ' precedence over renderItem.');\n }\n\n if (ListItemComponent) {\n /* $FlowFixMe(>=0.108.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.108 was deployed. To see the error, delete\n * this comment and run Flow. */\n return /*#__PURE__*/React.createElement(ListItemComponent, {\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n if (renderItem) {\n return renderItem({\n item: item,\n index: index,\n separators: this._separators\n });\n }\n\n invariant(false, 'VirtualizedList: Either ListItemComponent or renderItem props are required but none were found.');\n };\n\n _proto2.render = function render() {\n var _this$props11 = this.props,\n CellRendererComponent = _this$props11.CellRendererComponent,\n ItemSeparatorComponent = _this$props11.ItemSeparatorComponent,\n fillRateHelper = _this$props11.fillRateHelper,\n horizontal = _this$props11.horizontal,\n item = _this$props11.item,\n index = _this$props11.index,\n inversionStyle = _this$props11.inversionStyle,\n parentProps = _this$props11.parentProps;\n var renderItem = parentProps.renderItem,\n getItemLayout = parentProps.getItemLayout,\n ListItemComponent = parentProps.ListItemComponent;\n\n var element = this._renderElement(renderItem, ListItemComponent, item, index);\n\n var onLayout =\n /* $FlowFixMe(>=0.68.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.68 was deployed. To see the error delete this\n * comment and run Flow. */\n getItemLayout && !parentProps.debug && !fillRateHelper.enabled() ? undefined : this.props.onLayout; // NOTE: that when this is a sticky header, `onLayout` will get automatically extracted and\n // called explicitly by `ScrollViewStickyHeader`.\n\n var itemSeparator = ItemSeparatorComponent && /*#__PURE__*/React.createElement(ItemSeparatorComponent, this.state.separatorProps);\n var cellStyle = inversionStyle ? horizontal ? [styles.rowReverse, inversionStyle] : [styles.columnReverse, inversionStyle] : horizontal ? [styles.row, inversionStyle] : inversionStyle;\n var result = !CellRendererComponent ?\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.89.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.89 was deployed. To see the error, delete\n * this comment and run Flow. */\n React.createElement(View, {\n style: cellStyle,\n onLayout: onLayout\n }, element, itemSeparator) : /*#__PURE__*/React.createElement(CellRendererComponent, _extends({}, this.props, {\n style: cellStyle,\n onLayout: onLayout\n }), element, itemSeparator);\n return /*#__PURE__*/React.createElement(VirtualizedListCellContextProvider, {\n cellKey: this.props.cellKey\n }, result);\n };\n\n return CellRenderer;\n}(React.Component);\n\nfunction describeNestedLists(childList) {\n var trace = 'VirtualizedList trace:\\n' + (\" Child (\" + (childList.horizontal ? 'horizontal' : 'vertical') + \"):\\n\") + (\" listKey: \" + childList.key + \"\\n\") + (\" cellKey: \" + childList.cellKey);\n var debugInfo = childList.parentDebugInfo;\n\n while (debugInfo) {\n trace += \"\\n Parent (\" + (debugInfo.horizontal ? 'horizontal' : 'vertical') + \"):\\n\" + (\" listKey: \" + debugInfo.listKey + \"\\n\") + (\" cellKey: \" + debugInfo.cellKey);\n debugInfo = debugInfo.parent;\n }\n\n return trace;\n}\n\nvar styles = StyleSheet.create({\n verticallyInverted: {\n transform: [{\n scaleY: -1\n }]\n },\n horizontallyInverted: {\n transform: [{\n scaleX: -1\n }]\n },\n row: {\n flexDirection: 'row'\n },\n rowReverse: {\n flexDirection: 'row-reverse'\n },\n columnReverse: {\n flexDirection: 'column-reverse'\n },\n debug: {\n flex: 1\n },\n debugOverlayBase: {\n position: 'absolute',\n top: 0,\n right: 0\n },\n debugOverlay: {\n bottom: 0,\n width: 20,\n borderColor: 'blue',\n borderWidth: 1\n },\n debugOverlayFrame: {\n left: 0,\n backgroundColor: 'orange'\n },\n debugOverlayFrameLast: {\n left: 0,\n borderColor: 'green',\n borderWidth: 2\n },\n debugOverlayFrameVis: {\n left: 0,\n borderColor: 'red',\n borderWidth: 2\n }\n});\nexport default VirtualizedList;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from './AnimatedValue';\nimport AnimatedWithChildren from './AnimatedWithChildren';\nimport invariant from 'fbjs/lib/invariant';\nvar _uniqueId = 1;\n/**\n * 2D Value for driving 2D animations, such as pan gestures. Almost identical\n * API to normal `Animated.Value`, but multiplexed.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html\n */\n\nvar AnimatedValueXY = /*#__PURE__*/function (_AnimatedWithChildren) {\n _inheritsLoose(AnimatedValueXY, _AnimatedWithChildren);\n\n function AnimatedValueXY(valueIn) {\n var _this;\n\n _this = _AnimatedWithChildren.call(this) || this;\n var value = valueIn || {\n x: 0,\n y: 0\n }; // fixme: shouldn't need `: any`\n\n if (typeof value.x === 'number' && typeof value.y === 'number') {\n _this.x = new AnimatedValue(value.x);\n _this.y = new AnimatedValue(value.y);\n } else {\n invariant(value.x instanceof AnimatedValue && value.y instanceof AnimatedValue, 'AnimatedValueXY must be initialized with an object of numbers or ' + 'AnimatedValues.');\n _this.x = value.x;\n _this.y = value.y;\n }\n\n _this._listeners = {};\n return _this;\n }\n /**\n * Directly set the value. This will stop any animations running on the value\n * and update all the bound properties.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setvalue\n */\n\n\n var _proto = AnimatedValueXY.prototype;\n\n _proto.setValue = function setValue(value) {\n this.x.setValue(value.x);\n this.y.setValue(value.y);\n }\n /**\n * Sets an offset that is applied on top of whatever value is set, whether\n * via `setValue`, an animation, or `Animated.event`. Useful for compensating\n * things like the start of a pan gesture.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#setoffset\n */\n ;\n\n _proto.setOffset = function setOffset(offset) {\n this.x.setOffset(offset.x);\n this.y.setOffset(offset.y);\n }\n /**\n * Merges the offset value into the base value and resets the offset to zero.\n * The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#flattenoffset\n */\n ;\n\n _proto.flattenOffset = function flattenOffset() {\n this.x.flattenOffset();\n this.y.flattenOffset();\n }\n /**\n * Sets the offset value to the base value, and resets the base value to\n * zero. The final output of the value is unchanged.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#extractoffset\n */\n ;\n\n _proto.extractOffset = function extractOffset() {\n this.x.extractOffset();\n this.y.extractOffset();\n };\n\n _proto.__getValue = function __getValue() {\n return {\n x: this.x.__getValue(),\n y: this.y.__getValue()\n };\n }\n /**\n * Stops any animation and resets the value to its original.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#resetanimation\n */\n ;\n\n _proto.resetAnimation = function resetAnimation(callback) {\n this.x.resetAnimation();\n this.y.resetAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Stops any running animation or tracking. `callback` is invoked with the\n * final value after stopping the animation, which is useful for updating\n * state to match the animation position with layout.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#stopanimation\n */\n ;\n\n _proto.stopAnimation = function stopAnimation(callback) {\n this.x.stopAnimation();\n this.y.stopAnimation();\n callback && callback(this.__getValue());\n }\n /**\n * Adds an asynchronous listener to the value so you can observe updates from\n * animations. This is useful because there is no way to synchronously read\n * the value because it might be driven natively.\n *\n * Returns a string that serves as an identifier for the listener.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#addlistener\n */\n ;\n\n _proto.addListener = function addListener(callback) {\n var _this2 = this;\n\n var id = String(_uniqueId++);\n\n var jointCallback = function jointCallback(_ref) {\n var number = _ref.value;\n callback(_this2.__getValue());\n };\n\n this._listeners[id] = {\n x: this.x.addListener(jointCallback),\n y: this.y.addListener(jointCallback)\n };\n return id;\n }\n /**\n * Unregister a listener. The `id` param shall match the identifier\n * previously returned by `addListener()`.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removelistener\n */\n ;\n\n _proto.removeListener = function removeListener(id) {\n this.x.removeListener(this._listeners[id].x);\n this.y.removeListener(this._listeners[id].y);\n delete this._listeners[id];\n }\n /**\n * Remove all registered listeners.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#removealllisteners\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners() {\n this.x.removeAllListeners();\n this.y.removeAllListeners();\n this._listeners = {};\n }\n /**\n * Converts `{x, y}` into `{left, top}` for use in style.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#getlayout\n */\n ;\n\n _proto.getLayout = function getLayout() {\n return {\n left: this.x,\n top: this.y\n };\n }\n /**\n * Converts `{x, y}` into a useable translation transform.\n *\n * See https://reactnative.dev/docs/animatedvaluexy.html#gettranslatetransform\n */\n ;\n\n _proto.getTranslateTransform = function getTranslateTransform() {\n return [{\n translateX: this.x\n }, {\n translateY: this.y\n }];\n };\n\n return AnimatedValueXY;\n}(AnimatedWithChildren);\n\nexport default AnimatedValueXY;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar RootTagContext = /*#__PURE__*/React.createContext(null);\nexport default function AppContainer(props) {\n var children = props.children,\n WrapperComponent = props.WrapperComponent;\n var innerView = /*#__PURE__*/React.createElement(View, {\n children: children,\n key: 1,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = /*#__PURE__*/React.createElement(WrapperComponent, null, innerView);\n }\n\n return /*#__PURE__*/React.createElement(RootTagContext.Provider, {\n value: props.rootTag\n }, /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView));\n}\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AppContainer from './AppContainer';\nimport invariant from 'fbjs/lib/invariant';\nimport render, { hydrate } from '../render';\nimport styleResolver from '../StyleSheet/styleResolver';\nimport React from 'react';\nexport default function renderApplication(RootComponent, WrapperComponent, callback, options) {\n var shouldHydrate = options.hydrate,\n initialProps = options.initialProps,\n rootTag = options.rootTag;\n var renderFn = shouldHydrate ? hydrate : render;\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn( /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = /*#__PURE__*/React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, /*#__PURE__*/React.createElement(RootComponent, initialProps)); // Don't escape CSS text\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return /*#__PURE__*/React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from '../unmountComponentAtNode';\nimport renderApplication, { getApplication as _getApplication } from './renderApplication';\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n/**\n * `AppRegistry` is the JS entry point to running all React Native apps.\n */\n\nvar AppRegistry = /*#__PURE__*/function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback, {\n hydrate: appParameters.hydrate || false,\n initialProps: appParameters.initialProps || emptyObject,\n rootTag: appParameters.rootTag\n });\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n } // TODO: fix style sheet creation when using this method\n ;\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { createContext } from 'react';\nvar TextAncestorContext = /*#__PURE__*/createContext(false);\nexport default TextAncestorContext;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport ReactNativePropRegistry from './ReactNativePropRegistry';\nimport invariant from 'fbjs/lib/invariant';\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return ReactNativePropRegistry.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nexport default flattenStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport useLayoutEffect from '../useLayoutEffect';\nimport UIManager from '../../exports/UIManager';\nvar DOM_LAYOUT_HANDLER_NAME = '__reactLayoutHandler';\nvar didWarn = !canUseDOM;\nvar resizeObserver = null;\n\nfunction getResizeObserver() {\n if (canUseDOM && typeof window.ResizeObserver !== 'undefined') {\n if (resizeObserver == null) {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var node = entry.target;\n var onLayout = node[DOM_LAYOUT_HANDLER_NAME];\n\n if (typeof onLayout === 'function') {\n // We still need to measure the view because browsers don't yet provide\n // border-box dimensions in the entry\n UIManager.measure(node, function (x, y, width, height, left, top) {\n var event = {\n // $FlowFixMe\n nativeEvent: {\n layout: {\n x: x,\n y: y,\n width: width,\n height: height,\n left: left,\n top: top\n }\n },\n timeStamp: Date.now()\n };\n Object.defineProperty(event.nativeEvent, 'target', {\n enumerable: true,\n get: function get() {\n return entry.target;\n }\n });\n onLayout(event);\n });\n }\n });\n });\n }\n } else if (!didWarn) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill.');\n didWarn = true;\n }\n }\n\n return resizeObserver;\n}\n\nexport default function useElementLayout(ref, onLayout) {\n var observer = getResizeObserver();\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null) {\n node[DOM_LAYOUT_HANDLER_NAME] = onLayout;\n }\n }, [ref, onLayout]); // Observing is done in a separate effect to avoid this effect running\n // when 'onLayout' changes.\n\n useLayoutEffect(function () {\n var node = ref.current;\n\n if (node != null && observer != null) {\n if (typeof node[DOM_LAYOUT_HANDLER_NAME] === 'function') {\n observer.observe(node);\n } else {\n observer.unobserve(node);\n }\n }\n\n return function () {\n if (node != null && observer != null) {\n observer.unobserve(node);\n }\n };\n }, [ref, observer]);\n}","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16\n ) >>> 0;\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return parseInt(\n match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16\n ) >>> 0;\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff // a\n ) >>> 0;\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n Math.round(r * 255) << 24 |\n Math.round(g * 255) << 16 |\n Math.round(b * 255) << 8\n );\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n};\n\nfunction rgba(colorInt) {\n var r = Math.round(((colorInt & 0xff000000) >>> 24));\n var g = Math.round(((colorInt & 0x00ff0000) >>> 16));\n var b = Math.round(((colorInt & 0x0000ff00) >>> 8));\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a,\n };\n};\n\nnormalizeColor.rgba = rgba;\n\nmodule.exports = normalizeColor;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport NativeAnimatedHelper from '../NativeAnimatedHelper';\nvar startNativeAnimationNextId = 1; // Important note: start() and stop() will only be called at most once.\n// Once an animation has been stopped or finished its course, it will\n// not be reused.\n\nvar Animation = /*#__PURE__*/function () {\n function Animation() {}\n\n var _proto = Animation.prototype;\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {};\n\n _proto.stop = function stop() {\n if (this.__nativeId) {\n NativeAnimatedHelper.API.stopAnimation(this.__nativeId);\n }\n };\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n // Subclasses that have corresponding animation implementation done in native\n // should override this method\n throw new Error('This animation type cannot be offloaded to native');\n } // Helper function for subclasses to make sure onEnd is only called once.\n ;\n\n _proto.__debouncedOnEnd = function __debouncedOnEnd(result) {\n var onEnd = this.__onEnd;\n this.__onEnd = null;\n onEnd && onEnd(result);\n };\n\n _proto.__startNativeAnimation = function __startNativeAnimation(animatedValue) {\n var startNativeAnimationWaitId = startNativeAnimationNextId + \":startAnimation\";\n startNativeAnimationNextId += 1;\n NativeAnimatedHelper.API.setWaitingForIdentifier(startNativeAnimationWaitId);\n\n try {\n animatedValue.__makeNative();\n\n this.__nativeId = NativeAnimatedHelper.generateNewAnimationId();\n NativeAnimatedHelper.API.startAnimatingNode(this.__nativeId, animatedValue.__getNativeTag(), this.__getNativeAnimationConfig(), this.__debouncedOnEnd.bind(this));\n } catch (e) {\n throw e;\n } finally {\n NativeAnimatedHelper.API.unsetWaitingForIdentifier(startNativeAnimationWaitId);\n }\n };\n\n return Animation;\n}();\n\nexport default Animation;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport resolveShadowValue from './resolveShadowValue';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = resolveShadowValue(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nexport default createCompileableStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar slice = Array.prototype.slice;\n/**\n * Order-based insertion of CSS.\n *\n * Each rule is associated with a numerically defined group.\n * Groups are ordered within the style sheet according to their number, with the\n * lowest first.\n *\n * Groups are implemented using marker rules. The selector of the first rule of\n * each group is used only to encode the group number for hydration. An\n * alternative implementation could rely on CSSMediaRule, allowing groups to be\n * treated as a sub-sheet, but the Edge implementation of CSSMediaRule is\n * broken.\n * https://developer.mozilla.org/en-US/docs/Web/API/CSSMediaRule\n * https://gist.github.com/necolas/aa0c37846ad6bd3b05b727b959e82674\n */\n\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n /**\n * Hydrate approximate record from any existing rules in the sheet.\n */\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText; // Create record of existing selectors and rules\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex]; // Insert rule before the next group, or at the end of the stylesheet\n\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n // Set the starting index of the new group\n if (groups[group].start == null) {\n groups[group].start = position;\n } // Increment the starting index of all subsequent groups\n\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start || 0;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n /**\n * The textContent of the style sheet.\n */\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n\n /**\n * Insert a rule into the style sheet\n */\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue); // Create a new group.\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group); // Create the internal record.\n\n groups[group] = {\n start: null,\n rules: [markerRule]\n }; // Update CSSOM.\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n } // selectorText is more reliable than cssText for insertion checks. The\n // browser excludes vendor-prefixed properties and rewrites certain values\n // making cssText more likely to be different from what was inserted.\n\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n // Update the internal records.\n selectors[selectorText] = true;\n groups[group].rules.push(cssText); // Update CSSOM.\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n // Revert internal record change if a rule was rejected (e.g.,\n // unrecognized pseudo-selector)\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n/**\n * Helper functions\n */\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n // $FlowFixMe: Flow is missing CSSOM types needed to type 'root'.\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n // JSDOM doesn't support `CSSSMediaRule#insertRule`.\n // Also ignore errors that occur from attempting to insert vendor-prefixed selectors.\n return false;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nexport default flattenArray;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport I18nManager from '../I18nManager';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left'; // Map of LTR property names to their BiDi equivalent.\n\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n}; // Map of I18N property names to their LTR equivalent.\n\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n}; // Invert the sign of a numeric-like value\n\nvar additiveInverse = function additiveInverse(value) {\n return multiplyStyleLengthValue(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue; // BiDi flip properties\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n // convert start/end\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n } // BiDi flip values\n\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n } // BiDi flip transitionProperty value\n\n\n if (prop === 'transitionProperty') {\n // BiDi flip properties\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n // convert start/end\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n var flippedValue = PROPERTIES_FLIP[originalValue];\n\n if (flippedValue != null) {\n value = flippedValue;\n }\n }\n } // Create finalized style\n\n\n if (isRTL && prop === 'textShadowOffset') {\n var invertedValue = additiveInverse(value.width);\n value.width = invertedValue;\n nextStyle[prop] = value;\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n } // $FlowIgnore\n\n\n return nextStyle;\n};\n\nexport default i18nStyle;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from './constants';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\n/**\n * The browser implements the CSS cascade, where the order of properties is a\n * factor in determining which styles to paint. React Native is different. It\n * gives giving precedence to the more specific style property. For example,\n * the value of `paddingTop` takes precedence over that of `padding`.\n *\n * This module creates mutally exclusive style declarations by expanding all of\n * React Native's supported shortform properties (e.g. `padding`) to their\n * longfrom equivalents.\n */\n\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n/**\n * Transform\n */\n// { scale: 2 } => 'scale(2)'\n// { translateX: 20 } => 'translateX(20px)'\n// { matrix: [1,2,3,4,5,6] } => 'matrix(1,2,3,4,5,6)'\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = transform[type];\n\n if (type === 'matrix' || type === 'matrix3d') {\n return type + \"(\" + value.join(',') + \")\";\n } else {\n var normalizedValue = normalizeValueWithProperty(value, type);\n return type + \"(\" + normalizedValue + \")\";\n }\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n }\n\n resolvedStyle.transform = transform;\n};\n/**\n * Reducer\n */\n\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = normalizeValueWithProperty(style[prop], prop); // Ignore everything else with a null value\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n // Ignore some React Native styles\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n\n case 'aspectRatio':\n {\n resolvedStyle[prop] = value.toString();\n break;\n }\n // TODO: remove once this issue is fixed\n // https://github.com/rofrischmann/inline-style-prefixer/issues/159\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n // The 'flex' property value in React Native must be a positive integer,\n // 0, or -1.\n\n case 'flex':\n {\n if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n } else {\n resolvedStyle.flex = value;\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n // use 'text-decoration' for browsers that only support CSS2\n // text-decoration (e.g., IE, Edge)\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n // The value of any longform property in the original styles takes\n // precedence over the shortform's value.\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","/* eslint-disable */\n\n/**\n * JS Implementation of MurmurHash2\n *\n * @author Gary Court\n * @see http://github.com/garycourt/murmurhash-js\n * @author Austin Appleby\n * @see http://sites.google.com/site/murmurhash/\n *\n * @param {string} str ASCII only\n * @param {number} seed Positive integer only\n * @return {number} 32-bit positive integer hash\n *\n * \n */\nfunction murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport flex from 'inline-style-prefixer/lib/plugins/flex';\nimport flexboxIE from 'inline-style-prefixer/lib/plugins/flexboxIE';\nimport flexboxOld from 'inline-style-prefixer/lib/plugins/flexboxOld';\nimport gradient from 'inline-style-prefixer/lib/plugins/gradient';\nimport grid from 'inline-style-prefixer/lib/plugins/grid';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport logical from 'inline-style-prefixer/lib/plugins/logical';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, grid, imageSet, logical, position, sizing, transition],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from './static';\nvar prefixAll = createPrefixer(staticData);\nexport var prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style); // React@15 removed undocumented support for fallback values in\n // inline-styles. Revert array values to the standard CSS value\n\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\n};\nexport default prefixAll;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createReactDOMStyle from './createReactDOMStyle';\nimport hash from '../../vendor/hash';\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nimport prefixStyles, { prefixInlineStyles } from '../../modules/prefixStyles';\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\n/**\n * Compile style to atomic CSS rules.\n */\n\nexport function atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\n/**\n * Compile simple style object to classic CSS rules.\n * No support for 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread(_objectSpread({}, rest), {}, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\n/**\n * Compile simple style object to inline DOM styles.\n * No support for 'animationKeyframes', 'placeholderTextColor', 'scrollbarWidth', or 'pointerEvents'.\n */\n\nexport function inline(style) {\n return prefixInlineStyles(createReactDOMStyle(style));\n}\n/**\n * Create a value string that normalizes different input values with a common\n * output.\n */\n\nexport function stringifyValueWithProperty(value, property) {\n // e.g., 0 => '0px', 'black' => 'rgba(0,0,0,1)'\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n/**\n * Create the Atomic CSS rules needed for a given StyleSheet rule.\n * Translates StyleSheet declarations to CSS.\n */\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier; // Handle non-standard properties and object values that require multiple\n // CSS rules to be created.\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n // Equivalent to using '::placeholder'\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n // Polyfill for additional 'pointer-events' values\n // See d13f78622b233a0afc0c7a200c0a0792c8ca9e58\n\n case 'pointerEvents':\n {\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _block3 = createDeclarationBlock({\n pointerEvents: 'none'\n });\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _block4 = createDeclarationBlock({\n pointerEvents: 'auto'\n });\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock({\n pointerEvents: finalValue\n });\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n // Polyfill for draft spec\n // https://drafts.csswg.org/css-scrollbars-1/\n\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\");\n }\n\n var _block5 = createDeclarationBlock({\n scrollbarWidth: value\n });\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo;\n\n var _block6 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = value, _createDeclarationBlo));\n\n rules.push(\"\" + selector + _block6);\n break;\n }\n }\n\n return rules;\n}\n/**\n * Creates a CSS declaration block from a StyleSheet object.\n */\n\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property); // The prefixer may return an array of values:\n // { display: [ '-webkit-flex', 'flex' ] }\n // to represent \"fallback\" declarations\n // { display: -webkit-flex; display: flex; }\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }) // Once properties are hyphenated, this will put the vendor\n // prefixed and short-form properties first in the list.\n .sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n/**\n * An identifier is associated with a unique set of styles.\n */\n\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n/**\n * Create individual CSS keyframes rules.\n */\n\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n/**\n * Create CSS keyframes rules and names from a StyleSheet keyframes object.\n */\n\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error(\"Invalid CSS keyframes type: \" + typeof keyframesValue);\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n // Support external animation libraries (identifiers only)\n animationNames.push(keyframes);\n } else {\n // Create rules for each of the keyframes\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar resets = [// minimal top-level reset\n'html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', // minimal form pseudo-element reset\n'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport default resets;","/**\n * Adapts focus styles based on the user's active input modality (i.e., how\n * they are interacting with the UI right now).\n *\n * Focus styles are only relevant when using the keyboard to interact with the\n * page. If we only show the focus ring when relevant, we can avoid user\n * confusion without compromising accessibility.\n *\n * The script uses two heuristics to determine whether the keyboard is being used:\n *\n * 1. a keydown event occurred immediately before a focus event;\n * 2. a focus event happened on an element which requires keyboard interaction (e.g., a text field);\n *\n * This software or document includes material copied from or derived from https://github.com/WICG/focus-visible.\n * Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang).\n * W3C Software Notice and License: https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n */\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` attribute being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n */\n\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n /**\n * Add the `focus-visible` attribute to the given element if it was not added by\n * the author.\n */\n\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n /**\n * Remove the `focus-visible` attribute from the given element if it was not\n * originally added by the author.\n */\n\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n /**\n * Remove the `focus-visible` attribute from all elements in the document.\n */\n\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n /**\n * Treat `keydown` as a signal that the user is in keyboard modality.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n */\n\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * It also avoids the situation where a user presses on an element within a\n * previously keyboard-focused element (i.e., `e.target` is not the previously\n * focused element, but one of its descendants) and we need to remove the\n * focus ring because a `blur` event doesn't occur.\n */\n\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n /**\n * On `focus`, add the `focus-visible` attribute to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n */\n\n\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n /**\n * On `blur`, remove the `focus-visible` attribute from the target.\n */\n\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had the focus-visible attribute.\n */\n\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the attribute when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n */\n\n\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nexport default modality;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * WARNING: changes to this file in particular can cause significant changes to\n * the results of render performance benchmarks.\n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createCSSStyleSheet from './createCSSStyleSheet';\nimport createCompileableStyle from './createCompileableStyle';\nimport createOrderedCSSStyleSheet from './createOrderedCSSStyleSheet';\nimport flattenArray from '../../modules/flattenArray';\nimport flattenStyle from './flattenStyle';\nimport I18nManager from '../I18nManager';\nimport i18nStyle from './i18nStyle';\nimport { atomic, classic, inline, stringifyValueWithProperty } from './compile';\nimport initialRules from './initialRules';\nimport modality from './modality';\nimport { STYLE_ELEMENT_ID, STYLE_GROUPS } from './constants';\nexport default function createStyleResolver() {\n var inserted, sheet, cache;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(STYLE_ELEMENT_ID));\n cache = {};\n modality(function (rule) {\n return sheet.insert(rule, STYLE_GROUPS.modality);\n });\n initialRules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToCache(className, prop, value) {\n if (!cache[prop]) {\n cache[prop] = {};\n }\n\n cache[prop][value] = className;\n }\n\n function getClassName(prop, value) {\n var val = stringifyValueWithProperty(value, prop);\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var _I18nManager$getConst = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = createCompileableStyle(i18nStyle(flattenStyle(id)));\n var results = atomic(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToCache(identifier, property, value);\n rules.forEach(function (rule) {\n var group = STYLE_GROUPS.custom[property] || STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n /**\n * Resolves a React Native style object to DOM attributes\n */\n\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n flattenArray(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n // fast and cachable\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n // resolve a plain RN style object\n props = _resolveStyle(style);\n } else {\n // flatten the style array\n // cache resolved props when all styles are registered\n // otherwise fallback to resolving\n var flatArray = flattenArray(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n /**\n * Resolves a React Native style object\n */\n\n\n function _resolveStyle(style, key) {\n var _I18nManager$getConst2 = I18nManager.getConstants(),\n doLeftAndRightSwapInRTL = _I18nManager$getConst2.doLeftAndRightSwapInRTL,\n isRTL = _I18nManager$getConst2.isRTL;\n\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr'; // faster: memoized\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = flattenStyle(style);\n var localizedStyle = createCompileableStyle(i18nStyle(flatStyle)); // slower: convert style object to props and cache\n\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n // Certain properties and values are not transformed by 'createReactDOMStyle' as they\n // require more complex transforms into multiple CSS rules. Here we assume that StyleManager\n // can bind these styles to a className, and prevent them becoming invalid inline-styles.\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = atomic((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.keys(a).forEach(function (key) {\n var _a$key = a[key],\n identifier = _a$key.identifier,\n rules = _a$key.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n } // 4x slower render\n\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = inline(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent(); // Reset state on the server so critical css is always the result\n\n if (!canUseDOM) {\n init();\n }\n\n return {\n id: STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = classic(style, name);\n Object.keys(compiled).forEach(function (key) {\n var _compiled$key = compiled[key],\n identifier = _compiled$key.identifier,\n rules = _compiled$key.rules;\n resolved.css[identifier] = {\n group: group || STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n\n get sheet() {\n return sheet;\n }\n\n };\n}\n/**\n * Misc helpers\n */\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createStyleResolver from './createStyleResolver';\nvar styleResolver = createStyleResolver();\nexport default styleResolver;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; // $FlowFixMe: HTMLStyleElement is incorrectly typed - https://github.com/facebook/flow/issues/2696\n\nexport default function createCSSStyleSheet(id) {\n if (canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n // $FlowFixMe: HTMLElement is incorrectly typed\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport var BLUR = 'blur';\nexport var CONTEXT_MENU = 'contextmenu';\nexport var FOCUS_OUT = 'focusout';\nexport var MOUSE_DOWN = 'mousedown';\nexport var MOUSE_MOVE = 'mousemove';\nexport var MOUSE_UP = 'mouseup';\nexport var MOUSE_CANCEL = 'dragstart';\nexport var TOUCH_START = 'touchstart';\nexport var TOUCH_MOVE = 'touchmove';\nexport var TOUCH_END = 'touchend';\nexport var TOUCH_CANCEL = 'touchcancel';\nexport var SCROLL = 'scroll';\nexport var SELECT = 'select';\nexport var SELECTION_CHANGE = 'selectionchange';\nexport function isStartish(eventType) {\n return eventType === TOUCH_START || eventType === MOUSE_DOWN;\n}\nexport function isMoveish(eventType) {\n return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;\n}\nexport function isEndish(eventType) {\n return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);\n}\nexport function isCancelish(eventType) {\n return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;\n}\nexport function isScroll(eventType) {\n return eventType === SCROLL;\n}\nexport function isSelectionChange(eventType) {\n return eventType === SELECT || eventType === SELECTION_CHANGE;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { isStartish, isMoveish, isEndish } from './ResponderEventTypes';\n\n/**\n * Tracks the position and time of each active touch by `touch.identifier`. We\n * should typically only see IDs in the range of 1-20 because IDs get recycled\n * when touches end and start again.\n */\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar MAX_TOUCH_BANK = 20;\nvar touchBank = [];\nvar touchHistory = {\n touchBank: touchBank,\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n};\n\nfunction timestampForTouch(touch) {\n // The legacy internal implementation provides \"timeStamp\", which has been\n // renamed to \"timestamp\".\n return touch.timeStamp || touch.timestamp;\n}\n/**\n * TODO: Instead of making gestures recompute filtered velocity, we could\n * include a built in velocity computation that can be reused globally.\n */\n\n\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\n\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\n\nfunction getTouchIdentifier(_ref) {\n var identifier = _ref.identifier;\n\n if (identifier == null) {\n console.error('Touch object is missing identifier.');\n }\n\n if (__DEV__) {\n if (identifier > MAX_TOUCH_BANK) {\n console.error('Touch identifier %s is greater than maximum supported %s which causes ' + 'performance issues backfilling array locations for all of the indices.', identifier, MAX_TOUCH_BANK);\n }\n }\n\n return identifier;\n}\n\nfunction recordTouchStart(touch) {\n var identifier = getTouchIdentifier(touch);\n var touchRecord = touchBank[identifier];\n\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchBank[identifier] = createTouchRecord(touch);\n }\n\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\n\nfunction recordTouchMove(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch move without a touch start.\\n', \"Touch Move: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction recordTouchEnd(touch) {\n var touchRecord = touchBank[getTouchIdentifier(touch)];\n\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn('Cannot record touch end without a touch start.\\n', \"Touch End: \" + printTouch(touch) + \"\\n\", \"Touch Bank: \" + printTouchBank());\n }\n}\n\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\n\nfunction printTouchBank() {\n var printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ' (original size: ' + touchBank.length + ')';\n }\n\n return printed;\n}\n\nvar ResponderTouchHistoryStore = {\n recordTouchTrack: function recordTouchTrack(topLevelType, nativeEvent) {\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchMove);\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchStart);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach(recordTouchEnd);\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n\n if (touchHistory.numberActiveTouches === 1) {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrackToCheck = touchBank[i];\n\n if (touchTrackToCheck != null && touchTrackToCheck.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n\n if (__DEV__) {\n var activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n\n if (!(activeRecord != null && activeRecord.touchActive)) {\n console.error('Cannot find single active touch.');\n }\n }\n }\n }\n },\n touchHistory: touchHistory\n};\nexport default ResponderTouchHistoryStore;","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport getBoundingClientRect from '../../modules/getBoundingClientRect';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n\nvar emptyFunction = function emptyFunction() {};\n\nvar emptyObject = {};\nvar emptyArray = [];\n/**\n * Safari produces very large identifiers that would cause the `touchBank` array\n * length to be so large as to crash the browser, if not normalized like this.\n * In the future the `touchBank` should use an object/map instead.\n */\n\nfunction normalizeIdentifier(identifier) {\n return identifier > 20 ? identifier % 20 : identifier;\n}\n/**\n * Converts a native DOM event to a ResponderEvent.\n * Mouse events are transformed into fake touch events.\n */\n\n\nexport default function createResponderEvent(domEvent) {\n var rect;\n var propagationWasStopped = false;\n var changedTouches;\n var touches;\n var domEventChangedTouches = domEvent.changedTouches;\n var domEventType = domEvent.type;\n var metaKey = domEvent.metaKey === true;\n var shiftKey = domEvent.shiftKey === true;\n var force = domEventChangedTouches && domEventChangedTouches[0].force || 0;\n var identifier = normalizeIdentifier(domEventChangedTouches && domEventChangedTouches[0].identifier || 0);\n var clientX = domEventChangedTouches && domEventChangedTouches[0].clientX || domEvent.clientX;\n var clientY = domEventChangedTouches && domEventChangedTouches[0].clientY || domEvent.clientY;\n var pageX = domEventChangedTouches && domEventChangedTouches[0].pageX || domEvent.pageX;\n var pageY = domEventChangedTouches && domEventChangedTouches[0].pageY || domEvent.pageY;\n var preventDefault = typeof domEvent.preventDefault === 'function' ? domEvent.preventDefault.bind(domEvent) : emptyFunction;\n var timestamp = domEvent.timeStamp;\n\n function normalizeTouches(touches) {\n return Array.prototype.slice.call(touches).map(function (touch) {\n return {\n force: touch.force,\n identifier: normalizeIdentifier(touch.identifier),\n\n get locationX() {\n return locationX(touch.clientX);\n },\n\n get locationY() {\n return locationY(touch.clientY);\n },\n\n pageX: touch.pageX,\n pageY: touch.pageY,\n target: touch.target,\n timestamp: timestamp\n };\n });\n }\n\n if (domEventChangedTouches != null) {\n changedTouches = normalizeTouches(domEventChangedTouches);\n touches = normalizeTouches(domEvent.touches);\n } else {\n var emulatedTouches = [{\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp\n }];\n changedTouches = emulatedTouches;\n touches = domEventType === 'mouseup' || domEventType === 'dragstart' ? emptyArray : emulatedTouches;\n }\n\n var responderEvent = {\n bubbles: true,\n cancelable: true,\n // `currentTarget` is set before dispatch\n currentTarget: null,\n defaultPrevented: domEvent.defaultPrevented,\n dispatchConfig: emptyObject,\n eventPhase: domEvent.eventPhase,\n isDefaultPrevented: function isDefaultPrevented() {\n return domEvent.defaultPrevented;\n },\n isPropagationStopped: function isPropagationStopped() {\n return propagationWasStopped;\n },\n isTrusted: domEvent.isTrusted,\n nativeEvent: {\n altKey: false,\n ctrlKey: false,\n metaKey: metaKey,\n shiftKey: shiftKey,\n changedTouches: changedTouches,\n force: force,\n identifier: identifier,\n\n get locationX() {\n return locationX(clientX);\n },\n\n get locationY() {\n return locationY(clientY);\n },\n\n pageX: pageX,\n pageY: pageY,\n target: domEvent.target,\n timestamp: timestamp,\n touches: touches,\n type: domEventType\n },\n persist: emptyFunction,\n preventDefault: preventDefault,\n stopPropagation: function stopPropagation() {\n propagationWasStopped = true;\n },\n target: domEvent.target,\n timeStamp: timestamp,\n touchHistory: ResponderTouchHistoryStore.touchHistory\n }; // Using getters and functions serves two purposes:\n // 1) The value of `currentTarget` is not initially available.\n // 2) Measuring the clientRect may cause layout jank and should only be done on-demand.\n\n function locationX(x) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return x - rect.left;\n }\n }\n\n function locationY(y) {\n rect = rect || getBoundingClientRect(responderEvent.currentTarget);\n\n if (rect) {\n return y - rect.top;\n }\n }\n\n return responderEvent;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isSelectionValid from '../../modules/isSelectionValid';\nvar keyName = '__reactResponderId';\n\nfunction getEventPath(domEvent) {\n // The 'selectionchange' event always has the 'document' as the target.\n // Use the anchor node as the initial target to reconstruct a path.\n // (We actually only need the first \"responder\" node in practice.)\n if (domEvent.type === 'selectionchange') {\n var target = window.getSelection().anchorNode;\n return composedPathFallback(target);\n } else {\n var path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);\n return path;\n }\n}\n\nfunction composedPathFallback(target) {\n var path = [];\n\n while (target != null && target !== document.body) {\n path.push(target);\n target = target.parentNode;\n }\n\n return path;\n}\n/**\n * Retrieve the responderId from a host node\n */\n\n\nfunction getResponderId(node) {\n if (node != null) {\n return node[keyName];\n }\n\n return null;\n}\n/**\n * Store the responderId on a host node\n */\n\n\nexport function setResponderId(node, id) {\n if (node != null) {\n node[keyName] = id;\n }\n}\n/**\n * Filter the event path to contain only the nodes attached to the responder system\n */\n\nexport function getResponderPaths(domEvent) {\n var idPath = [];\n var nodePath = [];\n var eventPath = getEventPath(domEvent);\n\n for (var i = 0; i < eventPath.length; i++) {\n var node = eventPath[i];\n var id = getResponderId(node);\n\n if (id != null) {\n idPath.push(id);\n nodePath.push(node);\n }\n }\n\n return {\n idPath: idPath,\n nodePath: nodePath\n };\n}\n/**\n * Walk the paths and find the first common ancestor\n */\n\nexport function getLowestCommonAncestor(pathA, pathB) {\n var pathALength = pathA.length;\n var pathBLength = pathB.length;\n\n if ( // If either path is empty\n pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor\n // that is connected to the responder system\n pathA[pathALength - 1] !== pathB[pathBLength - 1]) {\n return null;\n }\n\n var itemA = pathA[0];\n var indexA = 0;\n var itemB = pathB[0];\n var indexB = 0; // If A is deeper, skip indices that can't match.\n\n if (pathALength - pathBLength > 0) {\n indexA = pathALength - pathBLength;\n itemA = pathA[indexA];\n pathALength = pathBLength;\n } // If B is deeper, skip indices that can't match\n\n\n if (pathBLength - pathALength > 0) {\n indexB = pathBLength - pathALength;\n itemB = pathB[indexB];\n pathBLength = pathALength;\n } // Walk in lockstep until a match is found\n\n\n var depth = pathALength;\n\n while (depth--) {\n if (itemA === itemB) {\n return itemA;\n }\n\n itemA = pathA[indexA++];\n itemB = pathB[indexB++];\n }\n\n return null;\n}\n/**\n * Determine whether any of the active touches are within the current responder.\n * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.\n */\n\nexport function hasTargetTouches(target, touches) {\n if (!touches || touches.length === 0) {\n return false;\n }\n\n for (var i = 0; i < touches.length; i++) {\n var node = touches[i].target;\n\n if (node != null) {\n if (target.contains(node)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\n * Ignore 'selectionchange' events that don't correspond with a person's intent to\n * select text.\n */\n\nexport function hasValidSelection(domEvent) {\n if (domEvent.type === 'selectionchange') {\n return isSelectionValid();\n }\n\n return domEvent.type === 'select';\n}\n/**\n * Events are only valid if the primary button was used without specific modifier keys.\n */\n\nexport function isPrimaryPointerDown(domEvent) {\n var altKey = domEvent.altKey,\n button = domEvent.button,\n buttons = domEvent.buttons,\n ctrlKey = domEvent.ctrlKey,\n type = domEvent.type;\n var isTouch = type === 'touchstart' || type === 'touchmove';\n var isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);\n var isPrimaryMouseMove = type === 'mousemove' && buttons === 1;\n var noModifiers = altKey === false && ctrlKey === false;\n\n if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {\n return true;\n }\n\n return false;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nexport default function isSelectionValid() {\n var selection = window.getSelection();\n var string = selection.toString();\n var anchorNode = selection.anchorNode;\n var focusNode = selection.focusNode;\n var isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;\n return string.length >= 1 && string !== '\\n' && isTextNode;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * RESPONDER EVENT SYSTEM\n *\n * A single, global \"interaction lock\" on views. For a view to be the \"responder\" means\n * that pointer interactions are exclusive to that view and none other. The \"interaction\n * lock\" can be transferred (only) to ancestors of the current \"responder\" as long as\n * pointers continue to be active.\n *\n * Responder being granted:\n *\n * A view can become the \"responder\" after the following events:\n * * \"pointerdown\" (implemented using \"touchstart\", \"mousedown\")\n * * \"pointermove\" (implemented using \"touchmove\", \"mousemove\")\n * * \"scroll\" (while a pointer is down)\n * * \"selectionchange\" (while a pointer is down)\n *\n * If nothing is already the \"responder\", the event propagates to (capture) and from\n * (bubble) the event target until a view returns `true` for\n * `on*ShouldSetResponder(Capture)`.\n *\n * If something is already the responder, the event propagates to (capture) and from\n * (bubble) the lowest common ancestor of the event target and the current \"responder\".\n * Then negotiation happens between the current \"responder\" and a view that wants to\n * become the \"responder\": see the timing diagram below.\n *\n * (NOTE: Scrolled views either automatically become the \"responder\" or release the\n * \"interaction lock\". A native scroll view that isn't built on top of the responder\n * system must result in the current \"responder\" being notified that it no longer has\n * the \"interaction lock\" - the native system has taken over.\n *\n * Responder being released:\n *\n * As soon as there are no more active pointers that *started* inside descendants\n * of the *current* \"responder\", an `onResponderRelease` event is dispatched to the\n * current \"responder\", and the responder lock is released.\n *\n * Typical sequence of events:\n * * startShouldSetResponder\n * * responderGrant/Reject\n * * responderStart\n * * responderMove\n * * responderEnd\n * * responderRelease\n */\n\n/* Negotiation Performed\n +-----------------------+\n / \\\nProcess low level events to + Current Responder + wantsResponderID\ndetermine who to perform negot-| (if any exists at all) |\niation/transition | Otherwise just pass through|\n-------------------------------+----------------------------+------------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +--------------+ | |\n | onTouchStart | | |\n +------+-------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onStartShouldSetResponder|----->| onResponderStart (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest | |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderStart|\n | | +----------------+\nBubble to find first ID | |\nto return true:wantsResponderID| |\n | |\n +-------------+ | |\n | onTouchMove | | |\n +------+------+ none | |\n | return| |\n+-----------v-------------+true| +------------------------+ |\n|onMoveShouldSetResponder |----->| onResponderMove (cur) |<-----------+\n+-----------+-------------+ | +------------------------+ | |\n | | | +--------+-------+\n | returned true for| false:REJECT +-------->|onResponderReject\n | wantsResponderID | | | +----------------+\n | (now attempt | +------------------+-----+ |\n | handoff) | | onResponder | |\n +------------------->| TerminationRequest| |\n | +------------------+-----+ |\n | | | +----------------+\n | true:GRANT +-------->|onResponderGrant|\n | | +--------+-------+\n | +------------------------+ | |\n | | onResponderTerminate |<-----------+\n | +------------------+-----+ |\n | | | +----------------+\n | +-------->|onResponderMove |\n | | +----------------+\n | |\n | |\n Some active touch started| |\n inside current responder | +------------------------+ |\n +------------------------->| onResponderEnd | |\n | | +------------------------+ |\n +---+---------+ | |\n | onTouchEnd | | |\n +---+---------+ | |\n | | +------------------------+ |\n +------------------------->| onResponderEnd | |\n No active touches started| +-----------+------------+ |\n inside current responder | | |\n | v |\n | +------------------------+ |\n | | onResponderRelease | |\n | +------------------------+ |\n | |\n + + */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createResponderEvent from './createResponderEvent';\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from './ResponderEventTypes';\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from './utils';\nimport ResponderTouchHistoryStore from './ResponderTouchHistoryStore';\n/* ------------ TYPES ------------ */\n\nvar emptyObject = {};\n/* ------------ IMPLEMENTATION ------------ */\n\nvar startRegistration = ['onStartShouldSetResponderCapture', 'onStartShouldSetResponder', {\n bubbles: true\n}];\nvar moveRegistration = ['onMoveShouldSetResponderCapture', 'onMoveShouldSetResponder', {\n bubbles: true\n}];\nvar scrollRegistration = ['onScrollShouldSetResponderCapture', 'onScrollShouldSetResponder', {\n bubbles: false\n}];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\n\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\n\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\n/**\n * Process native events\n *\n * A single event listener is used to manage the responder system.\n * All pointers are tracked in the ResponderTouchHistoryStore. Native events\n * are interpreted in terms of the Responder System and checked to see if\n * the responder should be transferred. Each host node that is attached to\n * the Responder System has an ID, which is used to look up its associated\n * callbacks.\n */\n\n\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n /**\n * Manage emulated events and early bailout.\n * Since PointerEvent is not used yet (lack of support in older Safari), it's\n * necessary to manually manage the mess of browser touch/mouse events.\n * And bailout early for termination events when there is no active responder.\n */\n // Flag when browser may produce emulated events\n\n if (eventType === 'touchstart') {\n isEmulatingMouseEvents = true;\n } // Remove flag when browser will not produce emulated events\n\n\n if (eventType === 'touchmove' || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n } // Ignore various events in particular circumstances\n\n\n if ( // Ignore browser emulated mouse events\n eventType === 'mousedown' && isEmulatingMouseEvents || eventType === 'mousemove' && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === 'mousemove' && trackedTouchCount < 1) {\n return;\n } // Remove flag after emulated events are finished\n\n\n if (isEmulatingMouseEvents && eventType === 'mouseup') {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n\n return;\n }\n\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent);\n /**\n * Record the state of active pointers\n */\n\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n\n ResponderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n /**\n * Responder System logic\n */\n\n\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder; // If an event occured that might change the current responder...\n\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n // If there is already a responder, prune the event paths to the lowest common ancestor\n // of the existing responder and deepest target of the event.\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor); // Skip the current responder so it doesn't receive unexpected \"shouldSet\" events.\n\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n\n if (eventPaths != null) {\n // If a node wants to become the responder, attempt to transfer.\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n\n if (wantsResponder != null) {\n // Sets responder if none exists, or negotates with existing responder.\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n } // If there is now a responder, invoke its callbacks for the lifecycle of the gesture.\n\n\n if (currentResponder.id != null && currentResponder.node != null) {\n var _currentResponder = currentResponder,\n id = _currentResponder.id,\n node = _currentResponder.node;\n\n var _getResponderConfig = getResponderConfig(id),\n onResponderStart = _getResponderConfig.onResponderStart,\n onResponderMove = _getResponderConfig.onResponderMove,\n onResponderEnd = _getResponderConfig.onResponderEnd,\n onResponderRelease = _getResponderConfig.onResponderRelease,\n onResponderTerminate = _getResponderConfig.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig.onResponderTerminationRequest;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Start\n\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderStart';\n onResponderStart(responderEvent);\n }\n } // Move\n else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderMove';\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === 'contextmenu' || // window blur\n eventType === 'blur' && eventTarget === window || // responder (or ancestors) blur\n eventType === 'blur' && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches); // End\n\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderEnd';\n onResponderEnd(responderEvent);\n }\n } // Release\n\n\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderRelease';\n onResponderRelease(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n } // Terminate\n\n\n if (isTerminateEvent) {\n var shouldTerminate = true; // Responders can still avoid termination but only for these events.\n\n if (eventType === 'contextmenu' || eventType === 'scroll' || eventType === 'selectionchange') {\n // Only call this function is it wasn't already called during negotiation.\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n }\n\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\n/**\n * Walk the event path to/from the target node. At each node, stop and call the\n * relevant \"shouldSet\" functions for the given event type. If any of those functions\n * call \"stopPropagation\" on the event, stop searching for a responder.\n */\n\n\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type]; // for Flow\n\n if (shouldSetCallbacks != null) {\n var idPath = eventPaths.idPath,\n nodePath = eventPaths.nodePath;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var bubbles = shouldSetCallbacks[2].bubbles;\n\n var check = function check(id, node, callbackName) {\n var config = getResponderConfig(id);\n var shouldSetCallback = config[callbackName];\n\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node;\n\n if (shouldSetCallback(responderEvent) === true) {\n // Start the path from the potential responder\n var prunedIdPath = idPath.slice(idPath.indexOf(id));\n return {\n id: id,\n node: node,\n idPath: prunedIdPath\n };\n }\n }\n }; // capture\n\n\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n\n if (result != null) {\n return result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n } // bubble\n\n\n if (bubbles) {\n for (var _i = 0; _i < idPath.length; _i++) {\n var _id = idPath[_i];\n var _node = nodePath[_i];\n\n var _result = check(_id, _node, shouldSetCallbackBubbleName);\n\n if (_result != null) {\n return _result;\n }\n\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var _id2 = idPath[0];\n var _node2 = nodePath[0];\n var target = domEvent.target;\n\n if (target === _node2) {\n return check(_id2, _node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\n/**\n * Attempt to transfer the responder.\n */\n\n\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var _currentResponder2 = currentResponder,\n currentId = _currentResponder2.id,\n currentNode = _currentResponder2.node;\n var id = wantsResponder.id,\n node = wantsResponder.node;\n\n var _getResponderConfig2 = getResponderConfig(id),\n onResponderGrant = _getResponderConfig2.onResponderGrant,\n onResponderReject = _getResponderConfig2.onResponderReject;\n\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node; // Set responder\n\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } // Negotiate with current responder\n else {\n var _getResponderConfig3 = getResponderConfig(currentId),\n onResponderTerminate = _getResponderConfig3.onResponderTerminate,\n onResponderTerminationRequest = _getResponderConfig3.onResponderTerminationRequest;\n\n var allowTransfer = true;\n\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminationRequest';\n\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n\n if (allowTransfer) {\n // Terminate existing responder\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = 'onResponderTerminate';\n onResponderTerminate(responderEvent);\n } // Grant next responder\n\n\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderGrant';\n onResponderGrant(responderEvent);\n }\n\n changeCurrentResponder(wantsResponder);\n } else {\n // Reject responder request\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = 'onResponderReject';\n onResponderReject(responderEvent);\n }\n }\n }\n}\n/* ------------ PUBLIC API ------------ */\n\n/**\n * Attach Listeners\n *\n * Use native events as ReactDOM doesn't have a non-plugin API to implement\n * this system.\n */\n\n\nvar documentEventsCapturePhase = ['blur', 'scroll'];\nvar documentEventsBubblePhase = [// mouse\n'mousedown', 'mousemove', 'mouseup', 'dragstart', // touch\n'touchstart', 'touchmove', 'touchend', 'touchcancel', // other\n'contextmenu', 'select', 'selectionchange'];\nexport function attachListeners() {\n if (canUseDOM && window.__reactResponderSystemActive == null) {\n window.addEventListener('blur', eventListener);\n documentEventsBubblePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(function (eventType) {\n document.addEventListener(eventType, eventListener, true);\n });\n window.__reactResponderSystemActive = true;\n }\n}\n/**\n * Register a node with the ResponderSystem.\n */\n\nexport function addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\n/**\n * Unregister a node with the ResponderSystem.\n */\n\nexport function removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\n/**\n * Allow the current responder to be terminated from within components to support\n * more complex requirements, such as use with other React libraries for working\n * with scroll views, input views, etc.\n */\n\nexport function terminateResponder() {\n var _currentResponder3 = currentResponder,\n id = _currentResponder3.id,\n node = _currentResponder3.node;\n\n if (id != null && node != null) {\n var _getResponderConfig4 = getResponderConfig(id),\n onResponderTerminate = _getResponderConfig4.onResponderTerminate;\n\n if (onResponderTerminate != null) {\n var event = createResponderEvent({});\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n\n changeCurrentResponder(emptyResponder);\n }\n\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\n/**\n * Allow unit tests to inspect the current responder in the system.\n * FOR TESTING ONLY.\n */\n\nexport function getResponderNode() {\n return currentResponder.node;\n}","/**\n * Copyright (c) Nicolas Gallagher\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\n/**\n * Hook for integrating the Responder System into React\n *\n * function SomeComponent({ onStartShouldSetResponder }) {\n * const ref = useRef(null);\n * useResponderEvents(ref, { onStartShouldSetResponder });\n * return

\n * }\n */\nimport * as React from 'react';\nimport * as ResponderSystem from './ResponderSystem';\nvar emptyObject = {};\nvar idCounter = 0;\n\nfunction useStable(getInitialValue) {\n var ref = React.useRef(null);\n\n if (ref.current == null) {\n ref.current = getInitialValue();\n }\n\n return ref.current;\n}\n\nexport default function useResponderEvents(hostRef, config) {\n if (config === void 0) {\n config = emptyObject;\n }\n\n var id = useStable(function () {\n return idCounter++;\n });\n var isAttachedRef = React.useRef(false); // This is a separate effects so it doesn't run when the config changes.\n // On initial mount, attach global listeners if needed.\n // On unmount, remove node potentially attached to the Responder System.\n\n React.useEffect(function () {\n ResponderSystem.attachListeners();\n return function () {\n ResponderSystem.removeNode(id);\n };\n }, [id]); // Register and unregister with the Responder System as necessary\n\n React.useEffect(function () {\n var _config = config,\n onMoveShouldSetResponder = _config.onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture = _config.onMoveShouldSetResponderCapture,\n onScrollShouldSetResponder = _config.onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture = _config.onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder = _config.onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture = _config.onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder = _config.onStartShouldSetResponder,\n onStartShouldSetResponderCapture = _config.onStartShouldSetResponderCapture;\n var requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;\n var node = hostRef.current;\n\n if (requiresResponderSystem) {\n ResponderSystem.addNode(id, node, config);\n isAttachedRef.current = true;\n } else if (isAttachedRef.current) {\n ResponderSystem.removeNode(id);\n isAttachedRef.current = false;\n }\n }, [config, hostRef, id]);\n React.useDebugValue({\n isResponder: hostRef.current === ResponderSystem.getResponderNode()\n });\n React.useDebugValue(config);\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isDisabled = function isDisabled(props) {\n return props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n};\n\nexport default isDisabled;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = function propsToAriaRole(_ref) {\n var accessibilityRole = _ref.accessibilityRole;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n // ignore roles that don't map to web\n return inferredRole || accessibilityRole;\n }\n }\n};\n\nexport default propsToAriaRole;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport propsToAriaRole from './propsToAriaRole';\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n blockquote: 'blockquote',\n code: 'code',\n complementary: 'aside',\n contentinfo: 'footer',\n deletion: 'del',\n emphasis: 'em',\n figure: 'figure',\n insertion: 'ins',\n form: 'form',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section',\n strong: 'strong'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n // special-case for \"label\" role which doesn't map to an ARIA role\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props.accessibilityLevel || props['aria-level'];\n\n if (level != null) {\n return \"h\" + level;\n }\n\n return 'h1';\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isDisabled from './isDisabled';\nimport propsToAccessibilityComponent from './propsToAccessibilityComponent';\nimport propsToAriaRole from './propsToAriaRole';\nvar AccessibilityUtil = {\n isDisabled: isDisabled,\n propsToAccessibilityComponent: propsToAccessibilityComponent,\n propsToAriaRole: propsToAriaRole\n};\nexport default AccessibilityUtil;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar getBoundingClientRect = function getBoundingClientRect(node) {\n if (node != null) {\n var isElement = node.nodeType === 1;\n /* Node.ELEMENT_NODE */\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\nmodule.exports = exports['default'];","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar Alert = /*#__PURE__*/function () {\n function Alert() {}\n\n Alert.alert = function alert() {};\n\n return Alert;\n}();\n\nexport default Alert;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar unitlessNumbers = {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowGap: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnGap: true,\n gridColumnStart: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n // transform types\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n // RN properties\n shadowOpacity: true\n};\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar emptyObject = {};\nvar objects = {};\nvar prefix = 'r';\nvar uniqueID = 1;\n\nvar createKey = function createKey(id) {\n return prefix + \"-\" + id;\n};\n\nvar ReactNativePropRegistry = /*#__PURE__*/function () {\n function ReactNativePropRegistry() {}\n\n ReactNativePropRegistry.register = function register(object) {\n var id = uniqueID++;\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(object);\n }\n\n var key = createKey(id);\n objects[key] = object;\n return id;\n };\n\n ReactNativePropRegistry.getByID = function getByID(id) {\n if (!id) {\n // Used in the style={[condition && id]} pattern,\n // we want it to be a no-op when the value is false or null\n return emptyObject;\n }\n\n var key = createKey(id);\n var object = objects[key];\n\n if (!object) {\n console.warn('Invalid style with id `' + id + '`. Skipping ...');\n return emptyObject;\n }\n\n return object;\n };\n\n return ReactNativePropRegistry;\n}();\n\nexport { ReactNativePropRegistry as default };","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nvar UNINITIALIZED = typeof Symbol === 'function' && typeof Symbol() === 'symbol' ? Symbol() : Object.freeze({});\nexport default function useStable(getInitialValue) {\n var ref = React.useRef(UNINITIALIZED);\n\n if (ref.current === UNINITIALIZED) {\n ref.current = getInitialValue();\n } // $FlowFixMe (#64650789) Trouble refining types where `Symbol` is concerned.\n\n\n return ref.current;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * @flow\n *\n */\n\nimport type {ColorValue} from 'react-native/Libraries/StyleSheet/StyleSheet';\n\nimport * as React from 'react';\n\ntype Props = {\n color?: ColorValue,\n label: string,\n testID?: string,\n enabled?: Boolean,\n value?: number | string,\n};\n\nconst createElement =\n require('react-native-web').createElement ||\n require('react-native-web').unstable_createElement;\n\nconst Option = (props: any) => createElement('option', props);\n\n/**\n * PickerItem Component for React Native Web\n * @returns\n */\nexport default function PickerItem({\n color,\n label,\n testID,\n value,\n enabled = true,\n}: Props): React.Node {\n return (\n \n {label}\n \n );\n}\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * @flow\n *\n */\n\nimport * as React from 'react';\nimport {forwardRef, useRef} from 'react';\nimport type {ViewProps} from 'react-native-web/src/exports/View/types';\nimport type {GenericStyleProp} from 'react-native-web/src/types';\nimport type {TextStyle} from 'react-native-web/src/exports/Text/types';\nimport PickerItem from './PickerItem';\n\ntype PickerProps = {\n ...ViewProps,\n children?: typeof PickerItem | Array,\n enabled?: boolean,\n onValueChange?: (number | string, number) => void,\n selectedValue?: number | string,\n /**\n * dropdownIconColor\n * Not used for Web.\n */\n dropdownIconColor?: string,\n /* compat */\n itemStyle?: GenericStyleProp,\n mode?: string,\n prompt?: string,\n};\n\nconst createElement =\n require('react-native-web').createElement ||\n require('react-native-web').unstable_createElement;\n\nconst Select = forwardRef((props: any, forwardedRef) =>\n createElement('select', props),\n);\n\nconst Picker: React$AbstractComponent = forwardRef<\n PickerProps,\n *,\n>((props, forwardedRef) => {\n const {\n enabled,\n onValueChange,\n selectedValue,\n itemStyle,\n mode,\n prompt,\n dropdownIconColor,\n ...other\n } = props;\n\n const hostRef = useRef(null);\n\n const handleChange = React.useCallback(\n (e: Object) => {\n const {selectedIndex, value} = e.target;\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n },\n [onValueChange],\n );\n\n return (\n // $FlowFixMe\n \n );\n});\n\n// $FlowFixMe\nPicker.Item = PickerItem;\n\nexport default Picker;\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n * @format\n */\n\n'use strict';\n\nimport * as React from 'react';\nimport {View, StyleSheet} from 'react-native';\ndeclare var __DEV__: boolean;\n/**\n * Common implementation for a simple stubbed view. Simply applies the view's styles to the inner\n * View component and renders its children.\n */\nconst UnimplementedView = (props: $FlowFixMeProps): React.Node => {\n return (\n \n {props.children}\n \n );\n};\n\nconst styles = StyleSheet.create({\n unimplementedView:\n process.env.NODE_ENV !== 'production'\n ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1,\n }\n : {},\n});\n\nexport default UnimplementedView;\n","/**\n * @flow\n */\n\nimport * as React from 'react';\nimport UnimplementedView from './UnimplementedView';\n\nfunction PickerIOS(): React.Node {\n return ;\n}\n\n/**\n * Fallback for other platforms\n */\nPickerIOS.Item = UnimplementedView;\n\nexport default PickerIOS;\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UIManager from '../UIManager'; // NativeModules shim\n\nvar NativeModules = {\n UIManager: UIManager\n};\nexport default NativeModules;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nfunction isScreenReaderEnabled() {\n return new Promise(function (resolve, reject) {\n resolve(true);\n });\n}\n\nvar prefersReducedMotionMedia = canUseDOM && typeof window.matchMedia === 'function' ? window.matchMedia('(prefers-reduced-motion: reduce)') : null;\n\nfunction isReduceMotionEnabled() {\n return new Promise(function (resolve, reject) {\n resolve(prefersReducedMotionMedia ? prefersReducedMotionMedia.matches : true);\n });\n}\n\nfunction addChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.addEventListener != null ? prefersReducedMotionMedia.addEventListener('change', fn) : prefersReducedMotionMedia.addListener(fn);\n }\n}\n\nfunction removeChangeListener(fn) {\n if (prefersReducedMotionMedia != null) {\n prefersReducedMotionMedia.removeEventListener != null ? prefersReducedMotionMedia.removeEventListener('change', fn) : prefersReducedMotionMedia.removeListener(fn);\n }\n}\n\nvar handlers = {};\nvar AccessibilityInfo = {\n /**\n * Query whether a screen reader is currently enabled.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isScreenReaderEnabled: isScreenReaderEnabled,\n\n /**\n * Query whether the user prefers reduced motion.\n *\n * Returns a promise which resolves to a boolean.\n * The result is `true` when a screen reader is enabled and `false` otherwise.\n */\n isReduceMotionEnabled: isReduceMotionEnabled,\n\n /**\n * Deprecated\n */\n fetch: isScreenReaderEnabled,\n\n /**\n * Add an event handler. Supported events: reduceMotionChanged\n */\n addEventListener: function addEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n if (!prefersReducedMotionMedia) {\n return;\n }\n\n var listener = function listener(event) {\n handler(event.matches);\n };\n\n addChangeListener(listener);\n handlers[handler] = listener;\n }\n\n return {\n remove: function remove() {\n return AccessibilityInfo.removeEventListener(eventName, handler);\n }\n };\n },\n\n /**\n * Set accessibility focus to a react component.\n */\n setAccessibilityFocus: function setAccessibilityFocus(reactTag) {},\n\n /**\n * Post a string to be announced by the screen reader.\n */\n announceForAccessibility: function announceForAccessibility(announcement) {},\n\n /**\n * Remove an event handler.\n */\n removeEventListener: function removeEventListener(eventName, handler) {\n if (eventName === 'reduceMotionChanged') {\n var listener = handlers[handler];\n\n if (!listener || !prefersReducedMotionMedia) {\n return;\n }\n\n removeChangeListener(listener);\n }\n\n return;\n }\n};\nexport default AccessibilityInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nfunction getQuery() {\n return canUseDOM && window.matchMedia != null ? window.matchMedia('(prefers-color-scheme: dark)') : null;\n}\n\nvar query = getQuery();\nvar listenerMapping = new WeakMap();\nvar Appearance = {\n getColorScheme: function getColorScheme() {\n return query && query.matches ? 'dark' : 'light';\n },\n addChangeListener: function addChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (!mappedListener) {\n mappedListener = function mappedListener(_ref) {\n var matches = _ref.matches;\n listener({\n colorScheme: matches ? 'dark' : 'light'\n });\n };\n\n listenerMapping.set(listener, mappedListener);\n }\n\n if (query) {\n query.addListener(mappedListener);\n }\n },\n removeChangeListener: function removeChangeListener(listener) {\n var mappedListener = listenerMapping.get(listener);\n\n if (mappedListener) {\n if (query) {\n query.removeListener(mappedListener);\n }\n\n listenerMapping.delete(listener);\n }\n }\n};\nexport default Appearance;","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport findIndex from 'array-find-index';\nimport invariant from 'fbjs/lib/invariant'; // Android 4.4 browser\n\nvar isPrefixed = canUseDOM && !document.hasOwnProperty('hidden') && document.hasOwnProperty('webkitHidden');\nvar EVENT_TYPES = ['change', 'memoryWarning'];\nvar VISIBILITY_CHANGE_EVENT = isPrefixed ? 'webkitvisibilitychange' : 'visibilitychange';\nvar VISIBILITY_STATE_PROPERTY = isPrefixed ? 'webkitVisibilityState' : 'visibilityState';\nvar AppStates = {\n BACKGROUND: 'background',\n ACTIVE: 'active'\n};\nvar listeners = [];\n\nvar AppState = /*#__PURE__*/function () {\n function AppState() {}\n\n AppState.addEventListener = function addEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to subscribe to unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var callback = function callback() {\n return handler(AppState.currentState);\n };\n\n listeners.push([handler, callback]);\n document.addEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n }\n }\n };\n\n AppState.removeEventListener = function removeEventListener(type, handler) {\n if (AppState.isAvailable) {\n invariant(EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: \"%s\"', type);\n\n if (type === 'change') {\n var listenerIndex = findIndex(listeners, function (pair) {\n return pair[0] === handler;\n });\n invariant(listenerIndex !== -1, 'Trying to remove AppState listener for unregistered handler');\n var callback = listeners[listenerIndex][1];\n document.removeEventListener(VISIBILITY_CHANGE_EVENT, callback, false);\n listeners.splice(listenerIndex, 1);\n }\n }\n };\n\n _createClass(AppState, null, [{\n key: \"currentState\",\n get: function get() {\n if (!AppState.isAvailable) {\n return AppStates.ACTIVE;\n }\n\n switch (document[VISIBILITY_STATE_PROPERTY]) {\n case 'hidden':\n case 'prerender':\n case 'unloaded':\n return AppStates.BACKGROUND;\n\n default:\n return AppStates.ACTIVE;\n }\n }\n }]);\n\n return AppState;\n}();\n\nAppState.isAvailable = canUseDOM && document[VISIBILITY_STATE_PROPERTY];\nexport { AppState as default };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar clipboardAvailable;\n\nvar Clipboard = /*#__PURE__*/function () {\n function Clipboard() {}\n\n Clipboard.isAvailable = function isAvailable() {\n if (clipboardAvailable === undefined) {\n clipboardAvailable = typeof document.queryCommandSupported === 'function' && document.queryCommandSupported('copy');\n }\n\n return clipboardAvailable;\n };\n\n Clipboard.getString = function getString() {\n return Promise.resolve('');\n };\n\n Clipboard.setString = function setString(text) {\n var success = false;\n var body = document.body;\n\n if (body) {\n // add the text to a hidden node\n var node = document.createElement('span');\n node.textContent = text;\n node.style.opacity = '0';\n node.style.position = 'absolute';\n node.style.whiteSpace = 'pre-wrap';\n node.style.userSelect = 'auto';\n body.appendChild(node); // select the text\n\n var selection = window.getSelection();\n selection.removeAllRanges();\n var range = document.createRange();\n range.selectNodeContents(node);\n selection.addRange(range); // attempt to copy\n\n try {\n document.execCommand('copy');\n success = true;\n } catch (e) {} // remove selection and node\n\n\n selection.removeAllRanges();\n body.removeChild(node);\n }\n\n return success;\n };\n\n return Clipboard;\n}();\n\nexport { Clipboard as default };","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport Dimensions from '../Dimensions';\nvar DeviceInfo = {\n Dimensions: {\n get windowPhysicalPixels() {\n var _Dimensions$get = Dimensions.get('window'),\n width = _Dimensions$get.width,\n height = _Dimensions$get.height,\n fontScale = _Dimensions$get.fontScale,\n scale = _Dimensions$get.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n },\n\n get screenPhysicalPixels() {\n var _Dimensions$get2 = Dimensions.get('screen'),\n width = _Dimensions$get2.width,\n height = _Dimensions$get2.height,\n fontScale = _Dimensions$get2.fontScale,\n scale = _Dimensions$get2.scale;\n\n return {\n width: width * scale,\n height: height * scale,\n scale: scale,\n fontScale: fontScale\n };\n }\n\n },\n\n get locale() {\n if (canUseDOM) {\n if (navigator.languages) {\n return navigator.languages[0];\n } else {\n return navigator.language;\n }\n }\n },\n\n get totalMemory() {\n // $FlowIssue deviceMemory not defined in navigator\n return canUseDOM ? navigator.deviceMemory : undefined;\n },\n\n get userAgent() {\n return canUseDOM ? navigator.userAgent : '';\n }\n\n};\nexport default DeviceInfo;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport dismissKeyboard from '../../modules/dismissKeyboard';\nvar Keyboard = {\n addListener: function addListener() {\n return {\n remove: function remove() {}\n };\n },\n dismiss: function dismiss() {\n dismissKeyboard();\n },\n removeAllListeners: function removeAllListeners() {},\n removeListener: function removeListener() {}\n};\nexport default Keyboard;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport UIManager from '../../../exports/UIManager';\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction configureNext(config, onAnimationDidEnd) {\n if (!Platform.isTesting) {\n UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd !== null && onAnimationDidEnd !== void 0 ? onAnimationDidEnd : function () {}, function () {}\n /* unused onError */\n );\n }\n}\n\nfunction create(duration, type, property) {\n return {\n duration: duration,\n create: {\n type: type,\n property: property\n },\n update: {\n type: type\n },\n delete: {\n type: type,\n property: property\n }\n };\n}\n\nvar Presets = {\n easeInEaseOut: create(300, 'easeInEaseOut', 'opacity'),\n linear: create(500, 'linear', 'opacity'),\n spring: {\n duration: 700,\n create: {\n type: 'linear',\n property: 'opacity'\n },\n update: {\n type: 'spring',\n springDamping: 0.4\n },\n delete: {\n type: 'linear',\n property: 'opacity'\n }\n }\n};\n/**\n * Automatically animates views to their new positions when the\n * next layout happens.\n *\n * A common way to use this API is to call it before calling `setState`.\n *\n * Note that in order to get this to work on **Android** you need to set the following flags via `UIManager`:\n *\n * UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true);\n */\n\nvar LayoutAnimation = {\n /**\n * Schedules an animation to happen on the next layout.\n *\n * @param config Specifies animation properties:\n *\n * - `duration` in milliseconds\n * - `create`, `AnimationConfig` for animating in new views\n * - `update`, `AnimationConfig` for animating views that have been updated\n *\n * @param onAnimationDidEnd Called when the animation finished.\n * Only supported on iOS.\n * @param onError Called on error. Only supported on iOS.\n */\n configureNext: configureNext,\n\n /**\n * Helper for creating a config for `configureNext`.\n */\n create: create,\n Types: Object.freeze({\n spring: 'spring',\n linear: 'linear',\n easeInEaseOut: 'easeInEaseOut',\n easeIn: 'easeIn',\n easeOut: 'easeOut',\n keyboard: 'keyboard'\n }),\n Properties: Object.freeze({\n opacity: 'opacity',\n scaleX: 'scaleX',\n scaleY: 'scaleY',\n scaleXY: 'scaleXY'\n }),\n checkConfig: function checkConfig() {\n console.error('LayoutAnimation.checkConfig(...) has been disabled.');\n },\n Presets: Presets,\n easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut),\n linear: configureNext.bind(null, Presets.linear),\n spring: configureNext.bind(null, Presets.spring)\n};\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport LayoutAnimation from '../../vendor/react-native/LayoutAnimation';\nexport default LayoutAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport invariant from 'fbjs/lib/invariant';\nvar initialURL = canUseDOM ? window.location.href : '';\n\nvar Linking = /*#__PURE__*/function () {\n function Linking() {\n var _this = this;\n\n this._eventCallbacks = {};\n\n this.addEventListener = function (event, callback) {\n if (!_this._eventCallbacks[event]) {\n _this._eventCallbacks[event] = [callback];\n return;\n }\n\n _this._eventCallbacks[event].push(callback);\n };\n\n this.removeEventListener = function (event, callback) {\n var callbacks = _this._eventCallbacks[event];\n var filteredCallbacks = callbacks.filter(function (c) {\n return c.toString() !== callback.toString();\n });\n _this._eventCallbacks[event] = filteredCallbacks;\n };\n }\n\n var _proto = Linking.prototype;\n\n _proto._dispatchEvent = function _dispatchEvent(event) {\n for (var _len = arguments.length, data = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n data[_key - 1] = arguments[_key];\n }\n\n var listeners = this._eventCallbacks[event];\n\n if (listeners != null && Array.isArray(listeners)) {\n listeners.map(function (listener) {\n listener.apply(void 0, data);\n });\n }\n }\n /**\n * Adds a event listener for the specified event. The callback will be called when the\n * said event is dispatched.\n */\n ;\n\n _proto.canOpenURL = function canOpenURL() {\n return Promise.resolve(true);\n };\n\n _proto.getInitialURL = function getInitialURL() {\n return Promise.resolve(initialURL);\n }\n /**\n * Try to open the given url in a secure fashion. The method returns a Promise object.\n * If the url opens, the promise is resolved. If not, the promise is rejected.\n * Dispatches the `onOpen` event if `url` is opened successfully\n */\n ;\n\n _proto.openURL = function openURL(url) {\n try {\n open(url);\n\n this._dispatchEvent('onOpen', url);\n\n return Promise.resolve();\n } catch (e) {\n return Promise.reject(e);\n }\n };\n\n _proto._validateURL = function _validateURL(url) {\n invariant(typeof url === 'string', 'Invalid URL: should be a string. Was: ' + url);\n invariant(url, 'Invalid URL: cannot be empty');\n };\n\n return Linking;\n}();\n\nvar open = function open(url) {\n if (canUseDOM) {\n var urlToOpen = new URL(url, window.location).toString();\n window.open(urlToOpen, '_blank', 'noopener');\n }\n};\n\nexport default new Linking();","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\nvar TouchHistoryMath = {\n /**\n * This code is optimized and not intended to look beautiful. This allows\n * computing of touch centroids that have moved after `touchesChangedAfter`\n * timeStamp. You can compute the current centroid involving all touches\n * moves after `touchesChangedAfter`, or you can compute the previous\n * centroid of all touches that were moved after `touchesChangedAfter`.\n *\n * @param {TouchHistoryMath} touchHistory Standard Responder touch track\n * data.\n * @param {number} touchesChangedAfter timeStamp after which moved touches\n * are considered \"actively moving\" - not just \"active\".\n * @param {boolean} isXAxis Consider `x` dimension vs. `y` dimension.\n * @param {boolean} ofCurrent Compute current centroid for actively moving\n * touches vs. previous centroid of now actively moving touches.\n * @return {number} value of centroid in specified dimension.\n */\n centroidDimension: function centroidDimension(touchHistory, touchesChangedAfter, isXAxis, ofCurrent) {\n var touchBank = touchHistory.touchBank;\n var total = 0;\n var count = 0;\n var oneTouchData = touchHistory.numberActiveTouches === 1 ? touchHistory.touchBank[touchHistory.indexOfSingleActiveTouch] : null;\n\n if (oneTouchData !== null) {\n if (oneTouchData.touchActive && oneTouchData.currentTimeStamp > touchesChangedAfter) {\n total += ofCurrent && isXAxis ? oneTouchData.currentPageX : ofCurrent && !isXAxis ? oneTouchData.currentPageY : !ofCurrent && isXAxis ? oneTouchData.previousPageX : oneTouchData.previousPageY;\n count = 1;\n }\n } else {\n for (var i = 0; i < touchBank.length; i++) {\n var touchTrack = touchBank[i];\n\n if (touchTrack !== null && touchTrack !== undefined && touchTrack.touchActive && touchTrack.currentTimeStamp >= touchesChangedAfter) {\n var toAdd = void 0; // Yuck, program temporarily in invalid state.\n\n if (ofCurrent && isXAxis) {\n toAdd = touchTrack.currentPageX;\n } else if (ofCurrent && !isXAxis) {\n toAdd = touchTrack.currentPageY;\n } else if (!ofCurrent && isXAxis) {\n toAdd = touchTrack.previousPageX;\n } else {\n toAdd = touchTrack.previousPageY;\n }\n\n total += toAdd;\n count++;\n }\n }\n }\n\n return count > 0 ? total / count : TouchHistoryMath.noCentroid;\n },\n currentCentroidXOfTouchesChangedAfter: function currentCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidYOfTouchesChangedAfter: function currentCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n true // ofCurrent\n );\n },\n previousCentroidXOfTouchesChangedAfter: function previousCentroidXOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, true, // isXAxis\n false // ofCurrent\n );\n },\n previousCentroidYOfTouchesChangedAfter: function previousCentroidYOfTouchesChangedAfter(touchHistory, touchesChangedAfter) {\n return TouchHistoryMath.centroidDimension(touchHistory, touchesChangedAfter, false, // isXAxis\n false // ofCurrent\n );\n },\n currentCentroidX: function currentCentroidX(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n true, // isXAxis\n true // ofCurrent\n );\n },\n currentCentroidY: function currentCentroidY(touchHistory) {\n return TouchHistoryMath.centroidDimension(touchHistory, 0, // touchesChangedAfter\n false, // isXAxis\n true // ofCurrent\n );\n },\n noCentroid: -1\n};\nexport default TouchHistoryMath;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport InteractionManager from '../../../exports/InteractionManager';\nimport TouchHistoryMath from '../TouchHistoryMath';\nvar currentCentroidXOfTouchesChangedAfter = TouchHistoryMath.currentCentroidXOfTouchesChangedAfter;\nvar currentCentroidYOfTouchesChangedAfter = TouchHistoryMath.currentCentroidYOfTouchesChangedAfter;\nvar previousCentroidXOfTouchesChangedAfter = TouchHistoryMath.previousCentroidXOfTouchesChangedAfter;\nvar previousCentroidYOfTouchesChangedAfter = TouchHistoryMath.previousCentroidYOfTouchesChangedAfter;\nvar currentCentroidX = TouchHistoryMath.currentCentroidX;\nvar currentCentroidY = TouchHistoryMath.currentCentroidY;\n/**\n * `PanResponder` reconciles several touches into a single gesture. It makes\n * single-touch gestures resilient to extra touches, and can be used to\n * recognize simple multi-touch gestures.\n *\n * By default, `PanResponder` holds an `InteractionManager` handle to block\n * long-running JS events from interrupting active gestures.\n *\n * It provides a predictable wrapper of the responder handlers provided by the\n * [gesture responder system](docs/gesture-responder-system.html).\n * For each handler, it provides a new `gestureState` object alongside the\n * native event object:\n *\n * ```\n * onPanResponderMove: (event, gestureState) => {}\n * ```\n *\n * A native event is a synthetic touch event with the following form:\n *\n * - `nativeEvent`\n * + `changedTouches` - Array of all touch events that have changed since the last event\n * + `identifier` - The ID of the touch\n * + `locationX` - The X position of the touch, relative to the element\n * + `locationY` - The Y position of the touch, relative to the element\n * + `pageX` - The X position of the touch, relative to the root element\n * + `pageY` - The Y position of the touch, relative to the root element\n * + `target` - The node id of the element receiving the touch event\n * + `timestamp` - A time identifier for the touch, useful for velocity calculation\n * + `touches` - Array of all current touches on the screen\n *\n * A `gestureState` object has the following:\n *\n * - `stateID` - ID of the gestureState- persisted as long as there at least\n * one touch on screen\n * - `moveX` - the latest screen coordinates of the recently-moved touch\n * - `moveY` - the latest screen coordinates of the recently-moved touch\n * - `x0` - the screen coordinates of the responder grant\n * - `y0` - the screen coordinates of the responder grant\n * - `dx` - accumulated distance of the gesture since the touch started\n * - `dy` - accumulated distance of the gesture since the touch started\n * - `vx` - current velocity of the gesture\n * - `vy` - current velocity of the gesture\n * - `numberActiveTouches` - Number of touches currently on screen\n *\n * ### Basic Usage\n *\n * ```\n * componentWillMount: function() {\n * this._panResponder = PanResponder.create({\n * // Ask to be the responder:\n * onStartShouldSetPanResponder: (evt, gestureState) => true,\n * onStartShouldSetPanResponderCapture: (evt, gestureState) => true,\n * onMoveShouldSetPanResponder: (evt, gestureState) => true,\n * onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,\n *\n * onPanResponderGrant: (evt, gestureState) => {\n * // The gesture has started. Show visual feedback so the user knows\n * // what is happening!\n *\n * // gestureState.d{x,y} will be set to zero now\n * },\n * onPanResponderMove: (evt, gestureState) => {\n * // The most recent move distance is gestureState.move{X,Y}\n *\n * // The accumulated gesture distance since becoming responder is\n * // gestureState.d{x,y}\n * },\n * onPanResponderTerminationRequest: (evt, gestureState) => true,\n * onPanResponderRelease: (evt, gestureState) => {\n * // The user has released all touches while this view is the\n * // responder. This typically means a gesture has succeeded\n * },\n * onPanResponderTerminate: (evt, gestureState) => {\n * // Another component has become the responder, so this gesture\n * // should be cancelled\n * },\n * onShouldBlockNativeResponder: (evt, gestureState) => {\n * // Returns whether this component should block native components from becoming the JS\n * // responder. Returns true by default. Is currently only supported on android.\n * return true;\n * },\n * });\n * },\n *\n * render: function() {\n * return (\n * \n * );\n * },\n *\n * ```\n *\n * ### Working Example\n *\n * To see it in action, try the\n * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/master/RNTester/js/PanResponderExample.js)\n */\n\nvar PanResponder = {\n /**\n *\n * A graphical explanation of the touch data flow:\n *\n * +----------------------------+ +--------------------------------+\n * | ResponderTouchHistoryStore | |TouchHistoryMath |\n * +----------------------------+ +----------+---------------------+\n * |Global store of touchHistory| |Allocation-less math util |\n * |including activeness, start | |on touch history (centroids |\n * |position, prev/cur position.| |and multitouch movement etc) |\n * | | | |\n * +----^-----------------------+ +----^---------------------------+\n * | |\n * | (records relevant history |\n * | of touches relevant for |\n * | implementing higher level |\n * | gestures) |\n * | |\n * +----+-----------------------+ +----|---------------------------+\n * | ResponderEventPlugin | | | Your App/Component |\n * +----------------------------+ +----|---------------------------+\n * |Negotiates which view gets | Low level | | High level |\n * |onResponderMove events. | events w/ | +-+-------+ events w/ |\n * |Also records history into | touchHistory| | Pan | multitouch + |\n * |ResponderTouchHistoryStore. +---------------->Responder+-----> accumulative|\n * +----------------------------+ attached to | | | distance and |\n * each event | +---------+ velocity. |\n * | |\n * | |\n * +--------------------------------+\n *\n *\n *\n * Gesture that calculates cumulative movement over time in a way that just\n * \"does the right thing\" for multiple touches. The \"right thing\" is very\n * nuanced. When moving two touches in opposite directions, the cumulative\n * distance is zero in each dimension. When two touches move in parallel five\n * pixels in the same direction, the cumulative distance is five, not ten. If\n * two touches start, one moves five in a direction, then stops and the other\n * touch moves fives in the same direction, the cumulative distance is ten.\n *\n * This logic requires a kind of processing of time \"clusters\" of touch events\n * so that two touch moves that essentially occur in parallel but move every\n * other frame respectively, are considered part of the same movement.\n *\n * Explanation of some of the non-obvious fields:\n *\n * - moveX/moveY: If no move event has been observed, then `(moveX, moveY)` is\n * invalid. If a move event has been observed, `(moveX, moveY)` is the\n * centroid of the most recently moved \"cluster\" of active touches.\n * (Currently all move have the same timeStamp, but later we should add some\n * threshold for what is considered to be \"moving\"). If a palm is\n * accidentally counted as a touch, but a finger is moving greatly, the palm\n * will move slightly, but we only want to count the single moving touch.\n * - x0/y0: Centroid location (non-cumulative) at the time of becoming\n * responder.\n * - dx/dy: Cumulative touch distance - not the same thing as sum of each touch\n * distance. Accounts for touch moves that are clustered together in time,\n * moving the same direction. Only valid when currently responder (otherwise,\n * it only represents the drag distance below the threshold).\n * - vx/vy: Velocity.\n */\n _initializeGestureState: function _initializeGestureState(gestureState) {\n gestureState.moveX = 0;\n gestureState.moveY = 0;\n gestureState.x0 = 0;\n gestureState.y0 = 0;\n gestureState.dx = 0;\n gestureState.dy = 0;\n gestureState.vx = 0;\n gestureState.vy = 0;\n gestureState.numberActiveTouches = 0; // All `gestureState` accounts for timeStamps up until:\n\n gestureState._accountsForMovesUpTo = 0;\n },\n\n /**\n * This is nuanced and is necessary. It is incorrect to continuously take all\n * active *and* recently moved touches, find the centroid, and track how that\n * result changes over time. Instead, we must take all recently moved\n * touches, and calculate how the centroid has changed just for those\n * recently moved touches, and append that change to an accumulator. This is\n * to (at least) handle the case where the user is moving three fingers, and\n * then one of the fingers stops but the other two continue.\n *\n * This is very different than taking all of the recently moved touches and\n * storing their centroid as `dx/dy`. For correctness, we must *accumulate\n * changes* in the centroid of recently moved touches.\n *\n * There is also some nuance with how we handle multiple moved touches in a\n * single event. With the way `ReactNativeEventEmitter` dispatches touches as\n * individual events, multiple touches generate two 'move' events, each of\n * them triggering `onResponderMove`. But with the way `PanResponder` works,\n * all of the gesture inference is performed on the first dispatch, since it\n * looks at all of the touches (even the ones for which there hasn't been a\n * native dispatch yet). Therefore, `PanResponder` does not call\n * `onResponderMove` passed the first dispatch. This diverges from the\n * typical responder callback pattern (without using `PanResponder`), but\n * avoids more dispatches than necessary.\n */\n _updateGestureStateOnMove: function _updateGestureStateOnMove(gestureState, touchHistory) {\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo);\n var movedAfter = gestureState._accountsForMovesUpTo;\n var prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var x = currentCentroidXOfTouchesChangedAfter(touchHistory, movedAfter);\n var prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var y = currentCentroidYOfTouchesChangedAfter(touchHistory, movedAfter);\n var nextDX = gestureState.dx + (x - prevX);\n var nextDY = gestureState.dy + (y - prevY); // TODO: This must be filtered intelligently.\n\n var dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo;\n gestureState.vx = (nextDX - gestureState.dx) / dt;\n gestureState.vy = (nextDY - gestureState.dy) / dt;\n gestureState.dx = nextDX;\n gestureState.dy = nextDY;\n gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp;\n },\n\n /**\n * @param {object} config Enhanced versions of all of the responder callbacks\n * that provide not only the typical `ResponderSyntheticEvent`, but also the\n * `PanResponder` gesture state. Simply replace the word `Responder` with\n * `PanResponder` in each of the typical `onResponder*` callbacks. For\n * example, the `config` object would look like:\n *\n * - `onMoveShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onMoveShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponder: (e, gestureState) => {...}`\n * - `onStartShouldSetPanResponderCapture: (e, gestureState) => {...}`\n * - `onPanResponderReject: (e, gestureState) => {...}`\n * - `onPanResponderGrant: (e, gestureState) => {...}`\n * - `onPanResponderStart: (e, gestureState) => {...}`\n * - `onPanResponderEnd: (e, gestureState) => {...}`\n * - `onPanResponderRelease: (e, gestureState) => {...}`\n * - `onPanResponderMove: (e, gestureState) => {...}`\n * - `onPanResponderTerminate: (e, gestureState) => {...}`\n * - `onPanResponderTerminationRequest: (e, gestureState) => {...}`\n * - `onShouldBlockNativeResponder: (e, gestureState) => {...}`\n *\n * In general, for events that have capture equivalents, we update the\n * gestureState once in the capture phase and can use it in the bubble phase\n * as well.\n *\n * Be careful with onStartShould* callbacks. They only reflect updated\n * `gestureState` for start/end events that bubble/capture to the Node.\n * Once the node is the responder, you can rely on every start/end event\n * being processed by the gesture and `gestureState` being updated\n * accordingly. (numberActiveTouches) may not be totally accurate unless you\n * are the responder.\n */\n create: function create(config) {\n var interactionState = {\n handle: null,\n shouldCancelClick: false,\n timeout: null\n };\n var gestureState = {\n // Useful for debugging\n stateID: Math.random(),\n moveX: 0,\n moveY: 0,\n x0: 0,\n y0: 0,\n dx: 0,\n dy: 0,\n vx: 0,\n vy: 0,\n numberActiveTouches: 0,\n _accountsForMovesUpTo: 0\n };\n var panHandlers = {\n onStartShouldSetResponder: function onStartShouldSetResponder(event) {\n return config.onStartShouldSetPanResponder == null ? false : config.onStartShouldSetPanResponder(event, gestureState);\n },\n onMoveShouldSetResponder: function onMoveShouldSetResponder(event) {\n return config.onMoveShouldSetPanResponder == null ? false : config.onMoveShouldSetPanResponder(event, gestureState);\n },\n onStartShouldSetResponderCapture: function onStartShouldSetResponderCapture(event) {\n // TODO: Actually, we should reinitialize the state any time\n // touches.length increases from 0 active to > 0 active.\n if (event.nativeEvent.touches.length === 1) {\n PanResponder._initializeGestureState(gestureState);\n }\n\n gestureState.numberActiveTouches = event.touchHistory.numberActiveTouches;\n return config.onStartShouldSetPanResponderCapture != null ? config.onStartShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onMoveShouldSetResponderCapture: function onMoveShouldSetResponderCapture(event) {\n var touchHistory = event.touchHistory; // Responder system incorrectly dispatches should* to current responder\n // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return false;\n }\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n return config.onMoveShouldSetPanResponderCapture ? config.onMoveShouldSetPanResponderCapture(event, gestureState) : false;\n },\n onResponderGrant: function onResponderGrant(event) {\n if (!interactionState.handle) {\n interactionState.handle = InteractionManager.createInteractionHandle();\n }\n\n if (interactionState.timeout) {\n clearInteractionTimeout(interactionState);\n }\n\n interactionState.shouldCancelClick = true;\n gestureState.x0 = currentCentroidX(event.touchHistory);\n gestureState.y0 = currentCentroidY(event.touchHistory);\n gestureState.dx = 0;\n gestureState.dy = 0;\n\n if (config.onPanResponderGrant) {\n config.onPanResponderGrant(event, gestureState);\n } // TODO: t7467124 investigate if this can be removed\n\n\n return config.onShouldBlockNativeResponder == null ? true : config.onShouldBlockNativeResponder(event, gestureState);\n },\n onResponderReject: function onResponderReject(event) {\n clearInteractionHandle(interactionState, config.onPanResponderReject, event, gestureState);\n },\n onResponderRelease: function onResponderRelease(event) {\n clearInteractionHandle(interactionState, config.onPanResponderRelease, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderStart: function onResponderStart(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n\n if (config.onPanResponderStart) {\n config.onPanResponderStart(event, gestureState);\n }\n },\n onResponderMove: function onResponderMove(event) {\n var touchHistory = event.touchHistory; // Guard against the dispatch of two touch moves when there are two\n // simultaneously changed touches.\n\n if (gestureState._accountsForMovesUpTo === touchHistory.mostRecentTimeStamp) {\n return;\n } // Filter out any touch moves past the first one - we would have\n // already processed multi-touch geometry during the first event.\n\n\n PanResponder._updateGestureStateOnMove(gestureState, touchHistory);\n\n if (config.onPanResponderMove) {\n config.onPanResponderMove(event, gestureState);\n }\n },\n onResponderEnd: function onResponderEnd(event) {\n var touchHistory = event.touchHistory;\n gestureState.numberActiveTouches = touchHistory.numberActiveTouches;\n clearInteractionHandle(interactionState, config.onPanResponderEnd, event, gestureState);\n },\n onResponderTerminate: function onResponderTerminate(event) {\n clearInteractionHandle(interactionState, config.onPanResponderTerminate, event, gestureState);\n setInteractionTimeout(interactionState);\n\n PanResponder._initializeGestureState(gestureState);\n },\n onResponderTerminationRequest: function onResponderTerminationRequest(event) {\n return config.onPanResponderTerminationRequest == null ? true : config.onPanResponderTerminationRequest(event, gestureState);\n },\n // We do not want to trigger 'click' activated gestures or native behaviors\n // on any pan target that is under a mouse cursor when it is released.\n // Browsers will natively cancel 'click' events on a target if a non-mouse\n // active pointer moves.\n onClickCapture: function onClickCapture(event) {\n if (interactionState.shouldCancelClick === true) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n };\n return {\n panHandlers: panHandlers,\n getInteractionHandle: function getInteractionHandle() {\n return interactionState.handle;\n }\n };\n }\n};\n\nfunction clearInteractionHandle(interactionState, callback, event, gestureState) {\n if (interactionState.handle) {\n InteractionManager.clearInteractionHandle(interactionState.handle);\n interactionState.handle = null;\n }\n\n if (callback) {\n callback(event, gestureState);\n }\n}\n\nfunction clearInteractionTimeout(interactionState) {\n clearTimeout(interactionState.timeout);\n}\n\nfunction setInteractionTimeout(interactionState) {\n interactionState.timeout = setTimeout(function () {\n interactionState.shouldCancelClick = false;\n }, 250);\n}\n\nexport default PanResponder;","import PanResponder from '../../vendor/react-native/PanResponder';\nexport default PanResponder;","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar Share = /*#__PURE__*/function () {\n function Share() {}\n\n Share.share = function share(content, options) {\n if (options === void 0) {\n options = {};\n }\n\n invariant(typeof content === 'object' && content !== null, 'Content to share must be a valid object');\n invariant(typeof content.url === 'string' || typeof content.message === 'string', 'At least one of URL and message is required');\n invariant(typeof options === 'object' && options !== null, 'Options must be a valid object');\n invariant(!content.title || typeof content.title === 'string', 'Invalid title: title should be a string.');\n\n if (window.navigator.share !== undefined) {\n return window.navigator.share({\n title: content.title,\n text: content.message,\n url: content.url\n });\n } else {\n return Promise.reject(new Error('Share is not supported in this browser'));\n }\n }\n /**\n * The content was successfully shared.\n */\n ;\n\n _createClass(Share, null, [{\n key: \"sharedAction\",\n get: function get() {\n return 'sharedAction';\n }\n /**\n * The dialog has been dismissed.\n * @platform ios\n */\n\n }, {\n key: \"dismissedAction\",\n get: function get() {\n return 'dismissedAction';\n }\n }]);\n\n return Share;\n}();\n\nexport default Share;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar _vibrate = function vibrate(pattern) {\n if ('vibrate' in window.navigator) {\n window.navigator.vibrate(pattern);\n }\n};\n\nvar Vibration = {\n cancel: function cancel() {\n _vibrate(0);\n },\n vibrate: function vibrate(pattern) {\n if (pattern === void 0) {\n pattern = 400;\n }\n\n _vibrate(pattern);\n }\n};\nexport default Vibration;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar CheckBox = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var color = props.color,\n disabled = props.disabled,\n onChange = props.onChange,\n onValueChange = props.onValueChange,\n style = props.style,\n value = props.value,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"disabled\", \"onChange\", \"onValueChange\", \"style\", \"value\"]);\n\n function handleChange(event) {\n var value = event.nativeEvent.target.checked;\n event.nativeEvent.value = value;\n onChange && onChange(event);\n onValueChange && onValueChange(value);\n }\n\n var fakeControl = /*#__PURE__*/React.createElement(View, {\n style: [styles.fakeControl, value && styles.fakeControlChecked, // custom color\n value && color && {\n backgroundColor: color,\n borderColor: color\n }, disabled && styles.fakeControlDisabled, value && disabled && styles.fakeControlCheckedAndDisabled]\n });\n var nativeControl = createElement('input', {\n checked: value,\n disabled: disabled,\n onChange: handleChange,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityDisabled: disabled,\n style: [styles.root, style, disabled && styles.cursorDefault]\n }), fakeControl, nativeControl);\n});\nCheckBox.displayName = 'CheckBox';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n height: 16,\n userSelect: 'none',\n width: 16\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n fakeControl: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderColor: '#657786',\n borderRadius: 2,\n borderStyle: 'solid',\n borderWidth: 2,\n height: '100%',\n justifyContent: 'center',\n width: '100%'\n },\n fakeControlChecked: {\n backgroundColor: '#009688',\n backgroundImage: 'url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\")',\n backgroundRepeat: 'no-repeat',\n borderColor: '#009688'\n },\n fakeControlDisabled: {\n borderColor: '#CCD6DD'\n },\n fakeControlCheckedAndDisabled: {\n backgroundColor: '#AAB8C2',\n borderColor: '#AAB8C2'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default CheckBox;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport Image from '../Image';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\n/**\n * Very simple drop-in replacement for which supports nesting views.\n */\n\nvar ImageBackground = /*#__PURE__*/forwardRef(function (props, forwardedRef) {\n var children = props.children,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n imageStyle = props.imageStyle,\n imageRef = props.imageRef,\n rest = _objectWithoutPropertiesLoose(props, [\"children\", \"style\", \"imageStyle\", \"imageRef\"]);\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n height = _StyleSheet$flatten.height,\n width = _StyleSheet$flatten.width;\n\n return /*#__PURE__*/React.createElement(View, {\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(Image, _extends({}, rest, {\n ref: imageRef,\n style: [StyleSheet.absoluteFill, {\n // Temporary Workaround:\n // Current (imperfect yet) implementation of overwrites width and height styles\n // (which is not quite correct), and these styles conflict with explicitly set styles\n // of and with our internal layout model here.\n // So, we have to proxy/reapply these styles explicitly for actual component.\n // This workaround should be removed after implementing proper support of\n // intrinsic content size of the .\n width: width,\n height: height,\n zIndex: -1\n }, imageStyle]\n })), children);\n});\nImageBackground.displayName = 'ImageBackground';\nexport default ImageBackground;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport View from '../View';\n\nvar KeyboardAvoidingView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(KeyboardAvoidingView, _React$Component);\n\n function KeyboardAvoidingView() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.frame = null;\n\n _this.onLayout = function (event) {\n _this.frame = event.nativeEvent.layout;\n };\n\n return _this;\n }\n\n var _proto = KeyboardAvoidingView.prototype;\n\n _proto.relativeKeyboardHeight = function relativeKeyboardHeight(keyboardFrame) {\n var frame = this.frame;\n\n if (!frame || !keyboardFrame) {\n return 0;\n }\n\n var keyboardY = keyboardFrame.screenY - (this.props.keyboardVerticalOffset || 0);\n return Math.max(frame.y + frame.height - keyboardY, 0);\n };\n\n _proto.onKeyboardChange = function onKeyboardChange(event) {};\n\n _proto.render = function render() {\n var _this$props = this.props,\n behavior = _this$props.behavior,\n contentContainerStyle = _this$props.contentContainerStyle,\n keyboardVerticalOffset = _this$props.keyboardVerticalOffset,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"behavior\", \"contentContainerStyle\", \"keyboardVerticalOffset\"]);\n\n return /*#__PURE__*/React.createElement(View, _extends({\n onLayout: this.onLayout\n }, rest));\n };\n\n return KeyboardAvoidingView;\n}(React.Component);\n\nexport default KeyboardAvoidingView;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport ReactDOM from 'react-dom';\n\nfunction ModalPortal(props) {\n var children = props.children;\n var elementRef = React.useRef(null);\n\n if (canUseDOM && !elementRef.current) {\n var element = document.createElement('div');\n\n if (element && document.body) {\n document.body.appendChild(element);\n elementRef.current = element;\n }\n }\n\n React.useEffect(function () {\n if (canUseDOM) {\n return function () {\n if (document.body && elementRef.current) {\n document.body.removeChild(elementRef.current);\n elementRef.current = null;\n }\n };\n }\n }, []);\n return elementRef.current && canUseDOM ? /*#__PURE__*/ReactDOM.createPortal(children, elementRef.current) : null;\n}\n\nexport default ModalPortal;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport createElement from '../createElement';\nvar ANIMATION_DURATION = 300;\n\nfunction getAnimationStyle(animationType, visible) {\n if (animationType === 'slide') {\n return visible ? animatedSlideInStyles : animatedSlideOutStyles;\n }\n\n if (animationType === 'fade') {\n return visible ? animatedFadeInStyles : animatedFadeOutStyles;\n }\n\n return visible ? styles.container : styles.hidden;\n}\n\nfunction ModalAnimation(props) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onShow = props.onShow,\n visible = props.visible;\n\n var _React$useState = React.useState(false),\n isRendering = _React$useState[0],\n setIsRendering = _React$useState[1];\n\n var wasVisible = React.useRef(false);\n var isAnimated = animationType && animationType !== 'none';\n var animationEndCallback = React.useCallback(function (e) {\n if (e && e.currentTarget !== e.target) {\n // If the event was generated for something NOT this element we\n // should ignore it as it's not relevant to us\n return;\n }\n\n if (visible) {\n if (onShow) {\n onShow();\n }\n } else {\n setIsRendering(false);\n\n if (onDismiss) {\n onDismiss();\n }\n }\n }, [onDismiss, onShow, visible]);\n React.useEffect(function () {\n if (visible) {\n setIsRendering(true);\n }\n\n if (visible !== wasVisible.current && !isAnimated) {\n // Manually call `animationEndCallback` if no animation is used\n animationEndCallback();\n }\n\n wasVisible.current = visible;\n }, [isAnimated, visible, animationEndCallback]);\n return isRendering || visible ? createElement('div', {\n style: isRendering ? getAnimationStyle(animationType, visible) : styles.hidden,\n onAnimationEnd: animationEndCallback,\n children: children\n }) : null;\n}\n\nvar styles = StyleSheet.create({\n container: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 9999\n },\n animatedIn: {\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-in'\n },\n animatedOut: {\n pointerEvents: 'none',\n animationDuration: ANIMATION_DURATION + \"ms\",\n animationTimingFunction: 'ease-out'\n },\n fadeIn: {\n opacity: 1,\n animationKeyframes: {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n }\n },\n fadeOut: {\n opacity: 0,\n animationKeyframes: {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n }\n },\n slideIn: {\n transform: [{\n translateY: '0%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '100%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '0%'\n }]\n }\n }\n },\n slideOut: {\n transform: [{\n translateY: '100%'\n }],\n animationKeyframes: {\n '0%': {\n transform: [{\n translateY: '0%'\n }]\n },\n '100%': {\n transform: [{\n translateY: '100%'\n }]\n }\n }\n },\n hidden: {\n opacity: 0\n }\n});\nvar animatedSlideInStyles = [styles.container, styles.animatedIn, styles.slideIn];\nvar animatedSlideOutStyles = [styles.container, styles.animatedOut, styles.slideOut];\nvar animatedFadeInStyles = [styles.container, styles.animatedIn, styles.fadeIn];\nvar animatedFadeOutStyles = [styles.container, styles.animatedOut, styles.fadeOut];\nexport default ModalAnimation;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport StyleSheet from '../StyleSheet';\nvar ModalContent = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var active = props.active,\n children = props.children,\n onRequestClose = props.onRequestClose,\n transparent = props.transparent;\n React.useEffect(function () {\n if (canUseDOM) {\n var closeOnEscape = function closeOnEscape(e) {\n if (active && e.key === 'Escape') {\n e.stopPropagation();\n\n if (onRequestClose) {\n onRequestClose();\n }\n }\n };\n\n document.addEventListener('keyup', closeOnEscape, false);\n return function () {\n return document.removeEventListener('keyup', closeOnEscape, false);\n };\n }\n }, [active, onRequestClose]);\n var style = React.useMemo(function () {\n return [styles.modal, transparent ? styles.modalTransparent : styles.modalOpaque];\n }, [transparent]);\n return /*#__PURE__*/React.createElement(View, {\n accessibilityRole: active ? 'dialog' : null,\n \"aria-modal\": true,\n ref: forwardedRef,\n style: style\n }, /*#__PURE__*/React.createElement(View, {\n style: styles.container\n }, children));\n});\nvar styles = StyleSheet.create({\n modal: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n modalTransparent: {\n backgroundColor: 'transparent'\n },\n modalOpaque: {\n backgroundColor: 'white'\n },\n container: {\n top: 0,\n flex: 1\n }\n});\nexport default ModalContent;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport View from '../View';\nimport createElement from '../createElement';\nimport StyleSheet from '../StyleSheet';\nimport UIManager from '../UIManager';\n/**\n * This Component is used to \"wrap\" the modal we're opening\n * so that changing focus via tab will never leave the document.\n *\n * This allows us to properly trap the focus within a modal\n * even if the modal is at the start or end of a document.\n */\n\nvar FocusBracket = function FocusBracket() {\n return createElement('div', {\n accessibilityRole: 'none',\n tabIndex: 0,\n style: styles.focusBracket\n });\n};\n\nfunction attemptFocus(element) {\n if (!canUseDOM) {\n return false;\n }\n\n try {\n element.focus();\n } catch (e) {// Do nothing\n }\n\n return document.activeElement === element;\n}\n\nfunction focusFirstDescendant(element) {\n for (var i = 0; i < element.childNodes.length; i++) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusFirstDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction focusLastDescendant(element) {\n for (var i = element.childNodes.length - 1; i >= 0; i--) {\n var child = element.childNodes[i];\n\n if (attemptFocus(child) || focusLastDescendant(child)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar ModalFocusTrap = function ModalFocusTrap(_ref) {\n var active = _ref.active,\n children = _ref.children;\n var trapElementRef = React.useRef();\n var focusRef = React.useRef({\n trapFocusInProgress: false,\n lastFocusedElement: null\n });\n React.useEffect(function () {\n if (canUseDOM) {\n var trapFocus = function trapFocus() {\n // We should not trap focus if:\n // - The modal hasn't fully initialized with an HTMLElement ref\n // - Focus is already in the process of being trapped (e.g., we're refocusing)\n // - isTrapActive prop being falsey tells us to do nothing\n if (trapElementRef.current == null || focusRef.current.trapFocusInProgress || !active) {\n return;\n }\n\n try {\n focusRef.current.trapFocusInProgress = true;\n\n if (document.activeElement instanceof Node && !trapElementRef.current.contains(document.activeElement)) {\n // To handle keyboard focusing we can make an assumption here.\n // If you're tabbing through the focusable elements, the previously\n // active element will either be the first or the last.\n // If the previously selected element is the \"first\" descendant\n // and we're leaving it - this means that we should be looping\n // around to the other side of the modal.\n var hasFocused = focusFirstDescendant(trapElementRef.current);\n\n if (focusRef.current.lastFocusedElement === document.activeElement) {\n hasFocused = focusLastDescendant(trapElementRef.current);\n } // If we couldn't focus a new element then we need to focus onto the trap target\n\n\n if (!hasFocused && trapElementRef.current != null && document.activeElement) {\n UIManager.focus(trapElementRef.current);\n }\n }\n } finally {\n focusRef.current.trapFocusInProgress = false;\n }\n\n focusRef.current.lastFocusedElement = document.activeElement;\n }; // Call the trapFocus callback at least once when this modal has been activated.\n\n\n trapFocus();\n document.addEventListener('focus', trapFocus, true);\n return function () {\n return document.removeEventListener('focus', trapFocus, true);\n };\n }\n }, [active]); // To be fully compliant with WCAG we need to refocus element that triggered opening modal\n // after closing it\n\n React.useEffect(function () {\n if (canUseDOM) {\n var lastFocusedElementOutsideTrap = document.activeElement;\n return function () {\n if (lastFocusedElementOutsideTrap && document.contains(lastFocusedElementOutsideTrap)) {\n UIManager.focus(lastFocusedElementOutsideTrap);\n }\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FocusBracket, null), /*#__PURE__*/React.createElement(View, {\n ref: trapElementRef\n }, children), /*#__PURE__*/React.createElement(FocusBracket, null));\n};\n\nexport default ModalFocusTrap;\nvar styles = StyleSheet.create({\n focusBracket: {\n outlineStyle: 'none'\n }\n});","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport ModalPortal from './ModalPortal';\nimport ModalAnimation from './ModalAnimation';\nimport ModalContent from './ModalContent';\nimport ModalFocusTrap from './ModalFocusTrap';\nvar uniqueModalIdentifier = 0;\nvar activeModalStack = [];\nvar activeModalListeners = {};\n\nfunction notifyActiveModalListeners() {\n if (activeModalStack.length === 0) {\n return;\n }\n\n var activeModalId = activeModalStack[activeModalStack.length - 1];\n activeModalStack.forEach(function (modalId) {\n if (modalId in activeModalListeners) {\n activeModalListeners[modalId](modalId === activeModalId);\n }\n });\n}\n\nfunction removeActiveModal(modalId) {\n if (modalId in activeModalListeners) {\n // Before removing this listener we should probably tell it\n // that it's no longer the active modal for sure.\n activeModalListeners[modalId](false);\n delete activeModalListeners[modalId];\n }\n\n var index = activeModalStack.indexOf(modalId);\n\n if (index !== -1) {\n activeModalStack.splice(index, 1);\n notifyActiveModalListeners();\n }\n}\n\nfunction addActiveModal(modalId, listener) {\n removeActiveModal(modalId);\n activeModalStack.push(modalId);\n activeModalListeners[modalId] = listener;\n notifyActiveModalListeners();\n}\n\nvar Modal = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var animationType = props.animationType,\n children = props.children,\n onDismiss = props.onDismiss,\n onRequestClose = props.onRequestClose,\n onShow = props.onShow,\n transparent = props.transparent,\n _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible; // Set a unique model identifier so we can correctly route\n // dismissals and check the layering of modals.\n\n var modalId = React.useMemo(function () {\n return uniqueModalIdentifier++;\n }, []);\n\n var _React$useState = React.useState(false),\n isActive = _React$useState[0],\n setIsActive = _React$useState[1];\n\n var onDismissCallback = React.useCallback(function () {\n removeActiveModal(modalId);\n\n if (onDismiss) {\n onDismiss();\n }\n }, [modalId, onDismiss]);\n var onShowCallback = React.useCallback(function () {\n addActiveModal(modalId, setIsActive);\n\n if (onShow) {\n onShow();\n }\n }, [modalId, onShow]);\n React.useEffect(function () {\n return function () {\n return removeActiveModal(modalId);\n };\n }, [modalId]);\n return /*#__PURE__*/React.createElement(ModalPortal, null, /*#__PURE__*/React.createElement(ModalAnimation, {\n animationType: animationType,\n onDismiss: onDismissCallback,\n onShow: onShowCallback,\n visible: visible\n }, /*#__PURE__*/React.createElement(ModalFocusTrap, {\n active: isActive\n }, /*#__PURE__*/React.createElement(ModalContent, {\n active: isActive,\n onRequestClose: onRequestClose,\n ref: forwardedRef,\n transparent: transparent\n }, children))));\n});\nexport default Modal;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePlatformMethods from '../../modules/usePlatformMethods';\nimport PickerItem from './PickerItem';\nimport StyleSheet from '../StyleSheet';\nvar Picker = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var children = props.children,\n enabled = props.enabled,\n onValueChange = props.onValueChange,\n selectedValue = props.selectedValue,\n style = props.style,\n testID = props.testID,\n itemStyle = props.itemStyle,\n mode = props.mode,\n prompt = props.prompt,\n other = _objectWithoutPropertiesLoose(props, [\"children\", \"enabled\", \"onValueChange\", \"selectedValue\", \"style\", \"testID\", \"itemStyle\", \"mode\", \"prompt\"]);\n\n var hostRef = React.useRef(null);\n\n function handleChange(e) {\n var _e$target = e.target,\n selectedIndex = _e$target.selectedIndex,\n value = _e$target.value;\n\n if (onValueChange) {\n onValueChange(value, selectedIndex);\n }\n } // $FlowFixMe\n\n\n var supportedProps = _objectSpread({\n children: children,\n disabled: enabled === false ? true : undefined,\n onChange: handleChange,\n style: [styles.initial, style],\n testID: testID,\n value: selectedValue\n }, other);\n\n var platformMethodsRef = usePlatformMethods(supportedProps);\n var setRef = useMergeRefs(hostRef, platformMethodsRef, forwardedRef);\n supportedProps.ref = setRef;\n return createElement('select', supportedProps);\n}); // $FlowFixMe\n\nPicker.Item = PickerItem;\nvar styles = StyleSheet.create({\n initial: {\n fontFamily: 'System',\n fontSize: 'inherit',\n margin: 0\n }\n});\nexport default Picker;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createElement from '../createElement';\nexport default function PickerItem(props) {\n var color = props.color,\n label = props.label,\n testID = props.testID,\n value = props.value;\n var style = {\n color: color\n };\n return createElement('option', {\n style: style,\n testID: testID,\n value: value\n }, label);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar ProgressBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$progress = props.progress,\n progress = _props$progress === void 0 ? 0 : _props$progress,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? 'transparent' : _props$trackColor,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"color\", \"indeterminate\", \"progress\", \"trackColor\", \"style\"]);\n\n var percentageProgress = progress * 100;\n var progressRef = React.useRef(null);\n React.useEffect(function () {\n var width = indeterminate ? '25%' : percentageProgress + \"%\";\n\n if (progressRef.current != null) {\n progressRef.current.setNativeProps({\n style: {\n width: width\n }\n });\n }\n }, [indeterminate, percentageProgress, progressRef]);\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: {\n max: 100,\n min: 0,\n now: indeterminate ? null : percentageProgress\n },\n ref: ref,\n style: [styles.track, style, {\n backgroundColor: trackColor\n }]\n }), /*#__PURE__*/React.createElement(View, {\n ref: progressRef,\n style: [styles.progress, indeterminate && styles.animation, {\n backgroundColor: color\n }]\n }));\n});\nProgressBar.displayName = 'ProgressBar';\nvar styles = StyleSheet.create({\n track: {\n forcedColorAdjust: 'none',\n height: 5,\n overflow: 'hidden',\n userSelect: 'none',\n zIndex: 0\n },\n progress: {\n forcedColorAdjust: 'none',\n height: '100%',\n zIndex: -1\n },\n animation: {\n animationDuration: '1s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n translateX: '-100%'\n }]\n },\n '100%': {\n transform: [{\n translateX: '400%'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n }\n});\nexport default ProgressBar;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar emptyFunction = function emptyFunction() {};\n\nfunction StatusBar() {\n return null;\n}\n\nStatusBar.setBackgroundColor = emptyFunction;\nStatusBar.setBarStyle = emptyFunction;\nStatusBar.setHidden = emptyFunction;\nStatusBar.setNetworkActivityIndicatorVisible = emptyFunction;\nStatusBar.setTranslucent = emptyFunction;\nexport default StatusBar;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport createElement from '../createElement';\nimport multiplyStyleLengthValue from '../../modules/multiplyStyleLengthValue';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar emptyObject = {};\nvar thumbDefaultBoxShadow = '0px 1px 3px rgba(0,0,0,0.5)';\nvar thumbFocusedBoxShadow = thumbDefaultBoxShadow + \", 0 0 0 10px rgba(0,0,0,0.1)\";\nvar Switch = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n _props$activeThumbCol = props.activeThumbColor,\n activeThumbColor = _props$activeThumbCol === void 0 ? '#009688' : _props$activeThumbCol,\n _props$activeTrackCol = props.activeTrackColor,\n activeTrackColor = _props$activeTrackCol === void 0 ? '#A3D3CF' : _props$activeTrackCol,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n onValueChange = props.onValueChange,\n _props$style = props.style,\n style = _props$style === void 0 ? emptyObject : _props$style,\n _props$thumbColor = props.thumbColor,\n thumbColor = _props$thumbColor === void 0 ? '#FAFAFA' : _props$thumbColor,\n _props$trackColor = props.trackColor,\n trackColor = _props$trackColor === void 0 ? '#939393' : _props$trackColor,\n _props$value = props.value,\n value = _props$value === void 0 ? false : _props$value,\n other = _objectWithoutPropertiesLoose(props, [\"accessibilityLabel\", \"activeThumbColor\", \"activeTrackColor\", \"disabled\", \"onValueChange\", \"style\", \"thumbColor\", \"trackColor\", \"value\"]);\n\n var thumbRef = React.useRef(null);\n\n function handleChange(event) {\n if (onValueChange != null) {\n onValueChange(event.nativeEvent.target.checked);\n }\n }\n\n function handleFocusState(event) {\n var isFocused = event.nativeEvent.type === 'focus';\n var boxShadow = isFocused ? thumbFocusedBoxShadow : thumbDefaultBoxShadow;\n\n if (thumbRef.current != null) {\n thumbRef.current.style.boxShadow = boxShadow;\n }\n }\n\n var _StyleSheet$flatten = StyleSheet.flatten(style),\n styleHeight = _StyleSheet$flatten.height,\n styleWidth = _StyleSheet$flatten.width;\n\n var height = styleHeight || '20px';\n var minWidth = multiplyStyleLengthValue(height, 2);\n var width = styleWidth > minWidth ? styleWidth : minWidth;\n var trackBorderRadius = multiplyStyleLengthValue(height, 0.5);\n\n var trackCurrentColor = function () {\n if (value === true) {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.true;\n } else {\n return activeTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor;\n }\n }\n }();\n\n var thumbCurrentColor = value ? activeThumbColor : thumbColor;\n var thumbHeight = height;\n var thumbWidth = thumbHeight;\n var rootStyle = [styles.root, style, disabled && styles.cursorDefault, {\n height: height,\n width: width\n }];\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? '#D5D5D5' : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? '#BDBDBD' : thumbCurrentColor,\n height: thumbHeight,\n marginStart: value ? multiplyStyleLengthValue(thumbWidth, -1) : 0,\n width: thumbWidth\n }];\n var nativeControl = createElement('input', {\n accessibilityLabel: accessibilityLabel,\n checked: value,\n disabled: disabled,\n onBlur: handleFocusState,\n onChange: handleChange,\n onFocus: handleFocusState,\n ref: forwardedRef,\n style: [styles.nativeControl, styles.cursorInherit],\n type: 'checkbox',\n role: 'switch'\n });\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n style: rootStyle\n }), /*#__PURE__*/React.createElement(View, {\n style: trackStyle\n }), /*#__PURE__*/React.createElement(View, {\n ref: thumbRef,\n style: thumbStyle\n }), nativeControl);\n});\nSwitch.displayName = 'Switch';\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n userSelect: 'none'\n },\n cursorDefault: {\n cursor: 'default'\n },\n cursorInherit: {\n cursor: 'inherit'\n },\n track: _objectSpread(_objectSpread({\n forcedColorAdjust: 'none'\n }, StyleSheet.absoluteFillObject), {}, {\n height: '70%',\n margin: 'auto',\n transitionDuration: '0.1s',\n width: '100%'\n }),\n thumb: {\n forcedColorAdjust: 'none',\n alignSelf: 'flex-start',\n borderRadius: '100%',\n boxShadow: thumbDefaultBoxShadow,\n start: '0%',\n transform: [{\n translateZ: 0\n }],\n transitionDuration: '0.1s'\n },\n thumbActive: {\n start: '100%'\n },\n nativeControl: _objectSpread(_objectSpread({}, StyleSheet.absoluteFillObject), {}, {\n height: '100%',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '100%'\n })\n});\nexport default Switch;","/* eslint-disable */\n\n/**\n * Copyright 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * From React 16.0.0\n */\nimport invariant from 'fbjs/lib/invariant';\n\nvar twoArgumentPooler = function twoArgumentPooler(a1, a2) {\n var Klass = this;\n\n if (Klass.instancePool.length) {\n var instance = Klass.instancePool.pop();\n Klass.call(instance, a1, a2);\n return instance;\n } else {\n return new Klass(a1, a2);\n }\n};\n\nvar standardReleaser = function standardReleaser(instance) {\n var Klass = this;\n instance.destructor();\n\n if (Klass.instancePool.length < Klass.poolSize) {\n Klass.instancePool.push(instance);\n }\n};\n\nvar DEFAULT_POOL_SIZE = 10;\nvar DEFAULT_POOLER = twoArgumentPooler;\n/**\n * Augments `CopyConstructor` to be a poolable class, augmenting only the class\n * itself (statically) not adding any prototypical fields. Any CopyConstructor\n * you give this may have a `poolSize` property, and will look for a\n * prototypical `destructor` on instances.\n *\n * @param {Function} CopyConstructor Constructor that can be used to reset.\n * @param {Function} pooler Customizable pooler.\n */\n\nvar addPoolingTo = function addPoolingTo(CopyConstructor, pooler) {\n // Casting as any so that flow ignores the actual implementation and trusts\n // it to match the type we declared\n var NewKlass = CopyConstructor;\n NewKlass.instancePool = [];\n NewKlass.getPooled = pooler || DEFAULT_POOLER;\n\n if (!NewKlass.poolSize) {\n NewKlass.poolSize = DEFAULT_POOL_SIZE;\n }\n\n NewKlass.release = standardReleaser;\n return NewKlass;\n};\n\nvar PooledClass = {\n addPoolingTo: addPoolingTo,\n twoArgumentPooler: twoArgumentPooler\n};\nexport default PooledClass;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n/**\n * PooledClass representing the bounding rectangle of a region.\n */\n\nfunction BoundingDimensions(width, height) {\n this.width = width;\n this.height = height;\n}\n\nBoundingDimensions.prototype.destructor = function () {\n this.width = null;\n this.height = null;\n};\n\nBoundingDimensions.getPooledFromElement = function (element) {\n return BoundingDimensions.getPooled(element.offsetWidth, element.offsetHeight);\n};\n\nPooledClass.addPoolingTo(BoundingDimensions, twoArgumentPooler);\nexport default BoundingDimensions;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport PooledClass from '../../vendor/react-native/PooledClass';\nvar twoArgumentPooler = PooledClass.twoArgumentPooler;\n\nfunction Position(left, top) {\n this.left = left;\n this.top = top;\n}\n\nPosition.prototype.destructor = function () {\n this.left = null;\n this.top = null;\n};\n\nPooledClass.addPoolingTo(Position, twoArgumentPooler);\nexport default Position;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport AccessibilityUtil from '../../modules/AccessibilityUtil';\nimport BoundingDimensions from './BoundingDimensions';\nimport findNodeHandle from '../findNodeHandle';\nimport normalizeColor from 'normalize-css-color';\nimport Position from './Position';\nimport React from 'react';\nimport UIManager from '../UIManager';\nimport View from '../View';\n\nvar extractSingleTouch = function extractSingleTouch(nativeEvent) {\n var touches = nativeEvent.touches;\n var changedTouches = nativeEvent.changedTouches;\n var hasTouches = touches && touches.length > 0;\n var hasChangedTouches = changedTouches && changedTouches.length > 0;\n return !hasTouches && hasChangedTouches ? changedTouches[0] : hasTouches ? touches[0] : nativeEvent;\n};\n/**\n * `Touchable`: Taps done right.\n *\n * You hook your `ResponderEventPlugin` events into `Touchable`. `Touchable`\n * will measure time/geometry and tells you when to give feedback to the user.\n *\n * ====================== Touchable Tutorial ===============================\n * The `Touchable` mixin helps you handle the \"press\" interaction. It analyzes\n * the geometry of elements, and observes when another responder (scroll view\n * etc) has stolen the touch lock. It notifies your component when it should\n * give feedback to the user. (bouncing/highlighting/unhighlighting).\n *\n * - When a touch was activated (typically you highlight)\n * - When a touch was deactivated (typically you unhighlight)\n * - When a touch was \"pressed\" - a touch ended while still within the geometry\n * of the element, and no other element (like scroller) has \"stolen\" touch\n * lock (\"responder\") (Typically you bounce the element).\n *\n * A good tap interaction isn't as simple as you might think. There should be a\n * slight delay before showing a highlight when starting a touch. If a\n * subsequent touch move exceeds the boundary of the element, it should\n * unhighlight, but if that same touch is brought back within the boundary, it\n * should rehighlight again. A touch can move in and out of that boundary\n * several times, each time toggling highlighting, but a \"press\" is only\n * triggered if that touch ends while within the element's boundary and no\n * scroller (or anything else) has stolen the lock on touches.\n *\n * To create a new type of component that handles interaction using the\n * `Touchable` mixin, do the following:\n *\n * - Initialize the `Touchable` state.\n *\n * getInitialState: function() {\n * return merge(this.touchableGetInitialState(), yourComponentState);\n * }\n *\n * - Choose the rendered component who's touches should start the interactive\n * sequence. On that rendered node, forward all `Touchable` responder\n * handlers. You can choose any rendered node you like. Choose a node whose\n * hit target you'd like to instigate the interaction sequence:\n *\n * // In render function:\n * return (\n * \n * \n * Even though the hit detection/interactions are triggered by the\n * wrapping (typically larger) node, we usually end up implementing\n * custom logic that highlights this inner one.\n * \n * \n * );\n *\n * - You may set up your own handlers for each of these events, so long as you\n * also invoke the `touchable*` handlers inside of your custom handler.\n *\n * - Implement the handlers on your component class in order to provide\n * feedback to the user. See documentation for each of these class methods\n * that you should implement.\n *\n * touchableHandlePress: function() {\n * this.performBounceAnimation(); // or whatever you want to do.\n * },\n * touchableHandleActivePressIn: function() {\n * this.beginHighlighting(...); // Whatever you like to convey activation\n * },\n * touchableHandleActivePressOut: function() {\n * this.endHighlighting(...); // Whatever you like to convey deactivation\n * },\n *\n * - There are more advanced methods you can implement (see documentation below):\n * touchableGetHighlightDelayMS: function() {\n * return 20;\n * }\n * // In practice, *always* use a predeclared constant (conserve memory).\n * touchableGetPressRectOffset: function() {\n * return {top: 20, left: 20, right: 20, bottom: 100};\n * }\n */\n\n/**\n * Touchable states.\n */\n\n\nvar States = {\n NOT_RESPONDER: 'NOT_RESPONDER',\n // Not the responder\n RESPONDER_INACTIVE_PRESS_IN: 'RESPONDER_INACTIVE_PRESS_IN',\n // Responder, inactive, in the `PressRect`\n RESPONDER_INACTIVE_PRESS_OUT: 'RESPONDER_INACTIVE_PRESS_OUT',\n // Responder, inactive, out of `PressRect`\n RESPONDER_ACTIVE_PRESS_IN: 'RESPONDER_ACTIVE_PRESS_IN',\n // Responder, active, in the `PressRect`\n RESPONDER_ACTIVE_PRESS_OUT: 'RESPONDER_ACTIVE_PRESS_OUT',\n // Responder, active, out of `PressRect`\n RESPONDER_ACTIVE_LONG_PRESS_IN: 'RESPONDER_ACTIVE_LONG_PRESS_IN',\n // Responder, active, in the `PressRect`, after long press threshold\n RESPONDER_ACTIVE_LONG_PRESS_OUT: 'RESPONDER_ACTIVE_LONG_PRESS_OUT',\n // Responder, active, out of `PressRect`, after long press threshold\n ERROR: 'ERROR'\n};\n\n/*\n * Quick lookup map for states that are considered to be \"active\"\n */\nvar baseStatesConditions = {\n NOT_RESPONDER: false,\n RESPONDER_INACTIVE_PRESS_IN: false,\n RESPONDER_INACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_PRESS_IN: false,\n RESPONDER_ACTIVE_PRESS_OUT: false,\n RESPONDER_ACTIVE_LONG_PRESS_IN: false,\n RESPONDER_ACTIVE_LONG_PRESS_OUT: false,\n ERROR: false\n};\n\nvar IsActive = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_PRESS_OUT: true,\n RESPONDER_ACTIVE_PRESS_IN: true\n});\n/**\n * Quick lookup for states that are considered to be \"pressing\" and are\n * therefore eligible to result in a \"selection\" if the press stops.\n */\n\n\nvar IsPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_INACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_PRESS_IN: true,\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n\nvar IsLongPressingIn = _objectSpread(_objectSpread({}, baseStatesConditions), {}, {\n RESPONDER_ACTIVE_LONG_PRESS_IN: true\n});\n/**\n * Inputs to the state machine.\n */\n\n\nvar Signals = {\n DELAY: 'DELAY',\n RESPONDER_GRANT: 'RESPONDER_GRANT',\n RESPONDER_RELEASE: 'RESPONDER_RELEASE',\n RESPONDER_TERMINATED: 'RESPONDER_TERMINATED',\n ENTER_PRESS_RECT: 'ENTER_PRESS_RECT',\n LEAVE_PRESS_RECT: 'LEAVE_PRESS_RECT',\n LONG_PRESS_DETECTED: 'LONG_PRESS_DETECTED'\n};\n\n/**\n * Mapping from States x Signals => States\n */\nvar Transitions = {\n NOT_RESPONDER: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.ERROR,\n RESPONDER_TERMINATED: States.ERROR,\n ENTER_PRESS_RECT: States.ERROR,\n LEAVE_PRESS_RECT: States.ERROR,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_IN: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_IN,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_INACTIVE_PRESS_OUT: {\n DELAY: States.RESPONDER_ACTIVE_PRESS_OUT,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_INACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n RESPONDER_ACTIVE_LONG_PRESS_IN: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.RESPONDER_ACTIVE_LONG_PRESS_IN\n },\n RESPONDER_ACTIVE_LONG_PRESS_OUT: {\n DELAY: States.ERROR,\n RESPONDER_GRANT: States.ERROR,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_IN,\n LEAVE_PRESS_RECT: States.RESPONDER_ACTIVE_LONG_PRESS_OUT,\n LONG_PRESS_DETECTED: States.ERROR\n },\n error: {\n DELAY: States.NOT_RESPONDER,\n RESPONDER_GRANT: States.RESPONDER_INACTIVE_PRESS_IN,\n RESPONDER_RELEASE: States.NOT_RESPONDER,\n RESPONDER_TERMINATED: States.NOT_RESPONDER,\n ENTER_PRESS_RECT: States.NOT_RESPONDER,\n LEAVE_PRESS_RECT: States.NOT_RESPONDER,\n LONG_PRESS_DETECTED: States.NOT_RESPONDER\n }\n}; // ==== Typical Constants for integrating into UI components ====\n// var HIT_EXPAND_PX = 20;\n// var HIT_VERT_OFFSET_PX = 10;\n\nvar HIGHLIGHT_DELAY_MS = 130;\nvar PRESS_EXPAND_PX = 20;\nvar LONG_PRESS_THRESHOLD = 500;\nvar LONG_PRESS_DELAY_MS = LONG_PRESS_THRESHOLD - HIGHLIGHT_DELAY_MS;\nvar LONG_PRESS_ALLOWED_MOVEMENT = 10; // Default amount \"active\" region protrudes beyond box\n\n/**\n * By convention, methods prefixed with underscores are meant to be @private,\n * and not @protected. Mixers shouldn't access them - not even to provide them\n * as callback handlers.\n *\n *\n * ========== Geometry =========\n * `Touchable` only assumes that there exists a `HitRect` node. The `PressRect`\n * is an abstract box that is extended beyond the `HitRect`.\n *\n * +--------------------------+\n * | | - \"Start\" events in `HitRect` cause `HitRect`\n * | +--------------------+ | to become the responder.\n * | | +--------------+ | | - `HitRect` is typically expanded around\n * | | | | | | the `VisualRect`, but shifted downward.\n * | | | VisualRect | | | - After pressing down, after some delay,\n * | | | | | | and before letting up, the Visual React\n * | | +--------------+ | | will become \"active\". This makes it eligible\n * | | HitRect | | for being highlighted (so long as the\n * | +--------------------+ | press remains in the `PressRect`).\n * | PressRect o |\n * +----------------------|---+\n * Out Region |\n * +-----+ This gap between the `HitRect` and\n * `PressRect` allows a touch to move far away\n * from the original hit rect, and remain\n * highlighted, and eligible for a \"Press\".\n * Customize this via\n * `touchableGetPressRectOffset()`.\n *\n *\n *\n * ======= State Machine =======\n *\n * +-------------+ <---+ RESPONDER_RELEASE\n * |NOT_RESPONDER|\n * +-------------+ <---+ RESPONDER_TERMINATED\n * +\n * | RESPONDER_GRANT (HitRect)\n * v\n * +---------------------------+ DELAY +-------------------------+ T + DELAY +------------------------------+\n * |RESPONDER_INACTIVE_PRESS_IN|+-------->|RESPONDER_ACTIVE_PRESS_IN| +------------> |RESPONDER_ACTIVE_LONG_PRESS_IN|\n * +---------------------------+ +-------------------------+ +------------------------------+\n * + ^ + ^ + ^\n * |LEAVE_ |ENTER_ |LEAVE_ |ENTER_ |LEAVE_ |ENTER_\n * |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT |PRESS_RECT\n * | | | | | |\n * v + v + v +\n * +----------------------------+ DELAY +--------------------------+ +-------------------------------+\n * |RESPONDER_INACTIVE_PRESS_OUT|+------->|RESPONDER_ACTIVE_PRESS_OUT| |RESPONDER_ACTIVE_LONG_PRESS_OUT|\n * +----------------------------+ +--------------------------+ +-------------------------------+\n *\n * T + DELAY => LONG_PRESS_DELAY_MS + DELAY\n *\n * Not drawn are the side effects of each transition. The most important side\n * effect is the `touchableHandlePress` abstract method invocation that occurs\n * when a responder is released while in either of the \"Press\" states.\n *\n * The other important side effects are the highlight abstract method\n * invocations (internal callbacks) to be implemented by the mixer.\n *\n *\n * @lends Touchable.prototype\n */\n\nvar TouchableMixin = {\n // HACK (part 1): basic support for touchable interactions using a keyboard\n componentDidMount: function componentDidMount() {\n var _this = this;\n\n this._touchableNode = findNodeHandle(this);\n\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableBlurListener = function (e) {\n if (_this._isTouchableKeyboardActive) {\n if (_this.state.touchable.touchState && _this.state.touchable.touchState !== States.NOT_RESPONDER) {\n _this.touchableHandleResponderTerminate({\n nativeEvent: e\n });\n }\n\n _this._isTouchableKeyboardActive = false;\n }\n };\n\n this._touchableNode.addEventListener('blur', this._touchableBlurListener);\n }\n },\n\n /**\n * Clear all timeouts on unmount\n */\n componentWillUnmount: function componentWillUnmount() {\n if (this._touchableNode && this._touchableNode.addEventListener) {\n this._touchableNode.removeEventListener('blur', this._touchableBlurListener);\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout); // Clear DOM nodes\n\n this.pressInLocation = null;\n this.state.touchable.responderID = null;\n this._touchableNode = null;\n },\n\n /**\n * It's prefer that mixins determine state in this way, having the class\n * explicitly mix the state in the one and only `getInitialState` method.\n *\n * @return {object} State object to be placed inside of\n * `this.state.touchable`.\n */\n touchableGetInitialState: function touchableGetInitialState() {\n return {\n touchable: {\n touchState: undefined,\n responderID: null\n }\n };\n },\n // ==== Hooks to Gesture Responder system ====\n\n /**\n * Must return true if embedded in a native platform scroll view.\n */\n touchableHandleResponderTerminationRequest: function touchableHandleResponderTerminationRequest() {\n return !this.props.rejectResponderTermination;\n },\n\n /**\n * Must return true to start the process of `Touchable`.\n */\n touchableHandleStartShouldSetResponder: function touchableHandleStartShouldSetResponder() {\n return !this.props.disabled;\n },\n\n /**\n * Return true to cancel press on long press.\n */\n touchableLongPressCancelsPress: function touchableLongPressCancelsPress() {\n return true;\n },\n\n /**\n * Place as callback for a DOM element's `onResponderGrant` event.\n * @param {SyntheticEvent} e Synthetic event from event system.\n *\n */\n touchableHandleResponderGrant: function touchableHandleResponderGrant(e) {\n var dispatchID = e.currentTarget; // Since e is used in a callback invoked on another event loop\n // (as in setTimeout etc), we need to call e.persist() on the\n // event to make sure it doesn't get reused in the event object pool.\n\n e.persist();\n this.pressOutDelayTimeout && clearTimeout(this.pressOutDelayTimeout);\n this.pressOutDelayTimeout = null;\n this.state.touchable.touchState = States.NOT_RESPONDER;\n this.state.touchable.responderID = dispatchID;\n\n this._receiveSignal(Signals.RESPONDER_GRANT, e);\n\n var delayMS = this.touchableGetHighlightDelayMS !== undefined ? Math.max(this.touchableGetHighlightDelayMS(), 0) : HIGHLIGHT_DELAY_MS;\n delayMS = isNaN(delayMS) ? HIGHLIGHT_DELAY_MS : delayMS;\n\n if (delayMS !== 0) {\n this.touchableDelayTimeout = setTimeout(this._handleDelay.bind(this, e), delayMS);\n } else {\n this._handleDelay(e);\n }\n\n var longDelayMS = this.touchableGetLongPressDelayMS !== undefined ? Math.max(this.touchableGetLongPressDelayMS(), 10) : LONG_PRESS_DELAY_MS;\n longDelayMS = isNaN(longDelayMS) ? LONG_PRESS_DELAY_MS : longDelayMS;\n this.longPressDelayTimeout = setTimeout(this._handleLongDelay.bind(this, e), longDelayMS + delayMS);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderRelease` event.\n */\n touchableHandleResponderRelease: function touchableHandleResponderRelease(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_RELEASE, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderTerminate` event.\n */\n touchableHandleResponderTerminate: function touchableHandleResponderTerminate(e) {\n this.pressInLocation = null;\n\n this._receiveSignal(Signals.RESPONDER_TERMINATED, e);\n },\n\n /**\n * Place as callback for a DOM element's `onResponderMove` event.\n */\n touchableHandleResponderMove: function touchableHandleResponderMove(e) {\n // Measurement may not have returned yet.\n if (!this.state.touchable.positionOnActivate) {\n return;\n }\n\n var positionOnActivate = this.state.touchable.positionOnActivate;\n var dimensionsOnActivate = this.state.touchable.dimensionsOnActivate;\n var pressRectOffset = this.touchableGetPressRectOffset ? this.touchableGetPressRectOffset() : {\n left: PRESS_EXPAND_PX,\n right: PRESS_EXPAND_PX,\n top: PRESS_EXPAND_PX,\n bottom: PRESS_EXPAND_PX\n };\n var pressExpandLeft = pressRectOffset.left;\n var pressExpandTop = pressRectOffset.top;\n var pressExpandRight = pressRectOffset.right;\n var pressExpandBottom = pressRectOffset.bottom;\n var hitSlop = this.touchableGetHitSlop ? this.touchableGetHitSlop() : null;\n\n if (hitSlop) {\n pressExpandLeft += hitSlop.left || 0;\n pressExpandTop += hitSlop.top || 0;\n pressExpandRight += hitSlop.right || 0;\n pressExpandBottom += hitSlop.bottom || 0;\n }\n\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n\n if (this.pressInLocation) {\n var movedDistance = this._getDistanceBetweenPoints(pageX, pageY, this.pressInLocation.pageX, this.pressInLocation.pageY);\n\n if (movedDistance > LONG_PRESS_ALLOWED_MOVEMENT) {\n this._cancelLongPressDelayTimeout();\n }\n }\n\n var isTouchWithinActive = pageX > positionOnActivate.left - pressExpandLeft && pageY > positionOnActivate.top - pressExpandTop && pageX < positionOnActivate.left + dimensionsOnActivate.width + pressExpandRight && pageY < positionOnActivate.top + dimensionsOnActivate.height + pressExpandBottom;\n\n if (isTouchWithinActive) {\n var prevState = this.state.touchable.touchState;\n\n this._receiveSignal(Signals.ENTER_PRESS_RECT, e);\n\n var curState = this.state.touchable.touchState;\n\n if (curState === States.RESPONDER_INACTIVE_PRESS_IN && prevState !== States.RESPONDER_INACTIVE_PRESS_IN) {\n // fix for t7967420\n this._cancelLongPressDelayTimeout();\n }\n } else {\n this._cancelLongPressDelayTimeout();\n\n this._receiveSignal(Signals.LEAVE_PRESS_RECT, e);\n }\n },\n\n /**\n * Invoked when the item receives focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * currently has the focus. Most platforms only support a single element being\n * focused at a time, in which case there may have been a previously focused\n * element that was blurred just prior to this. This can be overridden when\n * using `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleFocus: function touchableHandleFocus(e) {\n this.props.onFocus && this.props.onFocus(e);\n },\n\n /**\n * Invoked when the item loses focus. Mixers might override this to\n * visually distinguish the `VisualRect` so that the user knows that it\n * no longer has focus. Most platforms only support a single element being\n * focused at a time, in which case the focus may have moved to another.\n * This can be overridden when using\n * `Touchable.Mixin.withoutDefaultFocusAndBlur`.\n */\n touchableHandleBlur: function touchableHandleBlur(e) {\n this.props.onBlur && this.props.onBlur(e);\n },\n // ==== Abstract Application Callbacks ====\n\n /**\n * Invoked when the item should be highlighted. Mixers should implement this\n * to visually distinguish the `VisualRect` so that the user knows that\n * releasing a touch will result in a \"selection\" (analog to click).\n *\n * @abstract\n * touchableHandleActivePressIn: function,\n */\n\n /**\n * Invoked when the item is \"active\" (in that it is still eligible to become\n * a \"select\") but the touch has left the `PressRect`. Usually the mixer will\n * want to unhighlight the `VisualRect`. If the user (while pressing) moves\n * back into the `PressRect` `touchableHandleActivePressIn` will be invoked\n * again and the mixer should probably highlight the `VisualRect` again. This\n * event will not fire on an `touchEnd/mouseUp` event, only move events while\n * the user is depressing the mouse/touch.\n *\n * @abstract\n * touchableHandleActivePressOut: function\n */\n\n /**\n * Invoked when the item is \"selected\" - meaning the interaction ended by\n * letting up while the item was either in the state\n * `RESPONDER_ACTIVE_PRESS_IN` or `RESPONDER_INACTIVE_PRESS_IN`.\n *\n * @abstract\n * touchableHandlePress: function\n */\n\n /**\n * Invoked when the item is long pressed - meaning the interaction ended by\n * letting up while the item was in `RESPONDER_ACTIVE_LONG_PRESS_IN`. If\n * `touchableHandleLongPress` is *not* provided, `touchableHandlePress` will\n * be called as it normally is. If `touchableHandleLongPress` is provided, by\n * default any `touchableHandlePress` callback will not be invoked. To\n * override this default behavior, override `touchableLongPressCancelsPress`\n * to return false. As a result, `touchableHandlePress` will be called when\n * lifting up, even if `touchableHandleLongPress` has also been called.\n *\n * @abstract\n * touchableHandleLongPress: function\n */\n\n /**\n * Returns the number of millis to wait before triggering a highlight.\n *\n * @abstract\n * touchableGetHighlightDelayMS: function\n */\n\n /**\n * Returns the amount to extend the `HitRect` into the `PressRect`. Positive\n * numbers mean the size expands outwards.\n *\n * @abstract\n * touchableGetPressRectOffset: function\n */\n // ==== Internal Logic ====\n\n /**\n * Measures the `HitRect` node on activation. The Bounding rectangle is with\n * respect to viewport - not page, so adding the `pageXOffset/pageYOffset`\n * should result in points that are in the same coordinate system as an\n * event's `globalX/globalY` data values.\n *\n * - Consider caching this for the lifetime of the component, or possibly\n * being able to share this cache between any `ScrollMap` view.\n *\n * @sideeffects\n * @private\n */\n _remeasureMetricsOnActivation: function _remeasureMetricsOnActivation() {\n var tag = this.state.touchable.responderID;\n\n if (tag == null) {\n return;\n }\n\n UIManager.measure(tag, this._handleQueryLayout);\n },\n _handleQueryLayout: function _handleQueryLayout(l, t, w, h, globalX, globalY) {\n //don't do anything UIManager failed to measure node\n if (!l && !t && !w && !h && !globalX && !globalY) {\n return;\n }\n\n this.state.touchable.positionOnActivate && Position.release(this.state.touchable.positionOnActivate);\n this.state.touchable.dimensionsOnActivate && // $FlowFixMe\n BoundingDimensions.release(this.state.touchable.dimensionsOnActivate);\n this.state.touchable.positionOnActivate = Position.getPooled(globalX, globalY); // $FlowFixMe\n\n this.state.touchable.dimensionsOnActivate = BoundingDimensions.getPooled(w, h);\n },\n _handleDelay: function _handleDelay(e) {\n this.touchableDelayTimeout = null;\n\n this._receiveSignal(Signals.DELAY, e);\n },\n _handleLongDelay: function _handleLongDelay(e) {\n this.longPressDelayTimeout = null;\n var curState = this.state.touchable.touchState;\n\n if (curState !== States.RESPONDER_ACTIVE_PRESS_IN && curState !== States.RESPONDER_ACTIVE_LONG_PRESS_IN) {\n console.error('Attempted to transition from state `' + curState + '` to `' + States.RESPONDER_ACTIVE_LONG_PRESS_IN + '`, which is not supported. This is ' + 'most likely due to `Touchable.longPressDelayTimeout` not being cancelled.');\n } else {\n this._receiveSignal(Signals.LONG_PRESS_DETECTED, e);\n }\n },\n\n /**\n * Receives a state machine signal, performs side effects of the transition\n * and stores the new state. Validates the transition as well.\n *\n * @param {Signals} signal State machine signal.\n * @throws Error if invalid state transition or unrecognized signal.\n * @sideeffects\n */\n _receiveSignal: function _receiveSignal(signal, e) {\n var responderID = this.state.touchable.responderID;\n var curState = this.state.touchable.touchState;\n var nextState = Transitions[curState] && Transitions[curState][signal];\n\n if (!responderID && signal === Signals.RESPONDER_RELEASE) {\n return;\n }\n\n if (!nextState) {\n throw new Error('Unrecognized signal `' + signal + '` or state `' + curState + '` for Touchable responder `' + responderID + '`');\n }\n\n if (nextState === States.ERROR) {\n throw new Error('Touchable cannot transition from `' + curState + '` to `' + signal + '` for responder `' + responderID + '`');\n }\n\n if (curState !== nextState) {\n this._performSideEffectsForTransition(curState, nextState, signal, e);\n\n this.state.touchable.touchState = nextState;\n }\n },\n _cancelLongPressDelayTimeout: function _cancelLongPressDelayTimeout() {\n this.longPressDelayTimeout && clearTimeout(this.longPressDelayTimeout);\n this.longPressDelayTimeout = null;\n },\n _isHighlight: function _isHighlight(state) {\n return state === States.RESPONDER_ACTIVE_PRESS_IN || state === States.RESPONDER_ACTIVE_LONG_PRESS_IN;\n },\n _savePressInLocation: function _savePressInLocation(e) {\n var touch = extractSingleTouch(e.nativeEvent);\n var pageX = touch && touch.pageX;\n var pageY = touch && touch.pageY;\n var locationX = touch && touch.locationX;\n var locationY = touch && touch.locationY;\n this.pressInLocation = {\n pageX: pageX,\n pageY: pageY,\n locationX: locationX,\n locationY: locationY\n };\n },\n _getDistanceBetweenPoints: function _getDistanceBetweenPoints(aX, aY, bX, bY) {\n var deltaX = aX - bX;\n var deltaY = aY - bY;\n return Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n },\n\n /**\n * Will perform a transition between touchable states, and identify any\n * highlighting or unhighlighting that must be performed for this particular\n * transition.\n *\n * @param {States} curState Current Touchable state.\n * @param {States} nextState Next Touchable state.\n * @param {Signal} signal Signal that triggered the transition.\n * @param {Event} e Native event.\n * @sideeffects\n */\n _performSideEffectsForTransition: function _performSideEffectsForTransition(curState, nextState, signal, e) {\n var curIsHighlight = this._isHighlight(curState);\n\n var newIsHighlight = this._isHighlight(nextState);\n\n var isFinalSignal = signal === Signals.RESPONDER_TERMINATED || signal === Signals.RESPONDER_RELEASE;\n\n if (isFinalSignal) {\n this._cancelLongPressDelayTimeout();\n }\n\n var isInitialTransition = curState === States.NOT_RESPONDER && nextState === States.RESPONDER_INACTIVE_PRESS_IN;\n var isActiveTransition = !IsActive[curState] && IsActive[nextState];\n\n if (isInitialTransition || isActiveTransition) {\n this._remeasureMetricsOnActivation();\n }\n\n if (IsPressingIn[curState] && signal === Signals.LONG_PRESS_DETECTED) {\n this.touchableHandleLongPress && this.touchableHandleLongPress(e);\n }\n\n if (newIsHighlight && !curIsHighlight) {\n this._startHighlight(e);\n } else if (!newIsHighlight && curIsHighlight) {\n this._endHighlight(e);\n }\n\n if (IsPressingIn[curState] && signal === Signals.RESPONDER_RELEASE) {\n var hasLongPressHandler = !!this.props.onLongPress;\n var pressIsLongButStillCallOnPress = IsLongPressingIn[curState] && ( // We *are* long pressing.. // But either has no long handler\n !hasLongPressHandler || !this.touchableLongPressCancelsPress()); // or we're told to ignore it.\n\n var shouldInvokePress = !IsLongPressingIn[curState] || pressIsLongButStillCallOnPress;\n\n if (shouldInvokePress && this.touchableHandlePress) {\n if (!newIsHighlight && !curIsHighlight) {\n // we never highlighted because of delay, but we should highlight now\n this._startHighlight(e);\n\n this._endHighlight(e);\n }\n\n this.touchableHandlePress(e);\n }\n }\n\n this.touchableDelayTimeout && clearTimeout(this.touchableDelayTimeout);\n this.touchableDelayTimeout = null;\n },\n _playTouchSound: function _playTouchSound() {\n UIManager.playTouchSound();\n },\n _startHighlight: function _startHighlight(e) {\n this._savePressInLocation(e);\n\n this.touchableHandleActivePressIn && this.touchableHandleActivePressIn(e);\n },\n _endHighlight: function _endHighlight(e) {\n var _this2 = this;\n\n if (this.touchableHandleActivePressOut) {\n if (this.touchableGetPressOutDelayMS && this.touchableGetPressOutDelayMS()) {\n this.pressOutDelayTimeout = setTimeout(function () {\n _this2.touchableHandleActivePressOut(e);\n }, this.touchableGetPressOutDelayMS());\n } else {\n this.touchableHandleActivePressOut(e);\n }\n }\n },\n // HACK (part 2): basic support for touchable interactions using a keyboard (including\n // delays and longPress)\n touchableHandleKeyEvent: function touchableHandleKeyEvent(e) {\n var type = e.type,\n key = e.key;\n\n if (key === 'Enter' || key === ' ') {\n if (type === 'keydown') {\n if (!this._isTouchableKeyboardActive) {\n if (!this.state.touchable.touchState || this.state.touchable.touchState === States.NOT_RESPONDER) {\n this.touchableHandleResponderGrant(e);\n this._isTouchableKeyboardActive = true;\n }\n }\n } else if (type === 'keyup') {\n if (this._isTouchableKeyboardActive) {\n if (this.state.touchable.touchState && this.state.touchable.touchState !== States.NOT_RESPONDER) {\n this.touchableHandleResponderRelease(e);\n this._isTouchableKeyboardActive = false;\n }\n }\n }\n\n e.stopPropagation(); // prevent the default behaviour unless the Touchable functions as a link\n // and Enter is pressed\n\n if (!(key === 'Enter' && AccessibilityUtil.propsToAriaRole(this.props) === 'link')) {\n e.preventDefault();\n }\n }\n },\n withoutDefaultFocusAndBlur: {}\n};\n/**\n * Provide an optional version of the mixin where `touchableHandleFocus` and\n * `touchableHandleBlur` can be overridden. This allows appropriate defaults to\n * be set on TV platforms, without breaking existing implementations of\n * `Touchable`.\n */\n\nvar touchableHandleFocus = TouchableMixin.touchableHandleFocus,\n touchableHandleBlur = TouchableMixin.touchableHandleBlur,\n TouchableMixinWithoutDefaultFocusAndBlur = _objectWithoutPropertiesLoose(TouchableMixin, [\"touchableHandleFocus\", \"touchableHandleBlur\"]);\n\nTouchableMixin.withoutDefaultFocusAndBlur = TouchableMixinWithoutDefaultFocusAndBlur;\nvar Touchable = {\n Mixin: TouchableMixin,\n TOUCH_TARGET_DEBUG: false,\n // Highlights all touchable targets. Toggle with Inspector.\n\n /**\n * Renders a debugging overlay to visualize touch target with hitSlop (might not work on Android).\n */\n renderDebugView: function renderDebugView(_ref) {\n var color = _ref.color,\n hitSlop = _ref.hitSlop;\n\n if (!Touchable.TOUCH_TARGET_DEBUG) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw Error('Touchable.TOUCH_TARGET_DEBUG should not be enabled in prod!');\n }\n\n var debugHitSlopStyle = {};\n hitSlop = hitSlop || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n for (var key in hitSlop) {\n debugHitSlopStyle[key] = -hitSlop[key];\n }\n\n var normalizedColor = normalizeColor(color);\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n var hexColor = '#' + ('00000000' + normalizedColor.toString(16)).substr(-8);\n return /*#__PURE__*/React.createElement(View, {\n pointerEvents: \"none\",\n style: _objectSpread({\n position: 'absolute',\n borderColor: hexColor.slice(0, -2) + '55',\n // More opaque\n borderWidth: 1,\n borderStyle: 'dashed',\n backgroundColor: hexColor.slice(0, -2) + '0F'\n }, debugHitSlopStyle)\n });\n }\n};\nexport default Touchable;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { useCallback, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\nfunction createExtraStyles(activeOpacity, underlayColor) {\n return {\n child: {\n opacity: activeOpacity !== null && activeOpacity !== void 0 ? activeOpacity : 0.85\n },\n underlay: {\n backgroundColor: underlayColor === undefined ? 'black' : underlayColor\n }\n };\n}\n\nfunction hasPressHandler(props) {\n return props.onPress != null || props.onPressIn != null || props.onPressOut != null || props.onLongPress != null;\n}\n/**\n * A wrapper for making views respond properly to touches.\n * On press down, the opacity of the wrapped view is decreased, which allows\n * the underlay color to show through, darkening or tinting the view.\n *\n * The underlay comes from wrapping the child in a new View, which can affect\n * layout, and sometimes cause unwanted visual artifacts if not used correctly,\n * for example if the backgroundColor of the wrapped view isn't explicitly set\n * to an opaque color.\n *\n * TouchableHighlight must have one child (not zero or more than one).\n * If you wish to have several child components, wrap them in a View.\n */\n\n\nfunction TouchableHighlight(props, forwardedRef) {\n var activeOpacity = props.activeOpacity,\n children = props.children,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onHideUnderlay = props.onHideUnderlay,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n onShowUnderlay = props.onShowUnderlay,\n rejectResponderTermination = props.rejectResponderTermination,\n style = props.style,\n testOnly_pressed = props.testOnly_pressed,\n underlayColor = props.underlayColor,\n rest = _objectWithoutPropertiesLoose(props, [\"activeOpacity\", \"children\", \"delayPressIn\", \"delayPressOut\", \"delayLongPress\", \"disabled\", \"focusable\", \"onHideUnderlay\", \"onLongPress\", \"onPress\", \"onPressIn\", \"onPressOut\", \"onShowUnderlay\", \"rejectResponderTermination\", \"style\", \"testOnly_pressed\", \"underlayColor\"]);\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n\n var _useState = useState(testOnly_pressed === true ? createExtraStyles(activeOpacity, underlayColor) : null),\n extraStyles = _useState[0],\n setExtraStyles = _useState[1];\n\n var showUnderlay = useCallback(function () {\n if (!hasPressHandler(props)) {\n return;\n }\n\n setExtraStyles(createExtraStyles(activeOpacity, underlayColor));\n\n if (onShowUnderlay != null) {\n onShowUnderlay();\n }\n }, [activeOpacity, onShowUnderlay, props, underlayColor]);\n var hideUnderlay = useCallback(function () {\n if (testOnly_pressed === true) {\n return;\n }\n\n if (hasPressHandler(props)) {\n setExtraStyles(null);\n\n if (onHideUnderlay != null) {\n onHideUnderlay();\n }\n }\n }, [onHideUnderlay, props, testOnly_pressed]);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: function onPressStart(event) {\n showUnderlay();\n\n if (onPressIn != null) {\n onPressIn(event);\n }\n },\n onPressEnd: function onPressEnd(event) {\n hideUnderlay();\n\n if (onPressOut != null) {\n onPressOut(event);\n }\n }\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination, showUnderlay, hideUnderlay]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var child = React.Children.only(children);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n ref: setRef,\n style: [styles.root, style, !disabled && styles.actionable, extraStyles && extraStyles.underlay]\n }), /*#__PURE__*/React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, extraStyles && extraStyles.child)\n }));\n}\n\nvar styles = StyleSheet.create({\n root: {\n userSelect: 'none'\n },\n actionable: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedTouchableHighlight = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableHighlight));\nMemoedTouchableHighlight.displayName = 'TouchableHighlight';\nexport default MemoedTouchableHighlight;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../../exports/View';\nimport React from 'react';\n/**\n * Common implementation for a simple stubbed view.\n */\n\nvar UnimplementedView = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(UnimplementedView, _React$Component);\n\n function UnimplementedView() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = UnimplementedView.prototype;\n\n _proto.setNativeProps = function setNativeProps() {// Do nothing.\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(View, {\n style: [unimplementedViewStyles, this.props.style]\n }, this.props.children);\n };\n\n return UnimplementedView;\n}(React.Component);\n\nvar unimplementedViewStyles = process.env.NODE_ENV !== 'production' ? {\n alignSelf: 'flex-start',\n borderColor: 'red',\n borderWidth: 1\n} : {};\nexport default UnimplementedView;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport * as React from 'react';\nimport { useMemo, useRef } from 'react';\nimport pick from '../../modules/pick';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport usePressEvents from '../../modules/usePressEvents';\nvar forwardPropsList = {\n accessibilityDisabled: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityState: true,\n accessibilityValue: true,\n children: true,\n disabled: true,\n focusable: true,\n nativeID: true,\n onBlur: true,\n onFocus: true,\n onLayout: true,\n testID: true\n};\n\nvar pickProps = function pickProps(props) {\n return pick(props, forwardPropsList);\n};\n\nfunction TouchableWithoutFeedback(props, forwardedRef) {\n var delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n delayLongPress = props.delayLongPress,\n disabled = props.disabled,\n focusable = props.focusable,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n rejectResponderTermination = props.rejectResponderTermination;\n var hostRef = useRef(null);\n var pressConfig = useMemo(function () {\n return {\n cancelable: !rejectResponderTermination,\n disabled: disabled,\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressStart: onPressIn,\n onPressEnd: onPressOut\n };\n }, [disabled, delayPressIn, delayPressOut, delayLongPress, onLongPress, onPress, onPressIn, onPressOut, rejectResponderTermination]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var element = React.Children.only(props.children);\n var children = [element.props.children];\n var supportedProps = pickProps(props);\n supportedProps.accessibilityDisabled = disabled;\n supportedProps.focusable = !disabled && focusable !== false;\n supportedProps.ref = useMergeRefs(forwardedRef, hostRef, element.ref);\n var elementProps = Object.assign(supportedProps, pressEventHandlers);\n return /*#__PURE__*/React.cloneElement.apply(React, [element, elementProps].concat(children));\n}\n\nvar MemoedTouchableWithoutFeedback = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(TouchableWithoutFeedback));\nMemoedTouchableWithoutFeedback.displayName = 'TouchableWithoutFeedback';\nexport default MemoedTouchableWithoutFeedback;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport React from 'react';\nimport UnimplementedView from '../../modules/UnimplementedView';\n\nfunction YellowBox(props) {\n return /*#__PURE__*/React.createElement(UnimplementedView, props);\n}\n\nYellowBox.ignoreWarnings = function () {};\n\nexport default YellowBox;","/**\n * Copyright (c) 2016-present, Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar LogBox = {\n ignoreLogs: function ignoreLogs() {},\n ignoreAllLogs: function ignoreAllLogs() {},\n uninstall: function uninstall() {},\n install: function install() {}\n};\nexport default LogBox;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","import UnimplementedView from '../../modules/UnimplementedView';\nexport default UnimplementedView;","var promiseMock = function promiseMock() {\n return Promise.resolve(false);\n};\n\nexport default {\n PERMISSIONS: {},\n RESULTS: {},\n checkPermission: promiseMock,\n check: promiseMock,\n requestPermission: promiseMock,\n request: promiseMock,\n requestMultiple: promiseMock\n};","export default {};","export default {};","export default {};","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport Appearance from '../Appearance';\nexport default function useColorScheme() {\n var _React$useState = React.useState(Appearance.getColorScheme()),\n colorScheme = _React$useState[0],\n setColorScheme = _React$useState[1];\n\n React.useEffect(function () {\n function listener(appearance) {\n setColorScheme(appearance.colorScheme);\n }\n\n Appearance.addChangeListener(listener);\n return function () {\n return Appearance.removeChangeListener(listener);\n };\n });\n return colorScheme;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nimport Dimensions from '../Dimensions';\nimport { useEffect, useState } from 'react';\nexport default function useWindowDimensions() {\n var _useState = useState(function () {\n return Dimensions.get('window');\n }),\n dims = _useState[0],\n setDims = _useState[1];\n\n useEffect(function () {\n function handleChange(_ref) {\n var window = _ref.window;\n\n if (window != null) {\n setDims(window);\n }\n }\n\n Dimensions.addEventListener('change', handleChange); // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n\n setDims(Dimensions.get('window'));\n return function () {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, []);\n return dims;\n}","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from 'normalize-css-color';\n\nvar processColor = function processColor(color) {\n if (color === undefined || color === null) {\n return color;\n } // convert number and hex\n\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\nvar accessibilityValue = {\n max: 1,\n min: 0\n};\n\nvar createSvgCircle = function createSvgCircle(style) {\n return /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"16\",\n cy: \"16\",\n fill: \"none\",\n r: \"14\",\n strokeWidth: \"4\",\n style: style\n });\n};\n\nvar ActivityIndicator = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var _props$animating = props.animating,\n animating = _props$animating === void 0 ? true : _props$animating,\n _props$color = props.color,\n color = _props$color === void 0 ? '#1976D2' : _props$color,\n _props$hidesWhenStopp = props.hidesWhenStopped,\n hidesWhenStopped = _props$hidesWhenStopp === void 0 ? true : _props$hidesWhenStopp,\n _props$size = props.size,\n size = _props$size === void 0 ? 'small' : _props$size,\n style = props.style,\n other = _objectWithoutPropertiesLoose(props, [\"animating\", \"color\", \"hidesWhenStopped\", \"size\", \"style\"]);\n\n var svg = /*#__PURE__*/React.createElement(\"svg\", {\n height: \"100%\",\n viewBox: \"0 0 32 32\",\n width: \"100%\"\n }, createSvgCircle({\n stroke: color,\n opacity: 0.2\n }), createSvgCircle({\n stroke: color,\n strokeDasharray: 80,\n strokeDashoffset: 60\n }));\n return /*#__PURE__*/React.createElement(View, _extends({}, other, {\n accessibilityRole: \"progressbar\",\n accessibilityValue: accessibilityValue,\n ref: forwardedRef,\n style: [styles.container, style]\n }), /*#__PURE__*/React.createElement(View, {\n children: svg,\n style: [typeof size === 'number' ? {\n height: size,\n width: size\n } : indicatorSizes[size], styles.animation, !animating && styles.animationPause, !animating && hidesWhenStopped && styles.hidesWhenStopped]\n }));\n});\nActivityIndicator.displayName = 'ActivityIndicator';\nvar styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center'\n },\n hidesWhenStopped: {\n visibility: 'hidden'\n },\n animation: {\n animationDuration: '0.75s',\n animationKeyframes: [{\n '0%': {\n transform: [{\n rotate: '0deg'\n }]\n },\n '100%': {\n transform: [{\n rotate: '360deg'\n }]\n }\n }],\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite'\n },\n animationPause: {\n animationPlayState: 'paused'\n }\n});\nvar indicatorSizes = StyleSheet.create({\n small: {\n width: 20,\n height: 20\n },\n large: {\n width: 36,\n height: 36\n }\n});\nexport default ActivityIndicator;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { hydrate, render } from 'react-dom';\nexport { hydrate };\nexport default render;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport View from '../View';\nimport React from 'react';\n\nfunction RefreshControl(props) {\n var colors = props.colors,\n enabled = props.enabled,\n onRefresh = props.onRefresh,\n progressBackgroundColor = props.progressBackgroundColor,\n progressViewOffset = props.progressViewOffset,\n refreshing = props.refreshing,\n size = props.size,\n tintColor = props.tintColor,\n title = props.title,\n titleColor = props.titleColor,\n rest = _objectWithoutPropertiesLoose(props, [\"colors\", \"enabled\", \"onRefresh\", \"progressBackgroundColor\", \"progressViewOffset\", \"refreshing\", \"size\", \"tintColor\", \"title\", \"titleColor\"]);\n\n return /*#__PURE__*/React.createElement(View, rest);\n}\n\nexport default RefreshControl;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport Dimensions from '../Dimensions';\n/**\n * PixelRatio gives access to the device pixel density.\n */\n\nvar PixelRatio = /*#__PURE__*/function () {\n function PixelRatio() {}\n\n /**\n * Returns the device pixel density.\n */\n PixelRatio.get = function get() {\n return Dimensions.get('window').scale;\n }\n /**\n * No equivalent for Web\n */\n ;\n\n PixelRatio.getFontScale = function getFontScale() {\n return Dimensions.get('window').fontScale || PixelRatio.get();\n }\n /**\n * Converts a layout size (dp) to pixel size (px).\n * Guaranteed to return an integer number.\n */\n ;\n\n PixelRatio.getPixelSizeForLayoutSize = function getPixelSizeForLayoutSize(layoutSize) {\n return Math.round(layoutSize * PixelRatio.get());\n }\n /**\n * Rounds a layout size (dp) to the nearest layout size that corresponds to\n * an integer number of pixels. For example, on a device with a PixelRatio\n * of 3, `PixelRatio.roundToNearestPixel(8.4) = 8.33`, which corresponds to\n * exactly (8.33 * 3) = 25 pixels.\n */\n ;\n\n PixelRatio.roundToNearestPixel = function roundToNearestPixel(layoutSize) {\n var ratio = PixelRatio.get();\n return Math.round(layoutSize * ratio) / ratio;\n };\n\n return PixelRatio;\n}();\n\nexport { PixelRatio as default };","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction emptyFunction() {}\n\nvar BackHandler = {\n exitApp: emptyFunction,\n addEventListener: function addEventListener() {\n return {\n remove: emptyFunction\n };\n },\n removeEventListener: emptyFunction\n};\nexport default BackHandler;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport NativeEventEmitter from '../../vendor/react-native/NativeEventEmitter';\nexport default NativeEventEmitter;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nvar emptyFunction = function emptyFunction() {};\n\nfunction supportsPassiveEvents() {\n var supported = false; // Check if browser supports event with passive listeners\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\n if (canUseDOM) {\n try {\n var options = {};\n Object.defineProperty(options, 'passive', {\n get: function get() {\n supported = true;\n return false;\n }\n });\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {}\n }\n\n return supported;\n}\n\nvar canUsePassiveEvents = supportsPassiveEvents();\n\nfunction getOptions(options) {\n if (options == null) {\n return false;\n }\n\n return canUsePassiveEvents ? options : Boolean(options.capture);\n}\n/**\n * Shim generic API compatibility with ReactDOM's synthetic events, without needing the\n * large amount of code ReactDOM uses to do this. Ideally we wouldn't use a synthetic\n * event wrapper at all.\n */\n\n\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\n\nfunction normalizeEvent(event) {\n event.nativeEvent = event;\n event.persist = emptyFunction;\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n return event;\n}\n/**\n *\n */\n\n\nexport default function createEventHandle(type, options) {\n var opts = getOptions(options);\n return function (target, listener) {\n if (target == null || typeof target.addEventListener !== 'function') {\n throw new Error('createEventHandle: called on an invalid target.');\n }\n\n var element = target;\n\n if (listener != null) {\n var compatListener = function compatListener(e) {\n return listener(normalizeEvent(e));\n };\n\n element.addEventListener(type, compatListener, opts);\n return function removeListener() {\n if (element != null) {\n element.removeEventListener(type, compatListener, opts);\n }\n };\n } else {\n return emptyFunction;\n }\n };\n}","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createEventHandle from '../createEventHandle';\n\nvar supportsPointerEvent = function supportsPointerEvent() {\n return !!(typeof window !== 'undefined' && window.PointerEvent != null);\n};\n\nvar activeModality = 'keyboard';\nvar modality = 'keyboard';\nvar previousModality;\nvar previousActiveModality;\nvar isEmulatingMouseEvents = false;\nvar listeners = new Set();\nvar KEYBOARD = 'keyboard';\nvar MOUSE = 'mouse';\nvar TOUCH = 'touch';\nvar BLUR = 'blur';\nvar CONTEXTMENU = 'contextmenu';\nvar FOCUS = 'focus';\nvar KEYDOWN = 'keydown';\nvar MOUSEDOWN = 'mousedown';\nvar MOUSEMOVE = 'mousemove';\nvar MOUSEUP = 'mouseup';\nvar POINTERDOWN = 'pointerdown';\nvar POINTERMOVE = 'pointermove';\nvar SCROLL = 'scroll';\nvar SELECTIONCHANGE = 'selectionchange';\nvar TOUCHCANCEL = 'touchcancel';\nvar TOUCHMOVE = 'touchmove';\nvar TOUCHSTART = 'touchstart';\nvar VISIBILITYCHANGE = 'visibilitychange';\nvar bubbleOptions = {\n passive: true\n};\nvar captureOptions = {\n capture: true,\n passive: true\n}; // Window events\n\nvar addBlurListener = createEventHandle(BLUR, bubbleOptions);\nvar addFocusListener = createEventHandle(FOCUS, bubbleOptions); // Must be capture phase because 'stopPropagation' might prevent these\n// events bubbling to the document.\n\nvar addVisibilityChangeListener = createEventHandle(VISIBILITYCHANGE, captureOptions);\nvar addKeyDownListener = createEventHandle(KEYDOWN, captureOptions);\nvar addPointerDownListener = createEventHandle(POINTERDOWN, captureOptions);\nvar addPointerMoveListener = createEventHandle(POINTERMOVE, captureOptions); // Fallback events\n\nvar addContextMenuListener = createEventHandle(CONTEXTMENU, captureOptions);\nvar addMouseDownListener = createEventHandle(MOUSEDOWN, captureOptions);\nvar addMouseMoveListener = createEventHandle(MOUSEMOVE, captureOptions);\nvar addMouseUpListener = createEventHandle(MOUSEUP, captureOptions);\nvar addScrollListener = createEventHandle(SCROLL, captureOptions);\nvar addSelectiomChangeListener = createEventHandle(SELECTIONCHANGE, captureOptions);\nvar addTouchCancelListener = createEventHandle(TOUCHCANCEL, captureOptions);\nvar addTouchMoveListener = createEventHandle(TOUCHMOVE, captureOptions);\nvar addTouchStartListener = createEventHandle(TOUCHSTART, captureOptions);\n\nfunction restoreModality() {\n if (previousModality != null || previousActiveModality != null) {\n if (previousModality != null) {\n modality = previousModality;\n previousModality = null;\n }\n\n if (previousActiveModality != null) {\n activeModality = previousActiveModality;\n previousActiveModality = null;\n }\n\n callListeners();\n }\n}\n\nfunction onBlurWindow() {\n previousModality = modality;\n previousActiveModality = activeModality;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n callListeners(); // for fallback events\n\n isEmulatingMouseEvents = false;\n}\n\nfunction onFocusWindow() {\n restoreModality();\n}\n\nfunction onKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n if (modality !== KEYBOARD) {\n modality = KEYBOARD;\n activeModality = KEYBOARD;\n callListeners();\n }\n}\n\nfunction onVisibilityChange() {\n if (document.visibilityState !== 'hidden') {\n restoreModality();\n }\n}\n\nfunction onPointerish(event) {\n var eventType = event.type;\n\n if (supportsPointerEvent()) {\n if (eventType === POINTERDOWN) {\n if (activeModality !== event.pointerType) {\n modality = event.pointerType;\n activeModality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n\n if (eventType === POINTERMOVE) {\n if (modality !== event.pointerType) {\n modality = event.pointerType;\n callListeners();\n }\n\n return;\n }\n } // Fallback for non-PointerEvent environment\n else {\n if (!isEmulatingMouseEvents) {\n if (eventType === MOUSEDOWN) {\n if (activeModality !== MOUSE) {\n modality = MOUSE;\n activeModality = MOUSE;\n callListeners();\n }\n }\n\n if (eventType === MOUSEMOVE) {\n if (modality !== MOUSE) {\n modality = MOUSE;\n callListeners();\n }\n }\n } // Flag when browser may produce emulated events\n\n\n if (eventType === TOUCHSTART) {\n isEmulatingMouseEvents = true;\n\n if (event.touches && event.touches.length > 1) {\n isEmulatingMouseEvents = false;\n }\n\n if (activeModality !== TOUCH) {\n modality = TOUCH;\n activeModality = TOUCH;\n callListeners();\n }\n\n return;\n } // Remove flag after emulated events are finished or cancelled, and if an\n // event occurs that cuts short a touch event sequence.\n\n\n if (eventType === CONTEXTMENU || eventType === MOUSEUP || eventType === SELECTIONCHANGE || eventType === SCROLL || eventType === TOUCHCANCEL || eventType === TOUCHMOVE) {\n isEmulatingMouseEvents = false;\n }\n }\n}\n\nif (canUseDOM) {\n addBlurListener(window, onBlurWindow);\n addFocusListener(window, onFocusWindow);\n addKeyDownListener(document, onKeyDown);\n addPointerDownListener(document, onPointerish);\n addPointerMoveListener(document, onPointerish);\n addVisibilityChangeListener(document, onVisibilityChange); // fallbacks\n\n addContextMenuListener(document, onPointerish);\n addMouseDownListener(document, onPointerish);\n addMouseMoveListener(document, onPointerish);\n addMouseUpListener(document, onPointerish);\n addTouchCancelListener(document, onPointerish);\n addTouchMoveListener(document, onPointerish);\n addTouchStartListener(document, onPointerish);\n addSelectiomChangeListener(document, onPointerish);\n addScrollListener(document, onPointerish);\n}\n\nfunction callListeners() {\n var value = {\n activeModality: activeModality,\n modality: modality\n };\n listeners.forEach(function (listener) {\n listener(value);\n });\n}\n\nexport function getActiveModality() {\n return activeModality;\n}\nexport function getModality() {\n return modality;\n}\nexport function addModalityListener(listener) {\n listeners.add(listener);\n return function () {\n listeners.delete(listener);\n };\n}\nexport function testOnly_resetActiveModality() {\n isEmulatingMouseEvents = false;\n activeModality = KEYBOARD;\n modality = KEYBOARD;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport createEventHandle from '../createEventHandle';\nimport useLayoutEffect from '../useLayoutEffect';\nimport useStable from '../useStable';\n\n/**\n * This can be used with any event type include custom events.\n *\n * const click = useEvent('click', options);\n * useEffect(() => {\n * click.setListener(target, onClick);\n * return () => click.clear();\n * }).\n */\nexport default function useEvent(event, options) {\n var targetListeners = useStable(function () {\n return new Map();\n });\n var addListener = useStable(function () {\n var addEventListener = createEventHandle(event, options);\n return function (target, callback) {\n var removeTargetListener = targetListeners.get(target);\n\n if (removeTargetListener != null) {\n removeTargetListener();\n }\n\n if (callback == null) {\n targetListeners.delete(target);\n }\n\n var removeEventListener = addEventListener(target, callback);\n targetListeners.set(target, removeEventListener);\n return removeEventListener;\n };\n });\n useLayoutEffect(function () {\n return function () {\n targetListeners.forEach(function (removeListener) {\n removeListener();\n });\n targetListeners.clear();\n };\n }, []);\n return addListener;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport { getModality } from '../modality';\nimport useEvent from '../useEvent';\nimport useLayoutEffect from '../useLayoutEffect';\n/**\n * Types\n */\n\n/**\n * Implementation\n */\nvar emptyObject = {};\nvar opts = {\n passive: true\n};\nvar lockEventType = 'react-gui:hover:lock';\nvar unlockEventType = 'react-gui:hover:unlock';\n\nvar supportsPointerEvent = function supportsPointerEvent() {\n return !!(typeof window !== 'undefined' && window.PointerEvent != null);\n};\n\nfunction dispatchCustomEvent(target, type, payload) {\n var event = document.createEvent('CustomEvent');\n\n var _ref = payload || emptyObject,\n _ref$bubbles = _ref.bubbles,\n bubbles = _ref$bubbles === void 0 ? true : _ref$bubbles,\n _ref$cancelable = _ref.cancelable,\n cancelable = _ref$cancelable === void 0 ? true : _ref$cancelable,\n detail = _ref.detail;\n\n event.initCustomEvent(type, bubbles, cancelable, detail);\n target.dispatchEvent(event);\n} // This accounts for the non-PointerEvent fallback events.\n\n\nfunction getPointerType(event) {\n var pointerType = event.pointerType;\n return pointerType != null ? pointerType : getModality();\n}\n\nexport default function useHover(targetRef, config) {\n var contain = config.contain,\n disabled = config.disabled,\n onHoverStart = config.onHoverStart,\n onHoverChange = config.onHoverChange,\n onHoverUpdate = config.onHoverUpdate,\n onHoverEnd = config.onHoverEnd;\n var canUsePE = supportsPointerEvent();\n var addMoveListener = useEvent(canUsePE ? 'pointermove' : 'mousemove', opts);\n var addEnterListener = useEvent(canUsePE ? 'pointerenter' : 'mouseenter', opts);\n var addLeaveListener = useEvent(canUsePE ? 'pointerleave' : 'mouseleave', opts); // These custom events are used to implement the \"contain\" prop.\n\n var addLockListener = useEvent(lockEventType, opts);\n var addUnlockListener = useEvent(unlockEventType, opts);\n useLayoutEffect(function () {\n var target = targetRef.current;\n\n if (target !== null) {\n /**\n * End the hover gesture\n */\n var hoverEnd = function hoverEnd(e) {\n if (onHoverEnd != null) {\n onHoverEnd(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(false);\n } // Remove the listeners once finished.\n\n\n addMoveListener(target, null);\n addLeaveListener(target, null);\n };\n /**\n * Leave element\n */\n\n\n var leaveListener = function leaveListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, unlockEventType);\n }\n\n hoverEnd(e);\n }\n };\n /**\n * Move within element\n */\n\n\n var moveListener = function moveListener(e) {\n if (getPointerType(e) !== 'touch') {\n if (onHoverUpdate != null) {\n // Not all browsers have these properties\n if (e.x == null) {\n e.x = e.clientX;\n }\n\n if (e.y == null) {\n e.y = e.clientY;\n }\n\n onHoverUpdate(e);\n }\n }\n };\n /**\n * Start the hover gesture\n */\n\n\n var hoverStart = function hoverStart(e) {\n if (onHoverStart != null) {\n onHoverStart(e);\n }\n\n if (onHoverChange != null) {\n onHoverChange(true);\n } // Set the listeners needed for the rest of the hover gesture.\n\n\n if (onHoverUpdate != null) {\n addMoveListener(target, !disabled ? moveListener : null);\n }\n\n addLeaveListener(target, !disabled ? leaveListener : null);\n };\n /**\n * Enter element\n */\n\n\n var enterListener = function enterListener(e) {\n var target = targetRef.current;\n\n if (target != null && getPointerType(e) !== 'touch') {\n if (contain) {\n dispatchCustomEvent(target, lockEventType);\n }\n\n hoverStart(e);\n\n var lockListener = function lockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverEnd(e);\n }\n };\n\n var unlockListener = function unlockListener(lockEvent) {\n if (lockEvent.target !== target) {\n hoverStart(e);\n }\n };\n\n addLockListener(target, !disabled ? lockListener : null);\n addUnlockListener(target, !disabled ? unlockListener : null);\n }\n };\n\n addEnterListener(target, !disabled ? enterListener : null);\n }\n }, [addEnterListener, addMoveListener, addLeaveListener, addLockListener, addUnlockListener, contain, disabled, onHoverStart, onHoverChange, onHoverUpdate, onHoverEnd, targetRef]);\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from 'react';\nimport { forwardRef, memo, useMemo, useState, useRef } from 'react';\nimport useMergeRefs from '../../modules/useMergeRefs';\nimport useHover from '../../modules/useHover';\nimport usePressEvents from '../../modules/usePressEvents';\nimport StyleSheet from '../StyleSheet';\nimport View from '../View';\n\n/**\n * Component used to build display components that should respond to whether the\n * component is currently pressed or not.\n */\nfunction Pressable(props, forwardedRef) {\n var children = props.children,\n delayLongPress = props.delayLongPress,\n delayPressIn = props.delayPressIn,\n delayPressOut = props.delayPressOut,\n disabled = props.disabled,\n focusable = props.focusable,\n onBlur = props.onBlur,\n onContextMenu = props.onContextMenu,\n onFocus = props.onFocus,\n onHoverIn = props.onHoverIn,\n onHoverOut = props.onHoverOut,\n onKeyDown = props.onKeyDown,\n onLongPress = props.onLongPress,\n onPress = props.onPress,\n onPressMove = props.onPressMove,\n onPressIn = props.onPressIn,\n onPressOut = props.onPressOut,\n style = props.style,\n testOnly_hovered = props.testOnly_hovered,\n testOnly_pressed = props.testOnly_pressed,\n rest = _objectWithoutPropertiesLoose(props, [\"children\", \"delayLongPress\", \"delayPressIn\", \"delayPressOut\", \"disabled\", \"focusable\", \"onBlur\", \"onContextMenu\", \"onFocus\", \"onHoverIn\", \"onHoverOut\", \"onKeyDown\", \"onLongPress\", \"onPress\", \"onPressMove\", \"onPressIn\", \"onPressOut\", \"style\", \"testOnly_hovered\", \"testOnly_pressed\"]);\n\n var _useForceableState = useForceableState(testOnly_hovered === true),\n hovered = _useForceableState[0],\n setHovered = _useForceableState[1];\n\n var _useForceableState2 = useForceableState(false),\n focused = _useForceableState2[0],\n setFocused = _useForceableState2[1];\n\n var _useForceableState3 = useForceableState(testOnly_pressed === true),\n pressed = _useForceableState3[0],\n setPressed = _useForceableState3[1];\n\n var hostRef = useRef(null);\n var setRef = useMergeRefs(forwardedRef, hostRef);\n var pressConfig = useMemo(function () {\n return {\n delayLongPress: delayLongPress,\n delayPressStart: delayPressIn,\n delayPressEnd: delayPressOut,\n disabled: disabled,\n onLongPress: onLongPress,\n onPress: onPress,\n onPressChange: setPressed,\n onPressStart: onPressIn,\n onPressMove: onPressMove,\n onPressEnd: onPressOut\n };\n }, [delayLongPress, delayPressIn, delayPressOut, disabled, onLongPress, onPress, onPressIn, onPressMove, onPressOut, setPressed]);\n var pressEventHandlers = usePressEvents(hostRef, pressConfig);\n var onContextMenuPress = pressEventHandlers.onContextMenu,\n onKeyDownPress = pressEventHandlers.onKeyDown;\n useHover(hostRef, {\n contain: true,\n disabled: disabled,\n onHoverChange: setHovered,\n onHoverStart: onHoverIn,\n onHoverEnd: onHoverOut\n });\n var interactionState = {\n hovered: hovered,\n focused: focused,\n pressed: pressed\n };\n var blurHandler = React.useCallback(function (e) {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(function (e) {\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [hostRef, setFocused, onFocus]);\n var contextMenuHandler = React.useCallback(function (e) {\n if (onContextMenuPress != null) {\n onContextMenuPress(e);\n }\n\n if (onContextMenu != null) {\n onContextMenu(e);\n }\n }, [onContextMenu, onContextMenuPress]);\n var keyDownHandler = React.useCallback(function (e) {\n if (onKeyDownPress != null) {\n onKeyDownPress(e);\n }\n\n if (onKeyDown != null) {\n onKeyDown(e);\n }\n }, [onKeyDown, onKeyDownPress]);\n return /*#__PURE__*/React.createElement(View, _extends({}, rest, pressEventHandlers, {\n accessibilityDisabled: disabled,\n focusable: !disabled && focusable !== false,\n onBlur: blurHandler,\n onContextMenu: contextMenuHandler,\n onFocus: focusHandler,\n onKeyDown: keyDownHandler,\n ref: setRef,\n style: [!disabled && styles.root, typeof style === 'function' ? style(interactionState) : style]\n }), typeof children === 'function' ? children(interactionState) : children);\n}\n\nfunction useForceableState(forced) {\n var _useState = useState(false),\n bool = _useState[0],\n setBool = _useState[1];\n\n return [bool || forced, setBool];\n}\n\nvar styles = StyleSheet.create({\n root: {\n cursor: 'pointer',\n touchAction: 'manipulation'\n }\n});\nvar MemoedPressable = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Pressable));\nMemoedPressable.displayName = 'Pressable';\nexport default MemoedPressable;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n/*\n * @returns {bool} true if different, false if equal\n */\n\nvar deepDiffer = function deepDiffer(one, two, maxDepth) {\n if (maxDepth === void 0) {\n maxDepth = -1;\n }\n\n if (maxDepth === 0) {\n return true;\n }\n\n if (one === two) {\n // Short circuit on identical object references instead of traversing them.\n return false;\n }\n\n if (typeof one === 'function' && typeof two === 'function') {\n // We consider all functions equal\n return false;\n }\n\n if (typeof one !== 'object' || one === null) {\n // Primitives can be directly compared\n return one !== two;\n }\n\n if (typeof two !== 'object' || two === null) {\n // We know they are different because the previous case would have triggered\n // otherwise.\n return true;\n }\n\n if (one.constructor !== two.constructor) {\n return true;\n }\n\n if (Array.isArray(one)) {\n // We know two is also an array because the constructors are equal\n var len = one.length;\n\n if (two.length !== len) {\n return true;\n }\n\n for (var ii = 0; ii < len; ii++) {\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\n return true;\n }\n }\n } else {\n for (var key in one) {\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\n return true;\n }\n }\n\n for (var twoKey in two) {\n // The only case we haven't checked yet is keys that are in two but aren't\n // in one, which means they are different.\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport default deepDiffer;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport deepDiffer from '../deepDiffer';\nimport * as React from 'react';\nimport StyleSheet from '../../../exports/StyleSheet';\nimport View from '../../../exports/View';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n numColumns: 1\n});\n\n/**\n * A performant interface for rendering simple, flat lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Optional horizontal mode.\n * - Configurable viewability callbacks.\n * - Header support.\n * - Footer support.\n * - Separator support.\n * - Pull to Refresh.\n * - Scroll loading.\n * - ScrollToIndex support.\n *\n * If you need section support, use [``](docs/sectionlist.html).\n *\n * Minimal Example:\n *\n * {item.key}}\n * />\n *\n * More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.\n *\n * - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will\n * prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even\n * if the components rendered in `MyListItem` did not have such optimizations.\n * - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render\n * when the `state.selected` changes. Without setting this prop, `FlatList` would not know it\n * needs to re-render any items because it is also a `PureComponent` and the prop comparison will\n * not show any changes.\n * - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.\n *\n *\n * class MyListItem extends React.PureComponent {\n * _onPress = () => {\n * this.props.onPressItem(this.props.id);\n * };\n *\n * render() {\n * const textColor = this.props.selected ? \"red\" : \"black\";\n * return (\n * \n * \n * \n * {this.props.title}\n * \n * \n * \n * );\n * }\n * }\n *\n * class MultiSelectList extends React.PureComponent {\n * state = {selected: (new Map(): Map)};\n *\n * _keyExtractor = (item, index) => item.id;\n *\n * _onPressItem = (id: string) => {\n * // updater functions are preferred for transactional updates\n * this.setState((state) => {\n * // copy the map rather than modifying state.\n * const selected = new Map(state.selected);\n * selected.set(id, !selected.get(id)); // toggle\n * return {selected};\n * });\n * };\n *\n * _renderItem = ({item}) => (\n * \n * );\n *\n * render() {\n * return (\n * \n * );\n * }\n * }\n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n * Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.\n */\nvar FlatList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(FlatList, _React$PureComponent);\n\n var _proto = FlatList.prototype;\n\n /**\n * Scrolls to the end of the content. May be janky without `getItemLayout` prop.\n */\n _proto.scrollToEnd = function scrollToEnd(params) {\n if (this._listRef) {\n this._listRef.scrollToEnd(params);\n }\n }\n /**\n * Scrolls to the item at the specified index such that it is positioned in the viewable area\n * such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the\n * middle. `viewOffset` is a fixed number of pixels to offset the final target position.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToIndex = function scrollToIndex(params) {\n if (this._listRef) {\n this._listRef.scrollToIndex(params);\n }\n }\n /**\n * Requires linear scan through data - use `scrollToIndex` instead if possible.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n ;\n\n _proto.scrollToItem = function scrollToItem(params) {\n if (this._listRef) {\n this._listRef.scrollToItem(params);\n }\n }\n /**\n * Scroll to a specific content pixel offset in the list.\n *\n * Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList\n */\n ;\n\n _proto.scrollToOffset = function scrollToOffset(params) {\n if (this._listRef) {\n this._listRef.scrollToOffset(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n if (this._listRef) {\n this._listRef.recordInteraction();\n }\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n if (this._listRef) {\n this._listRef.flashScrollIndicators();\n }\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n if (this._listRef) {\n return this._listRef.getScrollResponder();\n }\n }\n /**\n * Provides a reference to the underlying host component\n */\n ;\n\n _proto.getNativeScrollRef = function getNativeScrollRef() {\n if (this._listRef) {\n /* $FlowFixMe[incompatible-return] Suppresses errors found when fixing\n * TextInput typing */\n return this._listRef.getScrollRef();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n if (this._listRef) {\n return this._listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n if (this._listRef) {\n this._listRef.setNativeProps(props);\n }\n };\n\n function FlatList(_props) {\n var _this;\n\n _this = _React$PureComponent.call(this, _props) || this;\n _this._virtualizedListPairs = [];\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n _this._getItem = function (data, index) {\n var numColumns = _this.props.numColumns;\n\n if (numColumns > 1) {\n var ret = [];\n\n for (var kk = 0; kk < numColumns; kk++) {\n var _item = data[index * numColumns + kk];\n\n if (_item != null) {\n ret.push(_item);\n }\n }\n\n return ret;\n } else {\n return data[index];\n }\n };\n\n _this._getItemCount = function (data) {\n if (data) {\n var numColumns = _this.props.numColumns;\n return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;\n } else {\n return 0;\n }\n };\n\n _this._keyExtractor = function (items, index) {\n var _this$props = _this.props,\n keyExtractor = _this$props.keyExtractor,\n numColumns = _this$props.numColumns;\n\n if (numColumns > 1) {\n invariant(Array.isArray(items), 'FlatList: Encountered internal consistency error, expected each item to consist of an ' + 'array with 1-%s columns; instead, received a single item.', numColumns);\n return items // $FlowFixMe[incompatible-call]\n .map(function (it, kk) {\n return keyExtractor(it, index * numColumns + kk);\n }).join(':');\n } else {\n // $FlowFixMe Can't call keyExtractor with an array\n return keyExtractor(items, index);\n }\n };\n\n _this._renderer = function () {\n var _ref;\n\n var _this$props2 = _this.props,\n ListItemComponent = _this$props2.ListItemComponent,\n renderItem = _this$props2.renderItem,\n numColumns = _this$props2.numColumns,\n columnWrapperStyle = _this$props2.columnWrapperStyle;\n var virtualizedListRenderKey = ListItemComponent ? 'ListItemComponent' : 'renderItem';\n\n var renderer = function renderer(props) {\n if (ListItemComponent) {\n // $FlowFixMe Component isn't valid\n return /*#__PURE__*/React.createElement(ListItemComponent, props);\n } else if (renderItem) {\n // $FlowFixMe[incompatible-call]\n return renderItem(props);\n } else {\n return null;\n }\n };\n\n return _ref = {}, _ref[virtualizedListRenderKey] = function (info) {\n if (numColumns > 1) {\n var _item2 = info.item,\n _index = info.index;\n invariant(Array.isArray(_item2), 'Expected array of items with numColumns > 1');\n return /*#__PURE__*/React.createElement(View, {\n style: StyleSheet.compose(styles.row, columnWrapperStyle)\n }, _item2.map(function (it, kk) {\n var element = renderer({\n item: it,\n index: _index * numColumns + kk,\n separators: info.separators\n });\n return element != null ? /*#__PURE__*/React.createElement(React.Fragment, {\n key: kk\n }, element) : null;\n }));\n } else {\n return renderer(info);\n }\n }, _ref;\n };\n\n _this._checkProps(_this.props);\n\n if (_this.props.viewabilityConfigCallbackPairs) {\n _this._virtualizedListPairs = _this.props.viewabilityConfigCallbackPairs.map(function (pair) {\n return {\n viewabilityConfig: pair.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(pair.onViewableItemsChanged)\n };\n });\n } else if (_this.props.onViewableItemsChanged) {\n _this._virtualizedListPairs.push({\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete\n * this comment and run Flow. */\n viewabilityConfig: _this.props.viewabilityConfig,\n onViewableItemsChanged: _this._createOnViewableItemsChanged(_this.props.onViewableItemsChanged)\n });\n }\n\n return _this;\n }\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n invariant(prevProps.numColumns === this.props.numColumns, 'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' + 'changing the number of columns to force a fresh render of the component.');\n invariant(prevProps.onViewableItemsChanged === this.props.onViewableItemsChanged, 'Changing onViewableItemsChanged on the fly is not supported');\n invariant(!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig), 'Changing viewabilityConfig on the fly is not supported');\n invariant(prevProps.viewabilityConfigCallbackPairs === this.props.viewabilityConfigCallbackPairs, 'Changing viewabilityConfigCallbackPairs on the fly is not supported');\n\n this._checkProps(this.props);\n };\n\n _proto._checkProps = function _checkProps(props) {\n var getItem = props.getItem,\n getItemCount = props.getItemCount,\n horizontal = props.horizontal,\n numColumns = props.numColumns,\n columnWrapperStyle = props.columnWrapperStyle,\n onViewableItemsChanged = props.onViewableItemsChanged,\n viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs;\n invariant(!getItem && !getItemCount, 'FlatList does not support custom data formats.');\n\n if (numColumns > 1) {\n invariant(!horizontal, 'numColumns does not support horizontal.');\n } else {\n invariant(!columnWrapperStyle, 'columnWrapperStyle not supported for single column lists');\n }\n\n invariant(!(onViewableItemsChanged && viewabilityConfigCallbackPairs), 'FlatList does not support setting both onViewableItemsChanged and ' + 'viewabilityConfigCallbackPairs.');\n };\n\n _proto._pushMultiColumnViewable = function _pushMultiColumnViewable(arr, v) {\n var _this$props3 = this.props,\n numColumns = _this$props3.numColumns,\n keyExtractor = _this$props3.keyExtractor;\n v.item.forEach(function (item, ii) {\n invariant(v.index != null, 'Missing index!');\n var index = v.index * numColumns + ii;\n arr.push(_objectSpread(_objectSpread({}, v), {}, {\n item: item,\n key: keyExtractor(item, index),\n index: index\n }));\n });\n };\n\n _proto._createOnViewableItemsChanged = function _createOnViewableItemsChanged(onViewableItemsChanged) {\n var _this2 = this;\n\n return function (info) {\n var numColumns = _this2.props.numColumns;\n\n if (onViewableItemsChanged) {\n if (numColumns > 1) {\n var changed = [];\n var viewableItems = [];\n info.viewableItems.forEach(function (v) {\n return _this2._pushMultiColumnViewable(viewableItems, v);\n });\n info.changed.forEach(function (v) {\n return _this2._pushMultiColumnViewable(changed, v);\n });\n onViewableItemsChanged({\n viewableItems: viewableItems,\n changed: changed\n });\n } else {\n onViewableItemsChanged(info);\n }\n }\n };\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n numColumns = _this$props4.numColumns,\n columnWrapperStyle = _this$props4.columnWrapperStyle,\n restProps = _objectWithoutPropertiesLoose(_this$props4, [\"numColumns\", \"columnWrapperStyle\"]);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, restProps, {\n getItem: this._getItem,\n getItemCount: this._getItemCount,\n keyExtractor: this._keyExtractor,\n ref: this._captureRef,\n viewabilityConfigCallbackPairs: this._virtualizedListPairs\n }, this._renderer()));\n };\n\n return FlatList;\n}(React.PureComponent);\n\nFlatList.defaultProps = defaultProps;\nvar styles = StyleSheet.create({\n row: {\n flexDirection: 'row'\n }\n});\nexport default FlatList;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport FlatList from '../../vendor/react-native/FlatList';\nexport default FlatList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } it = o[Symbol.iterator](); return it.next.bind(it); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport * as React from 'react';\nimport View from '../../../exports/View';\nimport VirtualizedList from '../VirtualizedList';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * Right now this just flattens everything into one list and uses VirtualizedList under the\n * hood. The only operation that might not scale well is concatting the data arrays of all the\n * sections when new props are received, which should be plenty fast for up to ~10,000 items.\n */\nvar VirtualizedSectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(VirtualizedSectionList, _React$PureComponent);\n\n function VirtualizedSectionList() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n\n _this._getItem = function (props, sections, index) {\n if (!sections) {\n return null;\n }\n\n var itemIdx = index - 1;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var itemCount = props.getItemCount(sectionData);\n\n if (itemIdx === -1 || itemIdx === itemCount) {\n // We intend for there to be overflow by one on both ends of the list.\n // This will be for headers and footers. When returning a header or footer\n // item the section itself is the item.\n return section;\n } else if (itemIdx < itemCount) {\n // If we are in the bounds of the list's data then return the item.\n return props.getItem(sectionData, itemIdx);\n } else {\n itemIdx -= itemCount + 2; // Add two for the header and footer\n }\n }\n\n return null;\n };\n\n _this._keyExtractor = function (item, index) {\n var info = _this._subExtractor(index);\n\n return info && info.key || String(index);\n };\n\n _this._convertViewable = function (viewable) {\n invariant(viewable.index != null, 'Received a broken ViewToken');\n\n var info = _this._subExtractor(viewable.index);\n\n if (!info) {\n return null;\n }\n\n var keyExtractor = info.section.keyExtractor || _this.props.keyExtractor;\n return _objectSpread(_objectSpread({}, viewable), {}, {\n index: info.index,\n\n /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.63 was deployed. To see the error delete this\n * comment and run Flow. */\n key: keyExtractor(viewable.item, info.index),\n section: info.section\n });\n };\n\n _this._onViewableItemsChanged = function (_ref) {\n var viewableItems = _ref.viewableItems,\n changed = _ref.changed;\n var onViewableItemsChanged = _this.props.onViewableItemsChanged;\n\n if (onViewableItemsChanged != null) {\n onViewableItemsChanged({\n viewableItems: viewableItems.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean),\n changed: changed.map(_this._convertViewable, _assertThisInitialized(_this)).filter(Boolean)\n });\n }\n };\n\n _this._renderItem = function (listItemCount) {\n return function (_ref2) {\n var item = _ref2.item,\n index = _ref2.index;\n\n var info = _this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var infoIndex = info.index;\n\n if (infoIndex == null) {\n var section = info.section;\n\n if (info.header === true) {\n var renderSectionHeader = _this.props.renderSectionHeader;\n return renderSectionHeader ? renderSectionHeader({\n section: section\n }) : null;\n } else {\n var renderSectionFooter = _this.props.renderSectionFooter;\n return renderSectionFooter ? renderSectionFooter({\n section: section\n }) : null;\n }\n } else {\n var renderItem = info.section.renderItem || _this.props.renderItem;\n\n var SeparatorComponent = _this._getSeparatorComponent(index, info, listItemCount);\n\n invariant(renderItem, 'no renderItem!');\n return /*#__PURE__*/React.createElement(ItemWithSeparator, {\n SeparatorComponent: SeparatorComponent,\n LeadingSeparatorComponent: infoIndex === 0 ? _this.props.SectionSeparatorComponent : undefined,\n cellKey: info.key,\n index: infoIndex,\n item: item,\n leadingItem: info.leadingItem,\n leadingSection: info.leadingSection,\n onUpdateSeparator: _this._onUpdateSeparator,\n prevCellKey: (_this._subExtractor(index - 1) || {}).key,\n ref: function ref(_ref3) {\n _this._cellRefs[info.key] = _ref3;\n },\n renderItem: renderItem,\n section: info.section,\n trailingItem: info.trailingItem,\n trailingSection: info.trailingSection,\n inverted: !!_this.props.inverted\n });\n }\n };\n };\n\n _this._onUpdateSeparator = function (key, newProps) {\n var ref = _this._cellRefs[key];\n ref && ref.updateSeparatorProps(newProps);\n };\n\n _this._cellRefs = {};\n\n _this._captureRef = function (ref) {\n _this._listRef = ref;\n };\n\n return _this;\n }\n\n var _proto = VirtualizedSectionList.prototype;\n\n _proto.scrollToLocation = function scrollToLocation(params) {\n var index = params.itemIndex;\n\n for (var i = 0; i < params.sectionIndex; i++) {\n index += this.props.getItemCount(this.props.sections[i].data) + 2;\n }\n\n var viewOffset = params.viewOffset || 0;\n\n if (this._listRef == null) {\n return;\n }\n\n if (params.itemIndex > 0 && this.props.stickySectionHeadersEnabled) {\n // $FlowFixMe[prop-missing] Cannot access private property\n var frame = this._listRef._getFrameMetricsApprox(index - params.itemIndex);\n\n viewOffset += frame.length;\n }\n\n var toIndexParams = _objectSpread(_objectSpread({}, params), {}, {\n viewOffset: viewOffset,\n index: index\n });\n\n this._listRef.scrollToIndex(toIndexParams);\n };\n\n _proto.getListRef = function getListRef() {\n return this._listRef;\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n ItemSeparatorComponent = _this$props.ItemSeparatorComponent,\n SectionSeparatorComponent = _this$props.SectionSeparatorComponent,\n _renderItem = _this$props.renderItem,\n renderSectionFooter = _this$props.renderSectionFooter,\n renderSectionHeader = _this$props.renderSectionHeader,\n _sections = _this$props.sections,\n stickySectionHeadersEnabled = _this$props.stickySectionHeadersEnabled,\n passThroughProps = _objectWithoutPropertiesLoose(_this$props, [\"ItemSeparatorComponent\", \"SectionSeparatorComponent\", \"renderItem\", \"renderSectionFooter\", \"renderSectionHeader\", \"sections\", \"stickySectionHeadersEnabled\"]);\n\n var listHeaderOffset = this.props.ListHeaderComponent ? 1 : 0;\n var stickyHeaderIndices = this.props.stickySectionHeadersEnabled ? [] : undefined;\n var itemCount = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(this.props.sections), _step; !(_step = _iterator()).done;) {\n var section = _step.value;\n\n // Track the section header indices\n if (stickyHeaderIndices != null) {\n stickyHeaderIndices.push(itemCount + listHeaderOffset);\n } // Add two for the section header and footer.\n\n\n itemCount += 2;\n itemCount += this.props.getItemCount(section.data);\n }\n\n var renderItem = this._renderItem(itemCount);\n\n return /*#__PURE__*/React.createElement(VirtualizedList, _extends({}, passThroughProps, {\n keyExtractor: this._keyExtractor,\n stickyHeaderIndices: stickyHeaderIndices,\n renderItem: renderItem,\n data: this.props.sections,\n getItem: function getItem(sections, index) {\n return _this2._getItem(_this2.props, sections, index);\n },\n getItemCount: function getItemCount() {\n return itemCount;\n },\n onViewableItemsChanged: this.props.onViewableItemsChanged ? this._onViewableItemsChanged : undefined,\n ref: this._captureRef\n }));\n };\n\n _proto._subExtractor = function _subExtractor(index) {\n var itemIndex = index;\n var _this$props2 = this.props,\n getItem = _this$props2.getItem,\n getItemCount = _this$props2.getItemCount,\n keyExtractor = _this$props2.keyExtractor,\n sections = _this$props2.sections;\n\n for (var i = 0; i < sections.length; i++) {\n var section = sections[i];\n var sectionData = section.data;\n var key = section.key || String(i);\n itemIndex -= 1; // The section adds an item for the header\n\n if (itemIndex >= getItemCount(sectionData) + 1) {\n itemIndex -= getItemCount(sectionData) + 1; // The section adds an item for the footer.\n } else if (itemIndex === -1) {\n return {\n section: section,\n key: key + ':header',\n index: null,\n header: true,\n trailingSection: sections[i + 1]\n };\n } else if (itemIndex === getItemCount(sectionData)) {\n return {\n section: section,\n key: key + ':footer',\n index: null,\n header: false,\n trailingSection: sections[i + 1]\n };\n } else {\n var extractor = section.keyExtractor || keyExtractor;\n return {\n section: section,\n key: key + ':' + extractor(getItem(sectionData, itemIndex), itemIndex),\n index: itemIndex,\n leadingItem: getItem(sectionData, itemIndex - 1),\n leadingSection: sections[i - 1],\n trailingItem: getItem(sectionData, itemIndex + 1),\n trailingSection: sections[i + 1]\n };\n }\n }\n };\n\n _proto._getSeparatorComponent = function _getSeparatorComponent(index, info, listItemCount) {\n info = info || this._subExtractor(index);\n\n if (!info) {\n return null;\n }\n\n var ItemSeparatorComponent = info.section.ItemSeparatorComponent || this.props.ItemSeparatorComponent;\n var SectionSeparatorComponent = this.props.SectionSeparatorComponent;\n var isLastItemInList = index === listItemCount - 1;\n var isLastItemInSection = info.index === this.props.getItemCount(info.section.data) - 1;\n\n if (SectionSeparatorComponent && isLastItemInSection) {\n return SectionSeparatorComponent;\n }\n\n if (ItemSeparatorComponent && !isLastItemInSection && !isLastItemInList) {\n return ItemSeparatorComponent;\n }\n\n return null;\n };\n\n return VirtualizedSectionList;\n}(React.PureComponent);\n\nVirtualizedSectionList.defaultProps = _objectSpread(_objectSpread({}, VirtualizedList.defaultProps), {}, {\n data: []\n});\n\nvar ItemWithSeparator = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ItemWithSeparator, _React$Component);\n\n function ItemWithSeparator() {\n var _this3;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this3 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this3.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this3.props.item,\n leadingSection: _this3.props.leadingSection,\n section: _this3.props.section,\n trailingItem: _this3.props.trailingItem,\n trailingSection: _this3.props.trailingSection\n },\n leadingSeparatorProps: {\n highlighted: false,\n leadingItem: _this3.props.leadingItem,\n leadingSection: _this3.props.leadingSection,\n section: _this3.props.section,\n trailingItem: _this3.props.item,\n trailingSection: _this3.props.trailingSection\n }\n };\n _this3._separators = {\n highlight: function highlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this3._separators.updateProps(s, {\n highlighted: true\n });\n });\n },\n unhighlight: function unhighlight() {\n ['leading', 'trailing'].forEach(function (s) {\n return _this3._separators.updateProps(s, {\n highlighted: false\n });\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this3$props = _this3.props,\n LeadingSeparatorComponent = _this3$props.LeadingSeparatorComponent,\n cellKey = _this3$props.cellKey,\n prevCellKey = _this3$props.prevCellKey;\n\n if (select === 'leading' && LeadingSeparatorComponent != null) {\n _this3.setState(function (state) {\n return {\n leadingSeparatorProps: _objectSpread(_objectSpread({}, state.leadingSeparatorProps), newProps)\n };\n });\n } else {\n _this3.props.onUpdateSeparator(select === 'leading' && prevCellKey || cellKey, newProps);\n }\n }\n };\n return _this3;\n }\n\n ItemWithSeparator.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, prevState.separatorProps), {}, {\n leadingItem: props.item,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.trailingItem,\n trailingSection: props.trailingSection\n }),\n leadingSeparatorProps: _objectSpread(_objectSpread({}, prevState.leadingSeparatorProps), {}, {\n leadingItem: props.leadingItem,\n leadingSection: props.leadingSection,\n section: props.section,\n trailingItem: props.item,\n trailingSection: props.trailingSection\n })\n };\n };\n\n var _proto2 = ItemWithSeparator.prototype;\n\n _proto2.updateSeparatorProps = function updateSeparatorProps(newProps) {\n this.setState(function (state) {\n return {\n separatorProps: _objectSpread(_objectSpread({}, state.separatorProps), newProps)\n };\n });\n };\n\n _proto2.render = function render() {\n var _this$props3 = this.props,\n LeadingSeparatorComponent = _this$props3.LeadingSeparatorComponent,\n SeparatorComponent = _this$props3.SeparatorComponent,\n item = _this$props3.item,\n index = _this$props3.index,\n section = _this$props3.section,\n inverted = _this$props3.inverted;\n var element = this.props.renderItem({\n item: item,\n index: index,\n section: section,\n separators: this._separators\n });\n var leadingSeparator = LeadingSeparatorComponent != null && /*#__PURE__*/React.createElement(LeadingSeparatorComponent, this.state.leadingSeparatorProps);\n var separator = SeparatorComponent != null && /*#__PURE__*/React.createElement(SeparatorComponent, this.state.separatorProps);\n return leadingSeparator || separator ? /*#__PURE__*/React.createElement(View, null, inverted === false ? leadingSeparator : separator, element, inverted === false ? separator : leadingSeparator) : element;\n };\n\n return ItemWithSeparator;\n}(React.Component);\n\nexport default VirtualizedSectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport Platform from '../../../exports/Platform';\nimport * as React from 'react';\nimport ScrollView from '../../../exports/ScrollView';\nimport VirtualizedSectionList from '../VirtualizedSectionList';\n\nvar defaultProps = _objectSpread(_objectSpread({}, VirtualizedSectionList.defaultProps), {}, {\n stickySectionHeadersEnabled: Platform.OS === 'ios'\n});\n\n/**\n * A performant interface for rendering sectioned lists, supporting the most handy features:\n *\n * - Fully cross-platform.\n * - Configurable viewability callbacks.\n * - List header support.\n * - List footer support.\n * - Item separator support.\n * - Section header support.\n * - Section separator support.\n * - Heterogeneous data and item rendering support.\n * - Pull to Refresh.\n * - Scroll loading.\n *\n * If you don't need section support and want a simpler interface, use\n * [``](/react-native/docs/flatlist.html).\n *\n * Simple Examples:\n *\n * }\n * renderSectionHeader={({section}) =>
}\n * sections={[ // homogeneous rendering between sections\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * {data: [...], title: ...},\n * ]}\n * />\n *\n * \n *\n * This is a convenience wrapper around [``](docs/virtualizedlist.html),\n * and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed\n * here, along with the following caveats:\n *\n * - Internal state is not preserved when content scrolls out of the render window. Make sure all\n * your data is captured in the item data or external stores like Flux, Redux, or Relay.\n * - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-\n * equal. Make sure that everything your `renderItem` function depends on is passed as a prop\n * (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on\n * changes. This includes the `data` prop and parent component state.\n * - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously\n * offscreen. This means it's possible to scroll faster than the fill rate and momentarily see\n * blank content. This is a tradeoff that can be adjusted to suit the needs of each application,\n * and we are working on improving it behind the scenes.\n * - By default, the list looks for a `key` prop on each item and uses that for the React key.\n * Alternatively, you can provide a custom `keyExtractor` prop.\n *\n */\nvar SectionList = /*#__PURE__*/function (_React$PureComponent) {\n _inheritsLoose(SectionList, _React$PureComponent);\n\n function SectionList() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n\n _this._captureRef = function (ref) {\n // $FlowFixMe\n _this._wrapperListRef = ref;\n };\n\n return _this;\n }\n\n var _proto = SectionList.prototype;\n\n /**\n * Scrolls to the item at the specified `sectionIndex` and `itemIndex` (within the section)\n * positioned in the viewable area such that `viewPosition` 0 places it at the top (and may be\n * covered by a sticky header), 1 at the bottom, and 0.5 centered in the middle. `viewOffset` is a\n * fixed number of pixels to offset the final target position, e.g. to compensate for sticky\n * headers.\n *\n * Note: cannot scroll to locations outside the render window without specifying the\n * `getItemLayout` prop.\n */\n _proto.scrollToLocation = function scrollToLocation(params) {\n if (this._wrapperListRef != null) {\n this._wrapperListRef.scrollToLocation(params);\n }\n }\n /**\n * Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.\n * if `waitForInteractions` is true and the user has not scrolled. This is typically called by\n * taps on items or by navigation actions.\n */\n ;\n\n _proto.recordInteraction = function recordInteraction() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.recordInteraction();\n }\n /**\n * Displays the scroll indicators momentarily.\n *\n * @platform ios\n */\n ;\n\n _proto.flashScrollIndicators = function flashScrollIndicators() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n listRef && listRef.flashScrollIndicators();\n }\n /**\n * Provides a handle to the underlying scroll responder.\n */\n ;\n\n _proto.getScrollResponder = function getScrollResponder() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollResponder();\n }\n };\n\n _proto.getScrollableNode = function getScrollableNode() {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n return listRef.getScrollableNode();\n }\n };\n\n _proto.setNativeProps = function setNativeProps(props) {\n var listRef = this._wrapperListRef && this._wrapperListRef.getListRef();\n\n if (listRef) {\n listRef.setNativeProps(props);\n }\n };\n\n _proto.render = function render() {\n return (\n /*#__PURE__*/\n\n /* $FlowFixMe(>=0.66.0 site=react_native_fb) This comment suppresses an\n * error found when Flow v0.66 was deployed. To see the error delete this\n * comment and run Flow. */\n React.createElement(VirtualizedSectionList, _extends({}, this.props, {\n ref: this._captureRef,\n getItemCount: function getItemCount(items) {\n return items.length;\n },\n getItem: function getItem(items, index) {\n return items[index];\n }\n }))\n );\n };\n\n return SectionList;\n}(React.PureComponent);\n\nSectionList.defaultProps = defaultProps;\nexport default SectionList;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport SectionList from '../../vendor/react-native/SectionList';\nexport default SectionList;","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport AccessibilityUtil from '../AccessibilityUtil';\nimport css from '../../exports/StyleSheet/css';\nimport StyleSheet from '../../exports/StyleSheet';\nimport styleResolver from '../../exports/StyleSheet/styleResolver';\nimport { STYLE_GROUPS } from '../../exports/StyleSheet/constants';\nvar emptyObject = {};\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar uppercasePattern = /[A-Z]/g;\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateString(str) {\n return str.replace(uppercasePattern, toHyphenLower);\n}\n\nfunction processIDRefList(idRefList) {\n return isArray(idRefList) ? idRefList.join(' ') : idRefList;\n} // Reset styles for heading, link, and list DOM elements\n\n\nvar classes = css.create({\n reset: {\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n listStyle: 'none',\n margin: 0,\n textAlign: 'inherit',\n textDecoration: 'none'\n },\n cursor: {\n cursor: 'pointer'\n }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar createDOMProps = function createDOMProps(elementType, props) {\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityActiveDescendant = _props.accessibilityActiveDescendant,\n accessibilityAtomic = _props.accessibilityAtomic,\n accessibilityAutoComplete = _props.accessibilityAutoComplete,\n accessibilityBusy = _props.accessibilityBusy,\n accessibilityChecked = _props.accessibilityChecked,\n accessibilityColumnCount = _props.accessibilityColumnCount,\n accessibilityColumnIndex = _props.accessibilityColumnIndex,\n accessibilityColumnSpan = _props.accessibilityColumnSpan,\n accessibilityControls = _props.accessibilityControls,\n accessibilityCurrent = _props.accessibilityCurrent,\n accessibilityDescribedBy = _props.accessibilityDescribedBy,\n accessibilityDetails = _props.accessibilityDetails,\n accessibilityDisabled = _props.accessibilityDisabled,\n accessibilityErrorMessage = _props.accessibilityErrorMessage,\n accessibilityExpanded = _props.accessibilityExpanded,\n accessibilityFlowTo = _props.accessibilityFlowTo,\n accessibilityHasPopup = _props.accessibilityHasPopup,\n accessibilityHidden = _props.accessibilityHidden,\n accessibilityInvalid = _props.accessibilityInvalid,\n accessibilityKeyShortcuts = _props.accessibilityKeyShortcuts,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLabelledBy = _props.accessibilityLabelledBy,\n accessibilityLevel = _props.accessibilityLevel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityModal = _props.accessibilityModal,\n accessibilityMultiline = _props.accessibilityMultiline,\n accessibilityMultiSelectable = _props.accessibilityMultiSelectable,\n accessibilityOrientation = _props.accessibilityOrientation,\n accessibilityOwns = _props.accessibilityOwns,\n accessibilityPlaceholder = _props.accessibilityPlaceholder,\n accessibilityPosInSet = _props.accessibilityPosInSet,\n accessibilityPressed = _props.accessibilityPressed,\n accessibilityReadOnly = _props.accessibilityReadOnly,\n accessibilityRequired = _props.accessibilityRequired,\n accessibilityRole = _props.accessibilityRole,\n accessibilityRoleDescription = _props.accessibilityRoleDescription,\n accessibilityRowCount = _props.accessibilityRowCount,\n accessibilityRowIndex = _props.accessibilityRowIndex,\n accessibilityRowSpan = _props.accessibilityRowSpan,\n accessibilitySelected = _props.accessibilitySelected,\n accessibilitySetSize = _props.accessibilitySetSize,\n accessibilitySort = _props.accessibilitySort,\n accessibilityValueMax = _props.accessibilityValueMax,\n accessibilityValueMin = _props.accessibilityValueMin,\n accessibilityValueNow = _props.accessibilityValueNow,\n accessibilityValueText = _props.accessibilityValueText,\n classList = _props.classList,\n dataSet = _props.dataSet,\n focusable = _props.focusable,\n nativeID = _props.nativeID,\n pointerEvents = _props.pointerEvents,\n providedStyle = _props.style,\n testID = _props.testID,\n accessible = _props.accessible,\n accessibilityState = _props.accessibilityState,\n accessibilityValue = _props.accessibilityValue,\n domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityActiveDescendant\", \"accessibilityAtomic\", \"accessibilityAutoComplete\", \"accessibilityBusy\", \"accessibilityChecked\", \"accessibilityColumnCount\", \"accessibilityColumnIndex\", \"accessibilityColumnSpan\", \"accessibilityControls\", \"accessibilityCurrent\", \"accessibilityDescribedBy\", \"accessibilityDetails\", \"accessibilityDisabled\", \"accessibilityErrorMessage\", \"accessibilityExpanded\", \"accessibilityFlowTo\", \"accessibilityHasPopup\", \"accessibilityHidden\", \"accessibilityInvalid\", \"accessibilityKeyShortcuts\", \"accessibilityLabel\", \"accessibilityLabelledBy\", \"accessibilityLevel\", \"accessibilityLiveRegion\", \"accessibilityModal\", \"accessibilityMultiline\", \"accessibilityMultiSelectable\", \"accessibilityOrientation\", \"accessibilityOwns\", \"accessibilityPlaceholder\", \"accessibilityPosInSet\", \"accessibilityPressed\", \"accessibilityReadOnly\", \"accessibilityRequired\", \"accessibilityRole\", \"accessibilityRoleDescription\", \"accessibilityRowCount\", \"accessibilityRowIndex\", \"accessibilityRowSpan\", \"accessibilitySelected\", \"accessibilitySetSize\", \"accessibilitySort\", \"accessibilityValueMax\", \"accessibilityValueMin\", \"accessibilityValueNow\", \"accessibilityValueText\", \"classList\", \"dataSet\", \"focusable\", \"nativeID\", \"pointerEvents\", \"style\", \"testID\", \"accessible\", \"accessibilityState\", \"accessibilityValue\"]);\n\n var disabled = accessibilityState != null && accessibilityState.disabled === true || accessibilityDisabled;\n var role = AccessibilityUtil.propsToAriaRole(props); // DEPRECATED\n\n if (accessibilityState != null) {\n for (var prop in accessibilityState) {\n var value = accessibilityState[prop];\n\n if (value != null) {\n if (prop === 'disabled' || prop === 'hidden') {\n if (value === true) {\n domProps[\"aria-\" + prop] = value; // also set prop directly to pick up host elementType behaviour\n\n domProps[prop] = value;\n }\n } else {\n domProps[\"aria-\" + prop] = value;\n }\n }\n }\n }\n\n if (accessibilityValue != null) {\n for (var _prop in accessibilityValue) {\n var _value = accessibilityValue[_prop];\n\n if (_value != null) {\n domProps[\"aria-value\" + _prop] = _value;\n }\n }\n } // ACCESSIBILITY\n\n\n if (accessibilityActiveDescendant != null) {\n domProps['aria-activedescendant'] = accessibilityActiveDescendant;\n }\n\n if (accessibilityAtomic != null) {\n domProps['aria-atomic'] = accessibilityAtomic;\n }\n\n if (accessibilityAutoComplete != null) {\n domProps['aria-autocomplete'] = accessibilityAutoComplete;\n }\n\n if (accessibilityBusy != null) {\n domProps['aria-busy'] = accessibilityBusy;\n }\n\n if (accessibilityChecked != null) {\n domProps['aria-checked'] = accessibilityChecked;\n }\n\n if (accessibilityColumnCount != null) {\n domProps['aria-colcount'] = accessibilityColumnCount;\n }\n\n if (accessibilityColumnIndex != null) {\n domProps['aria-colindex'] = accessibilityColumnIndex;\n }\n\n if (accessibilityColumnSpan != null) {\n domProps['aria-colspan'] = accessibilityColumnSpan;\n }\n\n if (accessibilityControls != null) {\n domProps['aria-controls'] = processIDRefList(accessibilityControls);\n }\n\n if (accessibilityCurrent != null) {\n domProps['aria-current'] = accessibilityCurrent;\n }\n\n if (accessibilityDescribedBy != null) {\n domProps['aria-describedby'] = processIDRefList(accessibilityDescribedBy);\n }\n\n if (accessibilityDetails != null) {\n domProps['aria-details'] = accessibilityDetails;\n }\n\n if (disabled === true) {\n domProps['aria-disabled'] = true; // Enhance with native semantics\n\n if (elementType === 'button' || elementType === 'form' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.disabled = true;\n }\n }\n\n if (accessibilityErrorMessage != null) {\n domProps['aria-errormessage'] = accessibilityErrorMessage;\n }\n\n if (accessibilityExpanded != null) {\n domProps['aria-expanded'] = accessibilityExpanded;\n }\n\n if (accessibilityFlowTo != null) {\n domProps['aria-flowto'] = processIDRefList(accessibilityFlowTo);\n }\n\n if (accessibilityHasPopup != null) {\n domProps['aria-haspopup'] = accessibilityHasPopup;\n }\n\n if (accessibilityHidden === true) {\n domProps['aria-hidden'] = accessibilityHidden;\n }\n\n if (accessibilityInvalid != null) {\n domProps['aria-invalid'] = accessibilityInvalid;\n }\n\n if (accessibilityKeyShortcuts != null && Array.isArray(accessibilityKeyShortcuts)) {\n domProps['aria-keyshortcuts'] = accessibilityKeyShortcuts.join(' ');\n }\n\n if (accessibilityLabel != null) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLabelledBy != null) {\n domProps['aria-labelledby'] = processIDRefList(accessibilityLabelledBy);\n }\n\n if (accessibilityLevel != null) {\n domProps['aria-level'] = accessibilityLevel;\n }\n\n if (accessibilityLiveRegion != null) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (accessibilityModal != null) {\n domProps['aria-modal'] = accessibilityModal;\n }\n\n if (accessibilityMultiline != null) {\n domProps['aria-multiline'] = accessibilityMultiline;\n }\n\n if (accessibilityMultiSelectable != null) {\n domProps['aria-multiselectable'] = accessibilityMultiSelectable;\n }\n\n if (accessibilityOrientation != null) {\n domProps['aria-orientation'] = accessibilityOrientation;\n }\n\n if (accessibilityOwns != null) {\n domProps['aria-owns'] = processIDRefList(accessibilityOwns);\n }\n\n if (accessibilityPlaceholder != null) {\n domProps['aria-placeholder'] = accessibilityPlaceholder;\n }\n\n if (accessibilityPosInSet != null) {\n domProps['aria-posinset'] = accessibilityPosInSet;\n }\n\n if (accessibilityPressed != null) {\n domProps['aria-pressed'] = accessibilityPressed;\n }\n\n if (accessibilityReadOnly != null) {\n domProps['aria-readonly'] = accessibilityReadOnly; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.readOnly = true;\n }\n }\n\n if (accessibilityRequired != null) {\n domProps['aria-required'] = accessibilityRequired; // Enhance with native semantics\n\n if (elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n domProps.required = true;\n }\n }\n\n if (role != null) {\n // 'presentation' synonym has wider browser support\n domProps['role'] = role === 'none' ? 'presentation' : role;\n }\n\n if (accessibilityRoleDescription != null) {\n domProps['aria-roledescription'] = accessibilityRoleDescription;\n }\n\n if (accessibilityRowCount != null) {\n domProps['aria-rowcount'] = accessibilityRowCount;\n }\n\n if (accessibilityRowIndex != null) {\n domProps['aria-rowindex'] = accessibilityRowIndex;\n }\n\n if (accessibilityRowSpan != null) {\n domProps['aria-rowspan'] = accessibilityRowSpan;\n }\n\n if (accessibilitySelected != null) {\n domProps['aria-selected'] = accessibilitySelected;\n }\n\n if (accessibilitySetSize != null) {\n domProps['aria-setsize'] = accessibilitySetSize;\n }\n\n if (accessibilitySort != null) {\n domProps['aria-sort'] = accessibilitySort;\n }\n\n if (accessibilityValueMax != null) {\n domProps['aria-valuemax'] = accessibilityValueMax;\n }\n\n if (accessibilityValueMin != null) {\n domProps['aria-valuemin'] = accessibilityValueMin;\n }\n\n if (accessibilityValueNow != null) {\n domProps['aria-valuenow'] = accessibilityValueNow;\n }\n\n if (accessibilityValueText != null) {\n domProps['aria-valuetext'] = accessibilityValueText;\n } // \"dataSet\" replaced with \"data-*\"\n\n\n if (dataSet != null) {\n for (var dataProp in dataSet) {\n if (hasOwnProperty.call(dataSet, dataProp)) {\n var dataName = hyphenateString(dataProp);\n var dataValue = dataSet[dataProp];\n\n if (dataValue != null) {\n domProps[\"data-\" + dataName] = dataValue;\n }\n }\n }\n } // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n\n\n var _focusable = focusable != null ? focusable : accessible;\n\n if (_focusable === false) {\n domProps.tabIndex = '-1';\n }\n\n if ( // These native elements are focusable by default\n elementType === 'a' || elementType === 'button' || elementType === 'input' || elementType === 'select' || elementType === 'textarea') {\n if (_focusable === false || accessibilityDisabled === true) {\n domProps.tabIndex = '-1';\n }\n } else if ( // These roles are made focusable by default\n role === 'button' || role === 'checkbox' || role === 'link' || role === 'radio' || role === 'textbox' || role === 'switch') {\n if (_focusable !== false) {\n domProps.tabIndex = '0';\n }\n } else {\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n domProps.tabIndex = '0';\n }\n } // STYLE\n\n\n var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], providedStyle); // Additional style resets for interactive elements\n\n var needsCursor = (role === 'button' || role === 'link') && !disabled;\n var needsReset = elementType === 'a' || elementType === 'button' || elementType === 'li' || elementType === 'ul' || role === 'heading'; // Classic CSS styles\n\n var finalClassList = [needsReset && classes.reset, needsCursor && classes.cursor, classList]; // Resolve styles\n\n var _styleResolver$resolv = styleResolver.resolve(reactNativeStyle, finalClassList),\n className = _styleResolver$resolv.className,\n style = _styleResolver$resolv.style;\n\n if (className != null && className !== '') {\n domProps.className = className;\n }\n\n if (style) {\n domProps.style = style;\n } // OTHER\n // Native element ID\n\n\n if (nativeID != null) {\n domProps.id = nativeID;\n } // Automated test IDs\n\n\n if (testID != null) {\n domProps['data-testid'] = testID;\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport normalizeColor from '../../modules/normalizeColor';\nimport normalizeValueWithProperty from './normalizeValueWithProperty';\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nexport default resolveShadowValue;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport * as React from 'react';\nexport default function mergeRefs() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return function forwardRef(node) {\n args.forEach(function (ref) {\n if (ref == null) {\n return;\n }\n\n if (typeof ref === 'function') {\n ref(node);\n return;\n }\n\n if (typeof ref === 'object') {\n ref.current = node;\n return;\n }\n\n console.error(\"mergeRefs cannot handle Refs of type boolean, number or string, received ref \" + String(ref));\n });\n };\n}","(function(){\r\n var crypt = require('crypt'),\r\n utf8 = require('charenc').utf8,\r\n isBuffer = require('is-buffer'),\r\n bin = require('charenc').bin,\r\n\r\n // The core\r\n md5 = function (message, options) {\r\n // Convert to byte array\r\n if (message.constructor == String)\r\n if (options && options.encoding === 'binary')\r\n message = bin.stringToBytes(message);\r\n else\r\n message = utf8.stringToBytes(message);\r\n else if (isBuffer(message))\r\n message = Array.prototype.slice.call(message, 0);\r\n else if (!Array.isArray(message) && message.constructor !== Uint8Array)\r\n message = message.toString();\r\n // else, assume byte array already\r\n\r\n var m = crypt.bytesToWords(message),\r\n l = message.length * 8,\r\n a = 1732584193,\r\n b = -271733879,\r\n c = -1732584194,\r\n d = 271733878;\r\n\r\n // Swap endian\r\n for (var i = 0; i < m.length; i++) {\r\n m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |\r\n ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;\r\n }\r\n\r\n // Padding\r\n m[l >>> 5] |= 0x80 << (l % 32);\r\n m[(((l + 64) >>> 9) << 4) + 14] = l;\r\n\r\n // Method shortcuts\r\n var FF = md5._ff,\r\n GG = md5._gg,\r\n HH = md5._hh,\r\n II = md5._ii;\r\n\r\n for (var i = 0; i < m.length; i += 16) {\r\n\r\n var aa = a,\r\n bb = b,\r\n cc = c,\r\n dd = d;\r\n\r\n a = FF(a, b, c, d, m[i+ 0], 7, -680876936);\r\n d = FF(d, a, b, c, m[i+ 1], 12, -389564586);\r\n c = FF(c, d, a, b, m[i+ 2], 17, 606105819);\r\n b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);\r\n a = FF(a, b, c, d, m[i+ 4], 7, -176418897);\r\n d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);\r\n c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);\r\n b = FF(b, c, d, a, m[i+ 7], 22, -45705983);\r\n a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);\r\n d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);\r\n c = FF(c, d, a, b, m[i+10], 17, -42063);\r\n b = FF(b, c, d, a, m[i+11], 22, -1990404162);\r\n a = FF(a, b, c, d, m[i+12], 7, 1804603682);\r\n d = FF(d, a, b, c, m[i+13], 12, -40341101);\r\n c = FF(c, d, a, b, m[i+14], 17, -1502002290);\r\n b = FF(b, c, d, a, m[i+15], 22, 1236535329);\r\n\r\n a = GG(a, b, c, d, m[i+ 1], 5, -165796510);\r\n d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);\r\n c = GG(c, d, a, b, m[i+11], 14, 643717713);\r\n b = GG(b, c, d, a, m[i+ 0], 20, -373897302);\r\n a = GG(a, b, c, d, m[i+ 5], 5, -701558691);\r\n d = GG(d, a, b, c, m[i+10], 9, 38016083);\r\n c = GG(c, d, a, b, m[i+15], 14, -660478335);\r\n b = GG(b, c, d, a, m[i+ 4], 20, -405537848);\r\n a = GG(a, b, c, d, m[i+ 9], 5, 568446438);\r\n d = GG(d, a, b, c, m[i+14], 9, -1019803690);\r\n c = GG(c, d, a, b, m[i+ 3], 14, -187363961);\r\n b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);\r\n a = GG(a, b, c, d, m[i+13], 5, -1444681467);\r\n d = GG(d, a, b, c, m[i+ 2], 9, -51403784);\r\n c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);\r\n b = GG(b, c, d, a, m[i+12], 20, -1926607734);\r\n\r\n a = HH(a, b, c, d, m[i+ 5], 4, -378558);\r\n d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);\r\n c = HH(c, d, a, b, m[i+11], 16, 1839030562);\r\n b = HH(b, c, d, a, m[i+14], 23, -35309556);\r\n a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);\r\n d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);\r\n c = HH(c, d, a, b, m[i+ 7], 16, -155497632);\r\n b = HH(b, c, d, a, m[i+10], 23, -1094730640);\r\n a = HH(a, b, c, d, m[i+13], 4, 681279174);\r\n d = HH(d, a, b, c, m[i+ 0], 11, -358537222);\r\n c = HH(c, d, a, b, m[i+ 3], 16, -722521979);\r\n b = HH(b, c, d, a, m[i+ 6], 23, 76029189);\r\n a = HH(a, b, c, d, m[i+ 9], 4, -640364487);\r\n d = HH(d, a, b, c, m[i+12], 11, -421815835);\r\n c = HH(c, d, a, b, m[i+15], 16, 530742520);\r\n b = HH(b, c, d, a, m[i+ 2], 23, -995338651);\r\n\r\n a = II(a, b, c, d, m[i+ 0], 6, -198630844);\r\n d = II(d, a, b, c, m[i+ 7], 10, 1126891415);\r\n c = II(c, d, a, b, m[i+14], 15, -1416354905);\r\n b = II(b, c, d, a, m[i+ 5], 21, -57434055);\r\n a = II(a, b, c, d, m[i+12], 6, 1700485571);\r\n d = II(d, a, b, c, m[i+ 3], 10, -1894986606);\r\n c = II(c, d, a, b, m[i+10], 15, -1051523);\r\n b = II(b, c, d, a, m[i+ 1], 21, -2054922799);\r\n a = II(a, b, c, d, m[i+ 8], 6, 1873313359);\r\n d = II(d, a, b, c, m[i+15], 10, -30611744);\r\n c = II(c, d, a, b, m[i+ 6], 15, -1560198380);\r\n b = II(b, c, d, a, m[i+13], 21, 1309151649);\r\n a = II(a, b, c, d, m[i+ 4], 6, -145523070);\r\n d = II(d, a, b, c, m[i+11], 10, -1120210379);\r\n c = II(c, d, a, b, m[i+ 2], 15, 718787259);\r\n b = II(b, c, d, a, m[i+ 9], 21, -343485551);\r\n\r\n a = (a + aa) >>> 0;\r\n b = (b + bb) >>> 0;\r\n c = (c + cc) >>> 0;\r\n d = (d + dd) >>> 0;\r\n }\r\n\r\n return crypt.endian([a, b, c, d]);\r\n };\r\n\r\n // Auxiliary functions\r\n md5._ff = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & c | ~b & d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._gg = function (a, b, c, d, x, s, t) {\r\n var n = a + (b & d | c & ~d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._hh = function (a, b, c, d, x, s, t) {\r\n var n = a + (b ^ c ^ d) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n md5._ii = function (a, b, c, d, x, s, t) {\r\n var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;\r\n return ((n << s) | (n >>> (32 - s))) + b;\r\n };\r\n\r\n // Package private blocksize\r\n md5._blocksize = 16;\r\n md5._digestsize = 16;\r\n\r\n module.exports = function (message, options) {\r\n if (message === undefined || message === null)\r\n throw new Error('Illegal argument ' + message);\r\n\r\n var digestbytes = crypt.wordsToBytes(md5(message, options));\r\n return options && options.asBytes ? digestbytes :\r\n options && options.asString ? bin.bytesToString(digestbytes) :\r\n crypt.bytesToHex(digestbytes);\r\n };\r\n\r\n})();\r\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport TextInputState from '../TextInputState';\n\nvar dismissKeyboard = function dismissKeyboard() {\n TextInputState.blurTextInput(TextInputState.currentlyFocusedField());\n};\n\nexport default dismissKeyboard;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport invariant from 'fbjs/lib/invariant';\nexport function get(name) {\n return null;\n}\nexport function getEnforcing(name) {\n var module = get(name);\n invariant(module != null, \"TurboModuleRegistry.getEnforcing(...): '\" + name + \"' could not be found. \" + 'Verify that a module by this name is registered in the native binary.');\n return module;\n}","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nimport Platform from '../../../exports/Platform';\nimport RCTDeviceEventEmitter from './RCTDeviceEventEmitter';\nimport invariant from 'fbjs/lib/invariant';\n\n/**\n * `NativeEventEmitter` is intended for use by Native Modules to emit events to\n * JavaScript listeners. If a `NativeModule` is supplied to the constructor, it\n * will be notified (via `addListener` and `removeListeners`) when the listener\n * count changes to manage \"native memory\".\n *\n * Currently, all native events are fired via a global `RCTDeviceEventEmitter`.\n * This means event names must be globally unique, and it means that call sites\n * can theoretically listen to `RCTDeviceEventEmitter` (although discouraged).\n */\nvar NativeEventEmitter = /*#__PURE__*/function () {\n function NativeEventEmitter(nativeModule) {\n if (Platform.OS === 'ios') {\n invariant(nativeModule != null, '`new NativeEventEmitter()` requires a non-null argument.');\n this._nativeModule = nativeModule;\n }\n }\n\n var _proto = NativeEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n var _this$_nativeModule,\n _this = this;\n\n (_this$_nativeModule = this._nativeModule) == null ? void 0 : _this$_nativeModule.addListener(eventType);\n var subscription = RCTDeviceEventEmitter.addListener(eventType, listener, context);\n return {\n remove: function remove() {\n if (subscription != null) {\n var _this$_nativeModule2;\n\n (_this$_nativeModule2 = _this._nativeModule) == null ? void 0 : _this$_nativeModule2.removeListeners(1); // $FlowFixMe[incompatible-use]\n\n subscription.remove();\n subscription = null;\n }\n }\n };\n }\n /**\n * @deprecated Use `remove` on the EventSubscription from `addListener`.\n */\n ;\n\n _proto.removeListener = function removeListener(eventType, listener) {\n var _this$_nativeModule3;\n\n (_this$_nativeModule3 = this._nativeModule) == null ? void 0 : _this$_nativeModule3.removeListeners(1); // NOTE: This will report a deprecation notice via `console.error`.\n // $FlowFixMe[prop-missing] - `removeListener` exists but is deprecated.\n\n RCTDeviceEventEmitter.removeListener(eventType, listener);\n };\n\n _proto.emit = function emit(eventType) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // Generally, `RCTDeviceEventEmitter` is directly invoked. But this is\n // included for completeness.\n RCTDeviceEventEmitter.emit.apply(RCTDeviceEventEmitter, [eventType].concat(args));\n };\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n var _this$_nativeModule4;\n\n invariant(eventType != null, '`NativeEventEmitter.removeAllListener()` requires a non-null argument.');\n (_this$_nativeModule4 = this._nativeModule) == null ? void 0 : _this$_nativeModule4.removeListeners(this.listenerCount(eventType));\n RCTDeviceEventEmitter.removeAllListeners(eventType);\n };\n\n _proto.listenerCount = function listenerCount(eventType) {\n return RCTDeviceEventEmitter.listenerCount(eventType);\n };\n\n return NativeEventEmitter;\n}();\n\nexport { NativeEventEmitter as default };","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","import * as React from 'react';\n\nconst contexts = '__react_navigation__elements_contexts';\n\ndeclare global {\n var __react_navigation__elements_contexts: Map>;\n}\n\n// We use a global variable to keep our contexts so that we can reuse same contexts across packages\nglobal[contexts] = global[contexts] ?? new Map>();\n\nexport default function getNamedContext(\n name: string,\n initialValue: T\n): React.Context {\n let context = global[contexts].get(name);\n\n if (context) {\n return context;\n }\n\n context = React.createContext(initialValue);\n context.displayName = name;\n\n global[contexts].set(name, context);\n\n return context;\n}\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport DefaultTheme from './DefaultTheme';\n\nconst ThemeContext = React.createContext(DefaultTheme);\n\nThemeContext.displayName = 'ThemeContext';\n\nexport default ThemeContext;\n","import type { Theme } from '../types';\n\nconst DefaultTheme: Theme = {\n dark: false,\n colors: {\n primary: 'rgb(0, 122, 255)',\n background: 'rgb(242, 242, 242)',\n card: 'rgb(255, 255, 255)',\n text: 'rgb(28, 28, 30)',\n border: 'rgb(216, 216, 216)',\n notification: 'rgb(255, 59, 48)',\n },\n};\n\nexport default DefaultTheme;\n","import invariant from 'invariant';\nimport { NativeEventEmitter, Platform } from 'react-native';\n\nconst nativeEmitterSubscriptionKey = '@@nativeEmitterSubscription@@';\n\ntype NativeModule = {\n startObserving?: () => void;\n stopObserving?: () => void;\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n};\n\n// @needsAudit\nexport type Subscription = {\n /**\n * A method to unsubscribe the listener.\n */\n remove: () => void;\n};\n\nexport class EventEmitter {\n _listenerCount = 0;\n _nativeModule: NativeModule;\n _eventEmitter: NativeEventEmitter;\n\n constructor(nativeModule: NativeModule) {\n this._nativeModule = nativeModule;\n this._eventEmitter = new NativeEventEmitter(nativeModule as any);\n }\n\n addListener(eventName: string, listener: (event: T) => void): Subscription {\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.startObserving) {\n this._nativeModule.startObserving();\n }\n\n this._listenerCount++;\n const nativeEmitterSubscription = this._eventEmitter.addListener(eventName, listener);\n const subscription = {\n [nativeEmitterSubscriptionKey]: nativeEmitterSubscription,\n remove: () => {\n this.removeSubscription(subscription);\n },\n };\n return subscription;\n }\n\n removeAllListeners(eventName: string): void {\n // @ts-ignore: the EventEmitter interface has been changed in react-native@0.64.0\n const removedListenerCount = this._eventEmitter.listenerCount\n ? // @ts-ignore: this is available since 0.64\n this._eventEmitter.listenerCount(eventName)\n : // @ts-ignore: this is available in older versions\n this._eventEmitter.listeners(eventName).length;\n this._eventEmitter.removeAllListeners(eventName);\n this._listenerCount -= removedListenerCount;\n invariant(\n this._listenerCount >= 0,\n `EventEmitter must have a non-negative number of listeners`\n );\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n removeSubscription(subscription: Subscription): void {\n const nativeEmitterSubscription = subscription[nativeEmitterSubscriptionKey];\n if (!nativeEmitterSubscription) {\n return;\n }\n\n if ('remove' in nativeEmitterSubscription) {\n // `react-native-web@0.17.1` doesn't support `removeSubscription`\n nativeEmitterSubscription.remove();\n } else if ('removeSubscription' in this._eventEmitter) {\n this._eventEmitter.removeSubscription(nativeEmitterSubscription!);\n }\n this._listenerCount--;\n\n // Ensure that the emitter's internal state remains correct even if `removeSubscription` is\n // called again with the same subscription\n delete subscription[nativeEmitterSubscriptionKey];\n\n // Release closed-over references to the emitter\n subscription.remove = () => {};\n\n if (!this._listenerCount && Platform.OS !== 'ios' && this._nativeModule.stopObserving) {\n this._nativeModule.stopObserving();\n }\n }\n\n emit(eventName: string, ...params: any[]): void {\n this._eventEmitter.emit(eventName, ...params);\n }\n}\n","declare global {\n // Add IE-specific interface to Window\n interface Window {\n attachEvent(event: string, listener: EventListener): boolean;\n }\n}\n\n// Used for delegating node actions when browser APIs aren't available\n// like in SSR websites.\nexport const isDOMAvailable = typeof window !== 'undefined' && !!window.document?.createElement;\nexport const canUseEventListeners =\n isDOMAvailable && !!(window.addEventListener || window.attachEvent);\nexport const canUseViewport = isDOMAvailable && !!window.screen;\nexport const isAsyncDebugging = false;\n","import { Platform as ReactNativePlatform, PlatformOSType } from 'react-native';\n\nimport {\n isDOMAvailable,\n canUseEventListeners,\n canUseViewport,\n isAsyncDebugging,\n} from './environment/browser';\n\nexport type PlatformSelectOSType = PlatformOSType | 'native' | 'electron' | 'default';\n\nexport type PlatformSelect = (specifics: { [platform in PlatformSelectOSType]?: T }) => T;\n\nconst Platform = {\n /**\n * Denotes the currently running platform.\n * Can be one of ios, android, web.\n */\n OS: ReactNativePlatform.OS,\n /**\n * Returns the value with the matching platform.\n * Object keys can be any of ios, android, native, web, default.\n *\n * @ios ios, native, default\n * @android android, native, default\n * @web web, default\n */\n select: ReactNativePlatform.select as PlatformSelect,\n /**\n * Denotes if the DOM API is available in the current environment.\n * The DOM is not available in native React runtimes and Node.js.\n */\n isDOMAvailable,\n /**\n * Denotes if the current environment can attach event listeners\n * to the window. This will return false in native React\n * runtimes and Node.js.\n */\n canUseEventListeners,\n /**\n * Denotes if the current environment can inspect properties of the\n * screen on which the current window is being rendered. This will\n * return false in native React runtimes and Node.js.\n */\n canUseViewport,\n /**\n * If the JavaScript is being executed in a remote JavaScript environment.\n * When `true`, synchronous native invocations cannot be executed.\n */\n isAsyncDebugging,\n};\n\nexport default Platform;\n","/**\n * A general error class that should be used for all errors in Expo modules.\n * Guarantees a `code` field that can be used to differentiate between different\n * types of errors without further subclassing Error.\n */\nexport class CodedError extends Error {\n code: string;\n info?: any;\n\n constructor(code: string, message: string) {\n super(message);\n this.code = code;\n }\n}\n","import Platform from '../Platform';\nimport { CodedError } from './CodedError';\n\n/**\n * A class for errors to be thrown when a property is accessed which is\n * unavailable, unsupported, or not currently implemented on the running\n * platform.\n */\nexport class UnavailabilityError extends CodedError {\n constructor(moduleName: string, propertyName: string) {\n super(\n 'ERR_UNAVAILABLE',\n `The method or property ${moduleName}.${propertyName} is not available on ${Platform.OS}, are you sure you've linked all the native dependencies properly?`\n );\n }\n}\n","export enum PermissionStatus {\n GRANTED = 'granted',\n UNDETERMINED = 'undetermined',\n DENIED = 'denied',\n}\n\nexport type PermissionExpiration = 'never' | number;\n\nexport interface PermissionResponse {\n status: PermissionStatus;\n expires: PermissionExpiration;\n granted: boolean;\n canAskAgain: boolean;\n}\n","import { DeviceEventEmitter } from 'react-native';\n\nimport { EventEmitter, Subscription } from './EventEmitter';\nimport NativeModulesProxy from './NativeModulesProxy';\nimport { ProxyNativeModule } from './NativeModulesProxy.types';\nimport { requireNativeViewManager } from './NativeViewManagerAdapter';\nimport Platform from './Platform';\nimport SyntheticPlatformEmitter from './SyntheticPlatformEmitter';\nimport { CodedError } from './errors/CodedError';\nimport { UnavailabilityError } from './errors/UnavailabilityError';\n\nexport { default as deprecate } from './deprecate';\n\nexport {\n DeviceEventEmitter,\n EventEmitter,\n NativeModulesProxy,\n ProxyNativeModule,\n Platform,\n Subscription,\n SyntheticPlatformEmitter,\n requireNativeViewManager,\n // Errors\n CodedError,\n UnavailabilityError,\n};\n\n/**\n * @deprecated renamed to `DeviceEventEmitter`\n */\nexport const RCTDeviceEventEmitter = DeviceEventEmitter;\n\nexport * from './PermissionsInterface';\nexport * from './PermissionsHook';\n","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nvar isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nexport default isWebColor;","/**\n * Copyright (c) Nicolas Gallagher.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nimport isWebColor from '../isWebColor';\nimport processColor from '../../exports/processColor';\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport mergeOptions from 'merge-options';\n\nconst merge = mergeOptions.bind({\n concatArrays: true,\n ignoreUndefined: true,\n});\n\nconst mergeLocalStorageItem = (key, value) => {\n const oldValue = window.localStorage.getItem(key);\n const oldObject = JSON.parse(oldValue);\n const newObject = JSON.parse(value);\n const nextValue = JSON.stringify(merge(oldObject, newObject));\n window.localStorage.setItem(key, nextValue);\n};\n\nconst createPromise = (getValue, callback): Promise<*> => {\n return new Promise((resolve, reject) => {\n try {\n const value = getValue();\n if (callback) {\n callback(null, value);\n }\n resolve(value);\n } catch (err) {\n if (callback) {\n callback(err);\n }\n reject(err);\n }\n });\n};\n\nconst createPromiseAll = (promises, callback, processResult): Promise<*> => {\n return Promise.all(promises).then(\n result => {\n const value = processResult ? processResult(result) : null;\n callback && callback(null, value);\n return Promise.resolve(value);\n },\n errors => {\n callback && callback(errors);\n return Promise.reject(errors);\n }\n );\n};\n\nexport default class AsyncStorage {\n\n /**\n * Fetches `key` value.\n */\n static getItem(key: string, callback?: Function): Promise<*> {\n return createPromise(() => {\n return window.localStorage.getItem(key);\n }, callback);\n }\n\n /**\n * Sets `value` for `key`.\n */\n static setItem(key: string, value: string, callback?: Function): Promise<*> {\n return createPromise(() => {\n window.localStorage.setItem(key, value);\n }, callback);\n }\n\n /**\n * Removes a `key`\n */\n static removeItem(key: string, callback?: Function): Promise<*> {\n return createPromise(() => {\n return window.localStorage.removeItem(key);\n }, callback);\n }\n\n /**\n * Merges existing value with input value, assuming they are stringified JSON.\n */\n static mergeItem(key: string, value: string, callback?: Function): Promise<*> {\n return createPromise(() => {\n mergeLocalStorageItem(key, value);\n }, callback);\n }\n\n /**\n * Erases *all* AsyncStorage for the domain.\n */\n static clear(callback?: Function): Promise<*> {\n return createPromise(() => {\n window.localStorage.clear();\n }, callback);\n }\n\n /**\n * Gets *all* keys known to the app, for all callers, libraries, etc.\n */\n static getAllKeys(callback?: Function): Promise<*> {\n return createPromise(() => {\n const numberOfKeys = window.localStorage.length;\n const keys = [];\n for (let i = 0; i < numberOfKeys; i += 1) {\n const key = window.localStorage.key(i);\n keys.push(key);\n }\n return keys;\n }, callback);\n }\n\n /**\n * (stub) Flushes any pending requests using a single batch call to get the data.\n */\n static flushGetRequests() {}\n\n /**\n * multiGet resolves to an array of key-value pair arrays that matches the\n * input format of multiSet.\n *\n * multiGet(['k1', 'k2']) -> [['k1', 'val1'], ['k2', 'val2']]\n */\n static multiGet(keys: Array, callback?: Function): Promise<*> {\n const promises = keys.map(key => AsyncStorage.getItem(key));\n const processResult = result => result.map((value, i) => [keys[i], value]);\n return createPromiseAll(promises, callback, processResult);\n }\n\n /**\n * Takes an array of key-value array pairs.\n * multiSet([['k1', 'val1'], ['k2', 'val2']])\n */\n static multiSet(keyValuePairs: Array>, callback?: Function): Promise<*> {\n const promises = keyValuePairs.map(item => AsyncStorage.setItem(item[0], item[1]));\n return createPromiseAll(promises, callback);\n }\n\n /**\n * Delete all the keys in the `keys` array.\n */\n static multiRemove(keys: Array, callback?: Function): Promise<*> {\n const promises = keys.map(key => AsyncStorage.removeItem(key));\n return createPromiseAll(promises, callback);\n }\n\n /**\n * Takes an array of key-value array pairs and merges them with existing\n * values, assuming they are stringified JSON.\n *\n * multiMerge([['k1', 'val1'], ['k2', 'val2']])\n */\n static multiMerge(keyValuePairs: Array>, callback?: Function): Promise<*> {\n const promises = keyValuePairs.map(item => AsyncStorage.mergeItem(item[0], item[1]));\n return createPromiseAll(promises, callback);\n }\n}\n","/**\n * @format\n * @flow\n */\n\nimport AsyncStorage from './AsyncStorage';\n\nexport default AsyncStorage;\nexport {useAsyncStorage} from './hooks';\n","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n'use strict';\n\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar SpringAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(SpringAnimation, _Animation);\n\n function SpringAnimation(config) {\n var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n _this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n _this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n _this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n _this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n _this._toValue = config.toValue;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n var _config$stiffness, _config$damping, _config$mass;\n\n invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n _this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n _this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n _this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n } else if (config.bounciness !== undefined || config.speed !== undefined) {\n var _config$bounciness, _config$speed;\n\n // Convert the origami bounciness/speed values to stiffness/damping\n // We assume mass is 1.\n invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n _this._stiffness = springConfig.stiffness;\n _this._damping = springConfig.damping;\n _this._mass = 1;\n } else {\n var _config$tension, _config$friction;\n\n // Convert the origami tension/friction values to stiffness/damping\n // We assume mass is 1.\n var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n _this._stiffness = _springConfig.stiffness;\n _this._damping = _springConfig.damping;\n _this._mass = 1;\n }\n\n invariant(_this._stiffness > 0, 'Stiffness value must be greater than 0');\n invariant(_this._damping > 0, 'Damping value must be greater than 0');\n invariant(_this._mass > 0, 'Mass value must be greater than 0');\n return _this;\n }\n\n var _proto = SpringAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var _this$_initialVelocit;\n\n return {\n type: 'spring',\n overshootClamping: this._overshootClamping,\n restDisplacementThreshold: this._restDisplacementThreshold,\n restSpeedThreshold: this._restSpeedThreshold,\n stiffness: this._stiffness,\n damping: this._damping,\n mass: this._mass,\n initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._startPosition = fromValue;\n this._lastPosition = this._startPosition;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._lastTime = Date.now();\n this._frameTime = 0.0;\n\n if (previousAnimation instanceof SpringAnimation) {\n var internalState = previousAnimation.getInternalState();\n this._lastPosition = internalState.lastPosition;\n this._lastVelocity = internalState.lastVelocity; // Set the initial velocity to the last velocity\n\n this._initialVelocity = this._lastVelocity;\n this._lastTime = internalState.lastTime;\n }\n\n var start = function start() {\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2.onUpdate();\n }\n }; // If this._delay is more than 0, we start after the timeout.\n\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.getInternalState = function getInternalState() {\n return {\n lastPosition: this._lastPosition,\n lastVelocity: this._lastVelocity,\n lastTime: this._lastTime\n };\n }\n /**\n * This spring model is based off of a damped harmonic oscillator\n * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n *\n * We use the closed form of the second order differential equation:\n *\n * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n *\n * where\n * ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n * ζ = c / 2√mk (damping ratio),\n * c = damping constant\n * k = stiffness\n * m = mass\n *\n * The derivation of the closed form is described in detail here:\n * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n *\n * This algorithm happens to match the algorithm used by CASpringAnimation,\n * a QuartzCore (iOS) API that creates spring animations.\n */\n ;\n\n _proto.onUpdate = function onUpdate() {\n // If for some reason we lost a lot of frames (e.g. process large payload or\n // stopped in the debugger), we only advance by 4 frames worth of\n // computation and will continue on the next frame. It's better to have it\n // running at faster speed than jumping to the end.\n var MAX_STEPS = 64;\n var now = Date.now();\n\n if (now > this._lastTime + MAX_STEPS) {\n now = this._lastTime + MAX_STEPS;\n }\n\n var deltaTime = (now - this._lastTime) / 1000;\n this._frameTime += deltaTime;\n var c = this._damping;\n var m = this._mass;\n var k = this._stiffness;\n var v0 = -this._initialVelocity;\n var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n\n var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n\n var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n\n var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n var position = 0.0;\n var velocity = 0.0;\n var t = this._frameTime;\n\n if (zeta < 1) {\n // Under damped\n var envelope = Math.exp(-zeta * omega0 * t);\n position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t)); // This looks crazy -- it's actually just the derivative of the\n // oscillation function\n\n velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n } else {\n // Critically damped\n var _envelope = Math.exp(-omega0 * t);\n\n position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n }\n\n this._lastTime = now;\n this._lastPosition = position;\n this._lastVelocity = velocity;\n\n this._onUpdate(position);\n\n if (!this.__active) {\n // a listener might have stopped us in _onUpdate\n return;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = false;\n\n if (this._overshootClamping && this._stiffness !== 0) {\n if (this._startPosition < this._toValue) {\n isOvershooting = position > this._toValue;\n } else {\n isOvershooting = position < this._toValue;\n }\n }\n\n var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n var isDisplacement = true;\n\n if (this._stiffness !== 0) {\n isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n }\n\n if (isOvershooting || isVelocity && isDisplacement) {\n if (this._stiffness !== 0) {\n // Ensure that we end up with a round value\n this._lastPosition = this._toValue;\n this._lastVelocity = 0;\n\n this._onUpdate(this._toValue);\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return SpringAnimation;\n}(Animation);\n\nexport default SpringAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n * \n */\n'use strict';\n\nfunction stiffnessFromOrigamiValue(oValue) {\n return (oValue - 30) * 3.62 + 194;\n}\n\nfunction dampingFromOrigamiValue(oValue) {\n return (oValue - 8) * 3 + 25;\n}\n\nfunction fromOrigamiTensionAndFriction(tension, friction) {\n return {\n stiffness: stiffnessFromOrigamiValue(tension),\n damping: dampingFromOrigamiValue(friction)\n };\n}\n\nfunction fromBouncinessAndSpeed(bounciness, speed) {\n function normalize(value, startValue, endValue) {\n return (value - startValue) / (endValue - startValue);\n }\n\n function projectNormal(n, start, end) {\n return start + n * (end - start);\n }\n\n function linearInterpolation(t, start, end) {\n return t * end + (1 - t) * start;\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(2 * t - t * t, start, end);\n }\n\n function b3Friction1(x) {\n return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;\n }\n\n function b3Friction2(x) {\n return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;\n }\n\n function b3Friction3(x) {\n return 0.00000045 * Math.pow(x, 3) - 0.000332 * Math.pow(x, 2) + 0.1078 * x + 5.84;\n }\n\n function b3Nobounce(tension) {\n if (tension <= 18) {\n return b3Friction1(tension);\n } else if (tension > 18 && tension <= 44) {\n return b3Friction2(tension);\n } else {\n return b3Friction3(tension);\n }\n }\n\n var b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n var s = normalize(speed / 1.7, 0, 20);\n var bouncyTension = projectNormal(s, 0.5, 200);\n var bouncyFriction = quadraticOutInterpolation(b, b3Nobounce(bouncyTension), 0.01);\n return {\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction)\n };\n}\n\nexport default {\n fromOrigamiTensionAndFriction: fromOrigamiTensionAndFriction,\n fromBouncinessAndSpeed: fromBouncinessAndSpeed\n};","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\nimport Easing from '../../../../exports/Easing';\n\nvar _easeInOut;\n\nfunction easeInOut() {\n if (!_easeInOut) {\n _easeInOut = Easing.inOut(Easing.ease);\n }\n\n return _easeInOut;\n}\n\nvar TimingAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(TimingAnimation, _Animation);\n\n function TimingAnimation(config) {\n var _config$easing, _config$duration, _config$delay, _config$iterations, _config$isInteraction;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._toValue = config.toValue;\n _this._easing = (_config$easing = config.easing) !== null && _config$easing !== void 0 ? _config$easing : easeInOut();\n _this._duration = (_config$duration = config.duration) !== null && _config$duration !== void 0 ? _config$duration : 500;\n _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n return _this;\n }\n\n var _proto = TimingAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n var frameDuration = 1000.0 / 60.0;\n var frames = [];\n var numFrames = Math.round(this._duration / frameDuration);\n\n for (var frame = 0; frame < numFrames; frame++) {\n frames.push(this._easing(frame / numFrames));\n }\n\n frames.push(this._easing(1));\n return {\n type: 'frames',\n frames: frames,\n toValue: this._toValue,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n var _this2 = this;\n\n this.__active = true;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n\n var start = function start() {\n // Animations that sometimes have 0 duration and sometimes do not\n // still need to use the native driver when duration is 0 so as to\n // not cause intermixed JS and native animations.\n if (_this2._duration === 0 && !_this2._useNativeDriver) {\n _this2._onUpdate(_this2._toValue);\n\n _this2.__debouncedOnEnd({\n finished: true\n });\n } else {\n _this2._startTime = Date.now();\n\n if (_this2._useNativeDriver) {\n _this2.__startNativeAnimation(animatedValue);\n } else {\n _this2._animationFrame = requestAnimationFrame(_this2.onUpdate.bind(_this2));\n }\n }\n };\n\n if (this._delay) {\n this._timeout = setTimeout(start, this._delay);\n } else {\n start();\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n\n if (now >= this._startTime + this._duration) {\n if (this._duration === 0) {\n this._onUpdate(this._toValue);\n } else {\n this._onUpdate(this._fromValue + this._easing(1) * (this._toValue - this._fromValue));\n }\n\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._onUpdate(this._fromValue + this._easing((now - this._startTime) / this._duration) * (this._toValue - this._fromValue));\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n clearTimeout(this._timeout);\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return TimingAnimation;\n}(Animation);\n\nexport default TimingAnimation;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","var charenc = {\n // UTF-8 encoding\n utf8: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));\n }\n },\n\n // Binary encoding\n bin: {\n // Convert a string to a byte array\n stringToBytes: function(str) {\n for (var bytes = [], i = 0; i < str.length; i++)\n bytes.push(str.charCodeAt(i) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a string\n bytesToString: function(bytes) {\n for (var str = [], i = 0; i < bytes.length; i++)\n str.push(String.fromCharCode(bytes[i]));\n return str.join('');\n }\n }\n};\n\nmodule.exports = charenc;\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nconst isOptionObject = require('is-plain-obj');\n\nconst {hasOwnProperty} = Object.prototype;\nconst {propertyIsEnumerable} = Object;\nconst defineProperty = (object, name, value) => Object.defineProperty(object, name, {\n\tvalue,\n\twritable: true,\n\tenumerable: true,\n\tconfigurable: true\n});\n\nconst globalThis = this;\nconst defaultMergeOptions = {\n\tconcatArrays: false,\n\tignoreUndefined: false\n};\n\nconst getEnumerableOwnPropertyKeys = value => {\n\tconst keys = [];\n\n\tfor (const key in value) {\n\t\tif (hasOwnProperty.call(value, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\n\t/* istanbul ignore else */\n\tif (Object.getOwnPropertySymbols) {\n\t\tconst symbols = Object.getOwnPropertySymbols(value);\n\n\t\tfor (const symbol of symbols) {\n\t\t\tif (propertyIsEnumerable.call(value, symbol)) {\n\t\t\t\tkeys.push(symbol);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn keys;\n};\n\nfunction clone(value) {\n\tif (Array.isArray(value)) {\n\t\treturn cloneArray(value);\n\t}\n\n\tif (isOptionObject(value)) {\n\t\treturn cloneOptionObject(value);\n\t}\n\n\treturn value;\n}\n\nfunction cloneArray(array) {\n\tconst result = array.slice(0, 0);\n\n\tgetEnumerableOwnPropertyKeys(array).forEach(key => {\n\t\tdefineProperty(result, key, clone(array[key]));\n\t});\n\n\treturn result;\n}\n\nfunction cloneOptionObject(object) {\n\tconst result = Object.getPrototypeOf(object) === null ? Object.create(null) : {};\n\n\tgetEnumerableOwnPropertyKeys(object).forEach(key => {\n\t\tdefineProperty(result, key, clone(object[key]));\n\t});\n\n\treturn result;\n}\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {string[]} keys keys to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nconst mergeKeys = (merged, source, keys, config) => {\n\tkeys.forEach(key => {\n\t\tif (typeof source[key] === 'undefined' && config.ignoreUndefined) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not recurse into prototype chain of merged\n\t\tif (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {\n\t\t\tdefineProperty(merged, key, merge(merged[key], source[key], config));\n\t\t} else {\n\t\t\tdefineProperty(merged, key, clone(source[key]));\n\t\t}\n\t});\n\n\treturn merged;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n *\n * see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)\n */\nconst concatArrays = (merged, source, config) => {\n\tlet result = merged.slice(0, 0);\n\tlet resultIndex = 0;\n\n\t[merged, source].forEach(array => {\n\t\tconst indices = [];\n\n\t\t// `result.concat(array)` with cloning\n\t\tfor (let k = 0; k < array.length; k++) {\n\t\t\tif (!hasOwnProperty.call(array, k)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tindices.push(String(k));\n\n\t\t\tif (array === merged) {\n\t\t\t\t// Already cloned\n\t\t\t\tdefineProperty(result, resultIndex++, array[k]);\n\t\t\t} else {\n\t\t\t\tdefineProperty(result, resultIndex++, clone(array[k]));\n\t\t\t}\n\t\t}\n\n\t\t// Merge non-index keys\n\t\tresult = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config);\n\t});\n\n\treturn result;\n};\n\n/**\n * @param {*} merged already cloned\n * @param {*} source something to merge\n * @param {Object} config Config Object\n * @returns {*} cloned Object\n */\nfunction merge(merged, source, config) {\n\tif (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {\n\t\treturn concatArrays(merged, source, config);\n\t}\n\n\tif (!isOptionObject(source) || !isOptionObject(merged)) {\n\t\treturn clone(source);\n\t}\n\n\treturn mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config);\n}\n\nmodule.exports = function (...options) {\n\tconst config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions);\n\tlet merged = {_: {}};\n\n\tfor (const option of options) {\n\t\tif (option === undefined) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!isOptionObject(option)) {\n\t\t\tthrow new TypeError('`' + option + '` is not an Option Object');\n\t\t}\n\n\t\tmerged = merge(merged, {_: option}, config);\n\t}\n\n\treturn merged._;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n\n return function prefix(style) {\n for (var property in style) {\n var value = style[property];\n\n // handle nested objects\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value);\n // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n }\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap);\n\n // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip;\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#search=cross-fade\nvar prefixes = ['-webkit-', ''];\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-filter-function\nvar prefixes = ['-webkit-', ''];\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize'\n // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n};var flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\nvar logTag = 'inline-style-prefixer.flexboxIE plugin';\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n }\n // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n }\n\n if (typeof value === 'number' && value < 0) {\n // ignore negative values;\n console.warn(logTag + ': \"flex: ' + value + '\", negative values is not valid and will be ignored.');\n return;\n }\n\n if (!value.split) {\n console.warn(logTag + ': \"flex: ' + value + '\", value format is not detected, it will be remain as is');\n style.msFlex = value;\n return;\n }\n\n // The next thing we can look for is if there are multiple values.\n var flexValues = value.split(/\\s/);\n // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n return;\n default:\n style.msFlex = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\n\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = grid;\nfunction isSimplePositionValue(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction isComplexSpanValue(value) {\n return typeof value === 'string' && value.includes('/');\n}\n\nvar alignmentValues = ['center', 'end', 'start', 'stretch'];\n\nvar displayValues = {\n 'inline-grid': ['-ms-inline-grid', 'inline-grid'],\n grid: ['-ms-grid', 'grid']\n};\n\nvar propertyConverters = {\n alignSelf: function alignSelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridRowAlign = value;\n }\n },\n\n gridColumn: function gridColumn(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split = value.split('/'),\n _value$split2 = _slicedToArray(_value$split, 2),\n start = _value$split2[0],\n end = _value$split2[1];\n\n propertyConverters.gridColumnStart(+start, style);\n\n var _end$split = end.split(/ ?span /),\n _end$split2 = _slicedToArray(_end$split, 2),\n maybeSpan = _end$split2[0],\n maybeNumber = _end$split2[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridColumnEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridColumnEnd(+end, style);\n }\n } else {\n propertyConverters.gridColumnStart(value, style);\n }\n },\n\n gridColumnEnd: function gridColumnEnd(value, style) {\n var msGridColumn = style.msGridColumn;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridColumn)) {\n style.msGridColumnSpan = value - msGridColumn;\n }\n },\n\n gridColumnStart: function gridColumnStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridColumn = value;\n }\n },\n\n gridRow: function gridRow(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n } else if (isComplexSpanValue(value)) {\n var _value$split3 = value.split('/'),\n _value$split4 = _slicedToArray(_value$split3, 2),\n start = _value$split4[0],\n end = _value$split4[1];\n\n propertyConverters.gridRowStart(+start, style);\n\n var _end$split3 = end.split(/ ?span /),\n _end$split4 = _slicedToArray(_end$split3, 2),\n maybeSpan = _end$split4[0],\n maybeNumber = _end$split4[1];\n\n if (maybeSpan === '') {\n propertyConverters.gridRowEnd(+start + +maybeNumber, style);\n } else {\n propertyConverters.gridRowEnd(+end, style);\n }\n } else {\n propertyConverters.gridRowStart(value, style);\n }\n },\n\n gridRowEnd: function gridRowEnd(value, style) {\n var msGridRow = style.msGridRow;\n\n if (isSimplePositionValue(value) && isSimplePositionValue(msGridRow)) {\n style.msGridRowSpan = value - msGridRow;\n }\n },\n\n gridRowStart: function gridRowStart(value, style) {\n if (isSimplePositionValue(value)) {\n style.msGridRow = value;\n }\n },\n\n gridTemplateColumns: function gridTemplateColumns(value, style) {\n style.msGridColumns = value;\n },\n\n gridTemplateRows: function gridTemplateRows(value, style) {\n style.msGridRows = value;\n },\n\n justifySelf: function justifySelf(value, style) {\n if (alignmentValues.indexOf(value) > -1) {\n style.msGridColumnAlign = value;\n }\n }\n};\n\nfunction grid(property, value, style) {\n if (property === 'display' && value in displayValues) {\n return displayValues[value];\n }\n\n if (property in propertyConverters) {\n var propertyConverter = propertyConverters[property];\n propertyConverter(value, style);\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// http://caniuse.com/#feat=css-image-set\nvar prefixes = ['-webkit-', ''];\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = logical;\nvar alternativeProps = {\n marginBlockStart: ['WebkitMarginBefore'],\n marginBlockEnd: ['WebkitMarginAfter'],\n marginInlineStart: ['WebkitMarginStart', 'MozMarginStart'],\n marginInlineEnd: ['WebkitMarginEnd', 'MozMarginEnd'],\n paddingBlockStart: ['WebkitPaddingBefore'],\n paddingBlockEnd: ['WebkitPaddingAfter'],\n paddingInlineStart: ['WebkitPaddingStart', 'MozPaddingStart'],\n paddingInlineEnd: ['WebkitPaddingEnd', 'MozPaddingEnd'],\n borderBlockStart: ['WebkitBorderBefore'],\n borderBlockStartColor: ['WebkitBorderBeforeColor'],\n borderBlockStartStyle: ['WebkitBorderBeforeStyle'],\n borderBlockStartWidth: ['WebkitBorderBeforeWidth'],\n borderBlockEnd: ['WebkitBorderAfter'],\n borderBlockEndColor: ['WebkitBorderAfterColor'],\n borderBlockEndStyle: ['WebkitBorderAfterStyle'],\n borderBlockEndWidth: ['WebkitBorderAfterWidth'],\n borderInlineStart: ['WebkitBorderStart', 'MozBorderStart'],\n borderInlineStartColor: ['WebkitBorderStartColor', 'MozBorderStartColor'],\n borderInlineStartStyle: ['WebkitBorderStartStyle', 'MozBorderStartStyle'],\n borderInlineStartWidth: ['WebkitBorderStartWidth', 'MozBorderStartWidth'],\n borderInlineEnd: ['WebkitBorderEnd', 'MozBorderEnd'],\n borderInlineEndColor: ['WebkitBorderEndColor', 'MozBorderEndColor'],\n borderInlineEndStyle: ['WebkitBorderEndStyle', 'MozBorderEndStyle'],\n borderInlineEndWidth: ['WebkitBorderEndWidth', 'MozBorderEndWidth']\n};\n\nfunction logical(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n var alternativePropList = alternativeProps[property];\n for (var i = 0, len = alternativePropList.length; i < len; ++i) {\n style[alternativePropList[i]] = value;\n }\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\n\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\n\n\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n }\n\n // only split multi values, not cubic beziers\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap);\n // if the property is already prefixed\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\n }\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedTurboModule');","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\nimport * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';\nexport default TurboModuleRegistry.get('NativeAnimatedModule');","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport Animation from './Animation';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar DecayAnimation = /*#__PURE__*/function (_Animation) {\n _inheritsLoose(DecayAnimation, _Animation);\n\n function DecayAnimation(config) {\n var _config$deceleration, _config$isInteraction, _config$iterations;\n\n var _this;\n\n _this = _Animation.call(this) || this;\n _this._deceleration = (_config$deceleration = config.deceleration) !== null && _config$deceleration !== void 0 ? _config$deceleration : 0.998;\n _this._velocity = config.velocity;\n _this._useNativeDriver = shouldUseNativeDriver(config);\n _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n return _this;\n }\n\n var _proto = DecayAnimation.prototype;\n\n _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n return {\n type: 'decay',\n deceleration: this._deceleration,\n velocity: this._velocity,\n iterations: this.__iterations\n };\n };\n\n _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n this.__active = true;\n this._lastValue = fromValue;\n this._fromValue = fromValue;\n this._onUpdate = onUpdate;\n this.__onEnd = onEnd;\n this._startTime = Date.now();\n\n if (this._useNativeDriver) {\n this.__startNativeAnimation(animatedValue);\n } else {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.onUpdate = function onUpdate() {\n var now = Date.now();\n var value = this._fromValue + this._velocity / (1 - this._deceleration) * (1 - Math.exp(-(1 - this._deceleration) * (now - this._startTime)));\n\n this._onUpdate(value);\n\n if (Math.abs(this._lastValue - value) < 0.1) {\n this.__debouncedOnEnd({\n finished: true\n });\n\n return;\n }\n\n this._lastValue = value;\n\n if (this.__active) {\n this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n }\n };\n\n _proto.stop = function stop() {\n _Animation.prototype.stop.call(this);\n\n this.__active = false;\n global.cancelAnimationFrame(this._animationFrame);\n\n this.__debouncedOnEnd({\n finished: false\n });\n };\n\n return DecayAnimation;\n}(Animation);\n\nexport default DecayAnimation;","/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Info = function Info() {\n this.any_blank_count = 0;\n this.any_blank_ms = 0;\n this.any_blank_speed_sum = 0;\n this.mostly_blank_count = 0;\n this.mostly_blank_ms = 0;\n this.pixels_blank = 0;\n this.pixels_sampled = 0;\n this.pixels_scrolled = 0;\n this.total_time_spent = 0;\n this.sample_count = 0;\n};\n\nvar DEBUG = false;\nvar _listeners = [];\nvar _minSampleCount = 10;\n\nvar _sampleRate = DEBUG ? 1 : null;\n/**\n * A helper class for detecting when the maximem fill rate of `VirtualizedList` is exceeded.\n * By default the sampling rate is set to zero and this will do nothing. If you want to collect\n * samples (e.g. to log them), make sure to call `FillRateHelper.setSampleRate(0.0-1.0)`.\n *\n * Listeners and sample rate are global for all `VirtualizedList`s - typical usage will combine with\n * `SceneTracker.getActiveScene` to determine the context of the events.\n */\n\n\nvar FillRateHelper = /*#__PURE__*/function () {\n FillRateHelper.addListener = function addListener(callback) {\n if (_sampleRate === null) {\n console.warn('Call `FillRateHelper.setSampleRate` before `addListener`.');\n }\n\n _listeners.push(callback);\n\n return {\n remove: function remove() {\n _listeners = _listeners.filter(function (listener) {\n return callback !== listener;\n });\n }\n };\n };\n\n FillRateHelper.setSampleRate = function setSampleRate(sampleRate) {\n _sampleRate = sampleRate;\n };\n\n FillRateHelper.setMinSampleCount = function setMinSampleCount(minSampleCount) {\n _minSampleCount = minSampleCount;\n };\n\n function FillRateHelper(getFrameMetrics) {\n this._anyBlankStartTime = null;\n this._enabled = false;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n this._getFrameMetrics = getFrameMetrics;\n this._enabled = (_sampleRate || 0) > Math.random();\n\n this._resetData();\n }\n\n var _proto = FillRateHelper.prototype;\n\n _proto.activate = function activate() {\n if (this._enabled && this._samplesStartTime == null) {\n DEBUG && console.debug('FillRateHelper: activate');\n this._samplesStartTime = global.performance.now();\n }\n };\n\n _proto.deactivateAndFlush = function deactivateAndFlush() {\n if (!this._enabled) {\n return;\n }\n\n var start = this._samplesStartTime; // const for flow\n\n if (start == null) {\n DEBUG && console.debug('FillRateHelper: bail on deactivate with no start time');\n return;\n }\n\n if (this._info.sample_count < _minSampleCount) {\n // Don't bother with under-sampled events.\n this._resetData();\n\n return;\n }\n\n var total_time_spent = global.performance.now() - start;\n\n var info = _objectSpread(_objectSpread({}, this._info), {}, {\n total_time_spent: total_time_spent\n });\n\n if (DEBUG) {\n var derived = {\n avg_blankness: this._info.pixels_blank / this._info.pixels_sampled,\n avg_speed: this._info.pixels_scrolled / (total_time_spent / 1000),\n avg_speed_when_any_blank: this._info.any_blank_speed_sum / this._info.any_blank_count,\n any_blank_per_min: this._info.any_blank_count / (total_time_spent / 1000 / 60),\n any_blank_time_frac: this._info.any_blank_ms / total_time_spent,\n mostly_blank_per_min: this._info.mostly_blank_count / (total_time_spent / 1000 / 60),\n mostly_blank_time_frac: this._info.mostly_blank_ms / total_time_spent\n };\n\n for (var key in derived) {\n derived[key] = Math.round(1000 * derived[key]) / 1000;\n }\n\n console.debug('FillRateHelper deactivateAndFlush: ', {\n derived: derived,\n info: info\n });\n }\n\n _listeners.forEach(function (listener) {\n return listener(info);\n });\n\n this._resetData();\n };\n\n _proto.computeBlankness = function computeBlankness(props, state, scrollMetrics) {\n if (!this._enabled || props.getItemCount(props.data) === 0 || this._samplesStartTime == null) {\n return 0;\n }\n\n var dOffset = scrollMetrics.dOffset,\n offset = scrollMetrics.offset,\n velocity = scrollMetrics.velocity,\n visibleLength = scrollMetrics.visibleLength; // Denominator metrics that we track for all events - most of the time there is no blankness and\n // we want to capture that.\n\n this._info.sample_count++;\n this._info.pixels_sampled += Math.round(visibleLength);\n this._info.pixels_scrolled += Math.round(Math.abs(dOffset));\n var scrollSpeed = Math.round(Math.abs(velocity) * 1000); // px / sec\n // Whether blank now or not, record the elapsed time blank if we were blank last time.\n\n var now = global.performance.now();\n\n if (this._anyBlankStartTime != null) {\n this._info.any_blank_ms += now - this._anyBlankStartTime;\n }\n\n this._anyBlankStartTime = null;\n\n if (this._mostlyBlankStartTime != null) {\n this._info.mostly_blank_ms += now - this._mostlyBlankStartTime;\n }\n\n this._mostlyBlankStartTime = null;\n var blankTop = 0;\n var first = state.first;\n\n var firstFrame = this._getFrameMetrics(first);\n\n while (first <= state.last && (!firstFrame || !firstFrame.inLayout)) {\n firstFrame = this._getFrameMetrics(first);\n first++;\n } // Only count blankTop if we aren't rendering the first item, otherwise we will count the header\n // as blank.\n\n\n if (firstFrame && first > 0) {\n blankTop = Math.min(visibleLength, Math.max(0, firstFrame.offset - offset));\n }\n\n var blankBottom = 0;\n var last = state.last;\n\n var lastFrame = this._getFrameMetrics(last);\n\n while (last >= state.first && (!lastFrame || !lastFrame.inLayout)) {\n lastFrame = this._getFrameMetrics(last);\n last--;\n } // Only count blankBottom if we aren't rendering the last item, otherwise we will count the\n // footer as blank.\n\n\n if (lastFrame && last < props.getItemCount(props.data) - 1) {\n var bottomEdge = lastFrame.offset + lastFrame.length;\n blankBottom = Math.min(visibleLength, Math.max(0, offset + visibleLength - bottomEdge));\n }\n\n var pixels_blank = Math.round(blankTop + blankBottom);\n var blankness = pixels_blank / visibleLength;\n\n if (blankness > 0) {\n this._anyBlankStartTime = now;\n this._info.any_blank_speed_sum += scrollSpeed;\n this._info.any_blank_count++;\n this._info.pixels_blank += pixels_blank;\n\n if (blankness > 0.5) {\n this._mostlyBlankStartTime = now;\n this._info.mostly_blank_count++;\n }\n } else if (scrollSpeed < 0.01 || Math.abs(dOffset) < 1) {\n this.deactivateAndFlush();\n }\n\n return blankness;\n };\n\n _proto.enabled = function enabled() {\n return this._enabled;\n };\n\n _proto._resetData = function _resetData() {\n this._anyBlankStartTime = null;\n this._info = new Info();\n this._mostlyBlankStartTime = null;\n this._samplesStartTime = null;\n };\n\n return FillRateHelper;\n}();\n\nexport default FillRateHelper;","'use strict';\nmodule.exports = function (arr, predicate, ctx) {\n\tif (typeof Array.prototype.findIndex === 'function') {\n\t\treturn arr.findIndex(predicate, ctx);\n\t}\n\n\tif (typeof predicate !== 'function') {\n\t\tthrow new TypeError('predicate must be a function');\n\t}\n\n\tvar list = Object(arr);\n\tvar len = list.length;\n\n\tif (len === 0) {\n\t\treturn -1;\n\t}\n\n\tfor (var i = 0; i < len; i++) {\n\t\tif (predicate.call(ctx, list[i], i, list)) {\n\t\t\treturn i;\n\t\t}\n\t}\n\n\treturn -1;\n};\n","'use strict';\n\nmodule.exports = string => {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a \\unnnn escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n};\n","import type {\n NavigationContainerRef,\n ParamListBase,\n} from '@react-navigation/core';\nimport * as React from 'react';\nimport { BackHandler } from 'react-native';\n\nexport default function useBackButton(\n ref: React.RefObject>\n) {\n React.useEffect(() => {\n const subscription = BackHandler.addEventListener(\n 'hardwareBackPress',\n () => {\n const navigation = ref.current;\n\n if (navigation == null) {\n return false;\n }\n\n if (navigation.canGoBack()) {\n navigation.goBack();\n\n return true;\n }\n\n return false;\n }\n );\n\n return () => subscription.remove();\n }, [ref]);\n}\n","import type {\n NavigationContainerRef,\n ParamListBase,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { DocumentTitleOptions } from './types';\n\n/**\n * Set the document title for the active screen\n */\nexport default function useDocumentTitle(\n ref: React.RefObject>,\n {\n enabled = true,\n formatter = (options, route) => options?.title ?? route?.name,\n }: DocumentTitleOptions = {}\n) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const navigation = ref.current;\n\n if (navigation) {\n const title = formatter(\n navigation.getCurrentOptions(),\n navigation.getCurrentRoute()\n );\n\n document.title = title;\n }\n\n return navigation?.addListener('options', (e) => {\n const title = formatter(e.data.options, navigation?.getCurrentRoute());\n\n document.title = title;\n });\n });\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import * as React from 'react';\n\nexport default function useThenable(create: () => PromiseLike) {\n const [promise] = React.useState(create);\n\n let initialState: [boolean, T | undefined] = [false, undefined];\n\n // Check if our thenable is synchronous\n promise.then((result) => {\n initialState = [true, result];\n });\n\n const [state, setState] = React.useState(initialState);\n const [resolved] = state;\n\n React.useEffect(() => {\n let cancelled = false;\n\n const resolve = async () => {\n let result;\n\n try {\n result = await promise;\n } finally {\n if (!cancelled) {\n setState([true, result]);\n }\n }\n };\n\n if (!resolved) {\n resolve();\n }\n\n return () => {\n cancelled = true;\n };\n }, [promise, resolved]);\n\n return state;\n}\n","import type { ParamListBase } from '@react-navigation/core';\nimport * as React from 'react';\n\nimport type { LinkingOptions } from './types';\n\nconst LinkingContext = React.createContext<{\n options: LinkingOptions | undefined;\n}>({ options: undefined });\n\nLinkingContext.displayName = 'LinkingContext';\n\nexport default LinkingContext;\n","import * as React from 'react';\n\nimport type { Theme } from '../types';\nimport ThemeContext from './ThemeContext';\n\ntype Props = {\n value: Theme;\n children: React.ReactNode;\n};\n\nexport default function ThemeProvider({ value, children }: Props) {\n return (\n {children}\n );\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError('Invalid operator type, expected string but got ' + typeof op);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","import * as React from 'react';\n\nexport type ServerContextType = {\n location?: {\n pathname: string;\n search: string;\n };\n};\n\nconst ServerContext = React.createContext(\n undefined\n);\n\nexport default ServerContext;\n","import {\n findFocusedRoute,\n getActionFromState as getActionFromStateDefault,\n getPathFromState as getPathFromStateDefault,\n getStateFromPath as getStateFromPathDefault,\n NavigationContainerRef,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport { nanoid } from 'nanoid/non-secure';\nimport * as React from 'react';\n\nimport ServerContext from './ServerContext';\nimport type { LinkingOptions } from './types';\n\ntype ResultState = ReturnType;\n\ntype HistoryRecord = {\n // Unique identifier for this record to match it with window.history.state\n id: string;\n // Navigation state object for the history entry\n state: NavigationState;\n // Path of the history entry\n path: string;\n};\n\nconst createMemoryHistory = () => {\n let index = 0;\n let items: HistoryRecord[] = [];\n\n // Pending callbacks for `history.go(n)`\n // We might modify the callback stored if it was interrupted, so we have a ref to identify it\n const pending: { ref: unknown; cb: (interrupted?: boolean) => void }[] = [];\n\n const interrupt = () => {\n // If another history operation was performed we need to interrupt existing ones\n // This makes sure that calls such as `history.replace` after `history.go` don't happen\n // Since otherwise it won't be correct if something else has changed\n pending.forEach((it) => {\n const cb = it.cb;\n it.cb = () => cb(true);\n });\n };\n\n const history = {\n get index(): number {\n // We store an id in the state instead of an index\n // Index could get out of sync with in-memory values if page reloads\n const id = window.history.state?.id;\n\n if (id) {\n const index = items.findIndex((item) => item.id === id);\n\n return index > -1 ? index : 0;\n }\n\n return 0;\n },\n\n get(index: number) {\n return items[index];\n },\n\n backIndex({ path }: { path: string }) {\n // We need to find the index from the element before current to get closest path to go back to\n for (let i = index - 1; i >= 0; i--) {\n const item = items[i];\n\n if (item.path === path) {\n return i;\n }\n }\n\n return -1;\n },\n\n push({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = nanoid();\n\n // When a new entry is pushed, all the existing entries after index will be inaccessible\n // So we remove any existing entries after the current index to clean them up\n items = items.slice(0, index + 1);\n\n items.push({ path, state, id });\n index = items.length - 1;\n\n // We pass empty string for title because it's ignored in all browsers except safari\n // We don't store state object in history.state because:\n // - browsers have limits on how big it can be, and we don't control the size\n // - while not recommended, there could be non-serializable data in state\n window.history.pushState({ id }, '', path);\n },\n\n replace({ path, state }: { path: string; state: NavigationState }) {\n interrupt();\n\n const id = window.history.state?.id ?? nanoid();\n\n if (!items.length || items.findIndex((item) => item.id === id) < 0) {\n // There are two scenarios for creating an array with only one history record:\n // - When loaded id not found in the items array, this function by default will replace\n // the first item. We need to keep only the new updated object, otherwise it will break\n // the page when navigating forward in history.\n // - This is the first time any state modifications are done\n // So we need to push the entry as there's nothing to replace\n items = [{ path, state, id }];\n index = 0;\n } else {\n items[index] = { path, state, id };\n }\n\n window.history.replaceState({ id }, '', path);\n },\n\n // `history.go(n)` is asynchronous, there are couple of things to keep in mind:\n // - it won't do anything if we can't go `n` steps, the `popstate` event won't fire.\n // - each `history.go(n)` call will trigger a separate `popstate` event with correct location.\n // - the `popstate` event fires before the next frame after calling `history.go(n)`.\n // This method differs from `history.go(n)` in the sense that it'll go back as many steps it can.\n go(n: number) {\n interrupt();\n\n if (n === 0) {\n return;\n }\n\n // We shouldn't go back more than the 0 index (otherwise we'll exit the page)\n // Or forward more than the available index (or the app will crash)\n index =\n n < 0 ? Math.max(index - n, 0) : Math.min(index + n, items.length - 1);\n\n // When we call `history.go`, `popstate` will fire when there's history to go back to\n // So we need to somehow handle following cases:\n // - There's history to go back, `history.go` is called, and `popstate` fires\n // - `history.go` is called multiple times, we need to resolve on respective `popstate`\n // - No history to go back, but `history.go` was called, browser has no API to detect it\n return new Promise((resolve, reject) => {\n const done = (interrupted?: boolean) => {\n clearTimeout(timer);\n\n if (interrupted) {\n reject(new Error('History was changed during navigation.'));\n return;\n }\n\n // There seems to be a bug in Chrome regarding updating the title\n // If we set a title just before calling `history.go`, the title gets lost\n // However the value of `document.title` is still what we set it to\n // It's just not displayed in the tab bar\n // To update the tab bar, we need to reset the title to something else first (e.g. '')\n // And set the title to what it was before so it gets applied\n // It won't work without setting it to empty string coz otherwise title isn't changing\n // Which means that the browser won't do anything after setting the title\n const { title } = window.document;\n\n window.document.title = '';\n window.document.title = title;\n\n resolve();\n };\n\n pending.push({ ref: done, cb: done });\n\n // If navigation didn't happen within 100ms, assume that it won't happen\n // This may not be accurate, but hopefully it won't take so much time\n // In Chrome, navigation seems to happen instantly in next microtask\n // But on Firefox, it seems to take much longer, around 50ms from our testing\n // We're using a hacky timeout since there doesn't seem to be way to know for sure\n const timer = setTimeout(() => {\n const index = pending.findIndex((it) => it.ref === done);\n\n if (index > -1) {\n pending[index].cb();\n pending.splice(index, 1);\n }\n }, 100);\n\n const onPopState = () => {\n const id = window.history.state?.id;\n const currentIndex = items.findIndex((item) => item.id === id);\n\n // Fix createMemoryHistory.index variable's value\n // as it may go out of sync when navigating in the browser.\n index = Math.max(currentIndex, 0);\n\n const last = pending.pop();\n\n window.removeEventListener('popstate', onPopState);\n last?.cb();\n };\n\n window.addEventListener('popstate', onPopState);\n window.history.go(n);\n });\n },\n\n // The `popstate` event is triggered when history changes, except `pushState` and `replaceState`\n // If we call `history.go(n)` ourselves, we don't want it to trigger the listener\n // Here we normalize it so that only external changes (e.g. user pressing back/forward) trigger the listener\n listen(listener: () => void) {\n const onPopState = () => {\n if (pending.length) {\n // This was triggered by `history.go(n)`, we shouldn't call the listener\n return;\n }\n\n listener();\n };\n\n window.addEventListener('popstate', onPopState);\n\n return () => window.removeEventListener('popstate', onPopState);\n },\n };\n\n return history;\n};\n\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = (\n a: T | undefined,\n b: T | undefined\n): [T | undefined, T | undefined] => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n\n const aChildState = aRoute.state as T | undefined;\n const bChildState = bRoute.state as T | undefined;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (\n aHistoryLength !== bHistoryLength ||\n aRoute.key !== bRoute.key ||\n aChildState === undefined ||\n bChildState === undefined ||\n aChildState.key !== bChildState.key\n ) {\n return [a, b];\n }\n\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nconst series = (cb: () => Promise) => {\n // Whether we're currently handling a callback\n let handling = false;\n let queue: (() => Promise)[] = [];\n\n const callback = async () => {\n try {\n if (handling) {\n // If we're currently handling a previous event, wait before handling this one\n // Add the callback to the beginning of the queue\n queue.unshift(callback);\n return;\n }\n\n handling = true;\n\n await cb();\n } finally {\n handling = false;\n\n if (queue.length) {\n // If we have queued items, handle the last one\n const last = queue.pop();\n\n last?.();\n }\n }\n };\n\n return callback;\n};\n\nlet linkingHandlers: Symbol[] = [];\n\ntype Options = LinkingOptions & {\n independent?: boolean;\n};\n\nexport default function useLinking(\n ref: React.RefObject>,\n {\n independent,\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault,\n }: Options\n) {\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n\n if (independent) {\n return undefined;\n }\n\n if (enabled !== false && linkingHandlers.length) {\n console.error(\n [\n 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',\n \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\",\n '- Only a single instance of the root component is rendered',\n ]\n .join('\\n')\n .trim()\n );\n }\n\n const handler = Symbol();\n\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n\n return () => {\n const index = linkingHandlers.indexOf(handler);\n\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n\n const server = React.useContext(ServerContext);\n\n const getInitialState = React.useCallback(() => {\n let value: ResultState | undefined;\n\n if (enabledRef.current) {\n const location =\n server?.location ??\n (typeof window !== 'undefined' ? window.location : undefined);\n\n const path = location ? location.pathname + location.search : undefined;\n\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n }\n\n const thenable = {\n then(onfulfilled?: (state: ResultState | undefined) => void) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n },\n };\n\n return thenable as PromiseLike;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const previousIndexRef = React.useRef(undefined);\n const previousStateRef = React.useRef(undefined);\n const pendingPopStatePathRef = React.useRef(undefined);\n\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n\n return history.listen(() => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const path = location.pathname + location.search;\n const index = history.index;\n\n const previousIndex = previousIndexRef.current ?? 0;\n\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n\n if (record?.path === path && record?.state) {\n navigation.resetRoot(record.state);\n return;\n }\n\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n const rootState = navigation.getRootState();\n\n if (state.routes.some((r) => !rootState?.routeNames.includes(r.name))) {\n console.warn(\n \"The navigation state parsed from the URL contains routes not present in the root navigator. This usually means that the linking configuration doesn't match the navigation structure. See https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.\"\n );\n return;\n }\n\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(\n state,\n configRef.current\n );\n\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(\n `An error occurred when trying to handle the link '${path}': ${\n typeof e === 'object' && e != null && 'message' in e\n ? // @ts-expect-error: we're already checking for this\n e.message\n : e\n }`\n );\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, ref]);\n\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const getPathForRoute = (\n route: ReturnType,\n state: NavigationState\n ): string => {\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route?.path) {\n const stateForPath = getStateFromPathRef.current(\n route.path,\n configRef.current\n );\n\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n\n if (\n focusedRoute &&\n focusedRoute.name === route.name &&\n isEqual(focusedRoute.params, route.params)\n ) {\n return route.path;\n }\n }\n }\n\n return getPathFromStateRef.current(state, configRef.current);\n };\n\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n\n history.replace({ path, state });\n }\n }\n\n const onStateChange = async () => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(\n previousState,\n state\n );\n\n if (\n previousFocusedState &&\n focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath\n ) {\n const historyDelta =\n (focusedState.history\n ? focusedState.history.length\n : focusedState.routes.length) -\n (previousFocusedState.history\n ? previousFocusedState.history.length\n : previousFocusedState.routes.length);\n\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({ path, state });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({ path });\n const currentIndex = history.index;\n\n try {\n if (nextIndex !== -1 && nextIndex < currentIndex) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({ path, state });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({ path, state });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({ path, state });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return ref.current?.addListener('state', series(onStateChange));\n });\n\n return {\n getInitialState,\n };\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/** @license React v17.0.1\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","'use strict';\n\nmodule.exports = value => {\n\tif (Object.prototype.toString.call(value) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === null || prototype === Object.prototype;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n newStyle[styleProperty] = style[styleProperty];\n }\n return newStyle;\n }\n return style;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData);\n\n // we can stop processing if a value is returned\n // as all plugin criteria are unique\n if (processedValue) {\n return processedValue;\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\nmodule.exports = exports['default'];","(function() {\n var base64map\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n\n crypt = {\n // Bit-wise rotation left\n rotl: function(n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n\n // Bit-wise rotation right\n rotr: function(n, b) {\n return (n << (32 - b)) | (n >>> b);\n },\n\n // Swap big-endian to little-endian and vice versa\n endian: function(n) {\n // If number given, swap endian\n if (n.constructor == Number) {\n return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;\n }\n\n // Else, assume array and swap all items\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n\n // Generate an array of any length of random bytes\n randomBytes: function(n) {\n for (var bytes = []; n > 0; n--)\n bytes.push(Math.floor(Math.random() * 256));\n return bytes;\n },\n\n // Convert a byte array to big-endian 32-bit words\n bytesToWords: function(bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - b % 32);\n return words;\n },\n\n // Convert big-endian 32-bit words to a byte array\n wordsToBytes: function(words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);\n return bytes;\n },\n\n // Convert a byte array to a hex string\n bytesToHex: function(bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xF).toString(16));\n }\n return hex.join('');\n },\n\n // Convert a hex string to a byte array\n hexToBytes: function(hex) {\n for (var bytes = [], c = 0; c < hex.length; c += 2)\n bytes.push(parseInt(hex.substr(c, 2), 16));\n return bytes;\n },\n\n // Convert a byte array to a base-64 string\n bytesToBase64: function(bytes) {\n for (var base64 = [], i = 0; i < bytes.length; i += 3) {\n var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n for (var j = 0; j < 4; j++)\n if (i * 8 + j * 6 <= bytes.length * 8)\n base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));\n else\n base64.push('=');\n }\n return base64.join('');\n },\n\n // Convert a base-64 string to a byte array\n base64ToBytes: function(base64) {\n // Remove non-base-64 characters\n base64 = base64.replace(/[^A-Z0-9+\\/]/ig, '');\n\n for (var bytes = [], i = 0, imod4 = 0; i < base64.length;\n imod4 = ++i % 4) {\n if (imod4 == 0) continue;\n bytes.push(((base64map.indexOf(base64.charAt(i - 1))\n & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))\n | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));\n }\n return bytes;\n }\n };\n\n module.exports = crypt;\n})();\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\n// -- Inlined from fbjs --\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction _invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nvar warning = function(){};\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\n// /-- Inlined from fbjs --\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillMount`.\n *\n * @optional\n */\n UNSAFE_componentWillMount: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillReceiveProps`.\n *\n * @optional\n */\n UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Replacement for (deprecated) `componentWillUpdate`.\n *\n * @optional\n */\n UNSAFE_componentWillUpdate: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Similar to ReactClassInterface but for static methods.\n */\n var ReactClassStaticInterface = {\n /**\n * This method is invoked after a component is instantiated and when it\n * receives new props. Return an object to update state in response to\n * prop changes. Return null to indicate no change to state.\n *\n * If an object is returned, its keys will be merged into the existing state.\n *\n * @return {object || null}\n * @optional\n */\n getDerivedStateFromProps: 'DEFINE_MANY_MERGED'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (process.env.NODE_ENV !== 'production') {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isAlreadyDefined = name in Constructor;\n if (isAlreadyDefined) {\n var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)\n ? ReactClassStaticInterface[name]\n : null;\n\n _invariant(\n specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n\n Constructor[name] = createMergedResultFunction(Constructor[name], property);\n\n return;\n }\n\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (process.env.NODE_ENV !== 'production') {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.UNSAFE_componentWillRecieveProps,\n '%s has a method called UNSAFE_componentWillRecieveProps(). ' +\n 'Did you mean UNSAFE_componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/** @license React v17.0.1\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAAAlklEQVR4Ae3a1REDMRDG4A3VmHbcUFLigf0exn/mkxuQjmELAAAAAD5Eq5atP6+rZeuPhGz9kZCtPxKy9fs6Zuuf60CfPn369OnTp0+fPn369OnTfx36X1vh+nO6/pytL+D1BCexy+iNhFPt6/dIOEiQIEGCBAkSJEiQ8B0k+PwoQYKhP2OXAYOvRo+vD38bvwcAAACABXF8ILs1PQqpAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABVCAQAAAChx3/YAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfkAQMKHDc9iQjuAAACmUlEQVRo3r3ZS2sUQRAH8M5zklwWg0K8mKBB/AIqXhTEi1cTPQe9iH4AUXBNjh79EooKgggSHyCICIIQL7NV1T2bze6EFS/xoms0ie0hs+sa9zE901U79/3R8+iu+pdSnn/VfbCAz/Um2r+XV8AO0jH9pP3vvSN2COdhGX8xInbIzNMKbv1PeEPsiLmEn2i7E+EJsSN4Az+UtjoTXpBwlG7CGnQlPCA2oFtQxZ3uRG7EBnAvjHsTOREbwB2s9bpRuZHKGCzCer9V5ELi8ehuOiIzYkejBUTYTkNkREyAV5DgdzoiE2ICuoYaUxMZEBPQdYpdCGfkzbA+rUsugDNiAnOGwJVwQipj0XlCd8IBscN0wv1GOSEmCE9qyEakREyAZ4myEqkQE+hzupydSIHE4+aUjvIQfZH6hL6QbxV9kfqEnqP1vEQPxA6YA3hReyB6IOUC3vZDdEXKBVPUG36ILkhlihbxqy+iI1KZogf4xW0zd0TWDuJD+AYWLRuyOo2P0DOxB6nM4Fv87pv4B1mdxhfY8E+0IeaIfok/OIgWEs3q97DJQyTI5xn9FBpcBFqlVDgLz6CBlu9S8SS9JlYCraKlTv2qb+QdN4FWYV0AEVkJLQH/M4kn9Sv2t0vkOxH64pt7F9f22LYLVw8D9y4sdJ40T0bgPRmVUqp+iP2MF6pWkrrrPnPdJVRB7tbCVMQNZkSkqlfKDtD+kLs/Eem0xHpGoe631cdHzIhIIiGUrSQp0XHmlEgo7xJK7loZZMiMJGlqjTVNbebCRKy5cPJsLjMn3EJZvdDUQWh+krwCReZJUHOmVaqxzrSEpnNCc0ahiWlz9ksrrLNfoSn27sgf5mCZfrIiStnB8lF8rHdYEaWU+ljQV/dW0X8Ac6zWpmDZsO8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDEtMDNUMTA6Mjg6NTIrMDA6MDD7fVVWAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAxLTAzVDEwOjI4OjUyKzAwOjAwiiDt6gAAAABJRU5ErkJggg==\"","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// AppRegistry transitively installs YellowBox as a side effect, which overrides various console\n// methods that we need to set up before we override them\nimport { AppRegistry } from 'react-native';\n\nAppRegistry; // eslint-disable-line @babel/no-unused-expressions\n\n// NOTE(2018-10-29): temporarily filter out cyclic dependency warnings here since they are noisy and\n// each warning symbolicates a stack trace, which is slow when there are many warnings\n// NOTE(2019-05-27): temporarily filter out LottieAnimationView warnings triggered by\n// unmaintained react-native-safe-module dependency.\nconst originalWarn = console.warn;\nconsole.warn = function warn(...args) {\n if (\n args.length > 0 &&\n typeof args[0] === 'string' &&\n (/^Require cycle: .*node_modules/.test(args[0]) ||\n /Use UIManager\\.getViewManagerConfig\\('LottieAnimationView'\\) instead\\./.test(args[0]) ||\n /ReactNative\\.NativeModules\\.LottieAnimationView\\.getConstants/.test(args[0]))\n ) {\n return;\n }\n originalWarn.apply(console, args);\n};\n\nconst originalError = console.error;\nconsole.error = function error(...args) {\n if (\n args.length > 0 &&\n typeof args[0] === 'string' &&\n /^Warning: .* has been extracted/.test(args[0])\n ) {\n return;\n }\n originalError.apply(console, args);\n};\n","import * as React from 'react';\n\nimport { attachRecoveredProps } from './RecoveryProps';\nimport { InitialProps } from './withExpoRoot.types';\n\nexport default function withExpoRoot

(\n AppRootComponent: React.ComponentType

\n): React.ComponentClass

{\n return class ExpoRootComponent extends React.Component

{\n render() {\n const combinedProps = attachRecoveredProps(this.props);\n return ;\n }\n };\n}\n","import { InitialProps } from './withExpoRoot.types';\n\nexport const attachRecoveredProps =

(props: P): P => {\n try {\n // Optionally import expo-error-recovery\n const { recoveredProps } = require('expo-error-recovery');\n return {\n ...props,\n exp: { ...props.exp, errorRecovery: recoveredProps },\n };\n } catch {}\n\n return props;\n};\n","import 'expo/build/Expo.fx';\nimport * as React from 'react';\nimport { AppRegistry, Platform } from 'react-native';\n\nimport withExpoRoot from './withExpoRoot';\nimport { InitialProps } from './withExpoRoot.types';\n\nexport default function registerRootComponent

(\n component: React.ComponentType

\n): void {\n AppRegistry.registerComponent('main', () => withExpoRoot(component));\n if (Platform.OS === 'web') {\n const rootTag = document.getElementById('root') ?? document.getElementById('main');\n AppRegistry.runApplication('main', { rootTag });\n }\n}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent';\n\nimport App from '../../App';\n\nregisterRootComponent(App);\n","import { Platform } from 'expo-modules-core';\nconst LOCAL_STORAGE_KEY = 'EXPO_ERROR_RECOVERY_STORAGE';\n\nfunction _consumeRecoveryProps(): string | null {\n if (!Platform.isDOMAvailable) return null;\n try {\n const props = localStorage.getItem(LOCAL_STORAGE_KEY);\n localStorage.removeItem(LOCAL_STORAGE_KEY);\n return props;\n } catch (e) {\n // Catches localStorage SecurityError https://github.com/expo/expo/issues/8355\n }\n return null;\n}\n\nexport default {\n get name(): string {\n return 'ExpoErrorRecovery';\n },\n\n saveRecoveryProps(props: string): void {\n if (!Platform.isDOMAvailable) return;\n try {\n localStorage.setItem(LOCAL_STORAGE_KEY, props);\n } catch (e) {\n // Catches localStorage SecurityError https://github.com/expo/expo/issues/8355\n }\n },\n\n recoveredProps: _consumeRecoveryProps(),\n};\n","import { setRecoveryPropsToSave } from './ErroRecoveryStore';\nimport ExpoErrorRecovery from './ExpoErrorRecovery';\nimport './ErrorRecovery.fx';\n\n// @docsMissing\nexport const recoveredProps = _getRecoveredProps();\n\n// @docsMissing\nexport type ErrorRecoveryProps = Record;\n\n// @needsAudit\n/**\n * Set arbitrary error recovery props. If your project crashes in production as a result of a fatal\n * JS error, Expo will reload your project. If you've set these props, they'll be passed to your\n * reloaded project's initial props under `exp.errorRecovery`. Access to `localStorage` is required\n * on web, or else this will simply be a no-op.\n *\n * [Read more about error handling with Expo](/guides/errors).\n * @param props An object which will be passed to your reloaded project's initial props if the\n * project was reloaded as a result of a fatal JS error.\n */\nexport function setRecoveryProps(props: ErrorRecoveryProps): void {\n setRecoveryPropsToSave(props);\n}\n\nfunction _getRecoveredProps(): ErrorRecoveryProps | null {\n if (ExpoErrorRecovery.recoveredProps) {\n return JSON.parse(ExpoErrorRecovery.recoveredProps);\n }\n return null;\n}\n","let recoveredPropsToSave: string | null = null;\n\nexport function getRecoveryPropsToSave(): string | null {\n return recoveredPropsToSave;\n}\n\nexport function setRecoveryPropsToSave(props: { [key: string]: any }): void {\n recoveredPropsToSave = JSON.stringify(props);\n}\n","import {\n BaseNavigationContainer,\n getActionFromState,\n getPathFromState,\n getStateFromPath,\n NavigationContainerProps,\n NavigationContainerRef,\n ParamListBase,\n validatePathConfig,\n} from '@react-navigation/core';\nimport * as React from 'react';\n\nimport LinkingContext from './LinkingContext';\nimport DefaultTheme from './theming/DefaultTheme';\nimport ThemeProvider from './theming/ThemeProvider';\nimport type { DocumentTitleOptions, LinkingOptions, Theme } from './types';\nimport useBackButton from './useBackButton';\nimport useDocumentTitle from './useDocumentTitle';\nimport useLinking from './useLinking';\nimport useThenable from './useThenable';\n\ndeclare global {\n var REACT_NAVIGATION_DEVTOOLS: WeakMap<\n NavigationContainerRef,\n { readonly linking: LinkingOptions }\n >;\n}\n\nglobal.REACT_NAVIGATION_DEVTOOLS = new WeakMap();\n\ntype Props = NavigationContainerProps & {\n theme?: Theme;\n linking?: LinkingOptions;\n fallback?: React.ReactNode;\n documentTitle?: DocumentTitleOptions;\n onReady?: () => void;\n};\n\n/**\n * Container component which holds the navigation state designed for React Native apps.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).\n * @param props.onReady Callback which is called after the navigation tree mounts.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.theme Theme object for the navigators.\n * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.\n * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.\n * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nfunction NavigationContainerInner(\n {\n theme = DefaultTheme,\n linking,\n fallback = null,\n documentTitle,\n onReady,\n ...rest\n }: Props,\n ref?: React.Ref | null>\n) {\n const isLinkingEnabled = linking ? linking.enabled !== false : false;\n\n if (linking?.config) {\n validatePathConfig(linking.config);\n }\n\n const refContainer =\n React.useRef>(null);\n\n useBackButton(refContainer);\n useDocumentTitle(refContainer, documentTitle);\n\n const { getInitialState } = useLinking(refContainer, {\n independent: rest.independent,\n enabled: isLinkingEnabled,\n prefixes: [],\n ...linking,\n });\n\n // Add additional linking related info to the ref\n // This will be used by the devtools\n React.useEffect(() => {\n if (refContainer.current) {\n REACT_NAVIGATION_DEVTOOLS.set(refContainer.current, {\n get linking() {\n return {\n ...linking,\n enabled: isLinkingEnabled,\n prefixes: linking?.prefixes ?? [],\n getStateFromPath: linking?.getStateFromPath ?? getStateFromPath,\n getPathFromState: linking?.getPathFromState ?? getPathFromState,\n getActionFromState:\n linking?.getActionFromState ?? getActionFromState,\n };\n },\n });\n }\n });\n\n const [isResolved, initialState] = useThenable(getInitialState);\n\n React.useImperativeHandle(ref, () => refContainer.current);\n\n const linkingContext = React.useMemo(() => ({ options: linking }), [linking]);\n\n const isReady = rest.initialState != null || !isLinkingEnabled || isResolved;\n\n const onReadyRef = React.useRef(onReady);\n\n React.useEffect(() => {\n onReadyRef.current = onReady;\n });\n\n React.useEffect(() => {\n if (isReady) {\n onReadyRef.current?.();\n }\n }, [isReady]);\n\n if (!isReady) {\n // This is temporary until we have Suspense for data-fetching\n // Then the fallback will be handled by a parent `Suspense` component\n return fallback as React.ReactElement;\n }\n\n return (\n \n \n \n \n \n );\n}\n\nconst NavigationContainer = React.forwardRef(NavigationContainerInner) as <\n RootParamList extends {} = ReactNavigation.RootParamList\n>(\n props: Props & {\n ref?: React.Ref>;\n }\n) => React.ReactElement;\n\nexport default NavigationContainer;\n","/* eslint-env browser */\n\nimport * as React from 'react';\nimport { View } from 'react-native';\nimport { NativeSafeAreaProviderProps } from './SafeArea.types';\n\n/**\n * TODO:\n * Currently insets and frame are based on the window and are not\n * relative to the provider view. This is inconsistent with iOS and Android.\n * However in most cases if the provider view covers the screen this is not\n * an issue.\n */\n\nconst CSSTransitions: Record = {\n WebkitTransition: 'webkitTransitionEnd',\n Transition: 'transitionEnd',\n MozTransition: 'transitionend',\n MSTransition: 'msTransitionEnd',\n OTransition: 'oTransitionEnd',\n};\n\nexport default function NativeSafeAreaView({\n children,\n style,\n onInsetsChange,\n}: NativeSafeAreaProviderProps) {\n React.useEffect(() => {\n // Skip for SSR.\n if (typeof document === 'undefined') {\n return;\n }\n\n const element = createContextElement();\n document.body.appendChild(element);\n const onEnd = () => {\n const { paddingTop, paddingBottom, paddingLeft, paddingRight } =\n window.getComputedStyle(element);\n\n const insets = {\n top: paddingTop ? parseInt(paddingTop, 10) : 0,\n bottom: paddingBottom ? parseInt(paddingBottom, 10) : 0,\n left: paddingLeft ? parseInt(paddingLeft, 10) : 0,\n right: paddingRight ? parseInt(paddingRight, 10) : 0,\n };\n const frame = {\n x: 0,\n y: 0,\n width: document.documentElement.offsetWidth,\n height: document.documentElement.offsetHeight,\n };\n // @ts-ignore: missing properties\n onInsetsChange({ nativeEvent: { insets, frame } });\n };\n element.addEventListener(getSupportedTransitionEvent(), onEnd);\n onEnd();\n return () => {\n document.body.removeChild(element);\n element.removeEventListener(getSupportedTransitionEvent(), onEnd);\n };\n }, [onInsetsChange]);\n\n return {children};\n}\n\nlet _supportedTransitionEvent: string | null = null;\nfunction getSupportedTransitionEvent(): string {\n if (_supportedTransitionEvent !== null) {\n return _supportedTransitionEvent;\n }\n const element = document.createElement('invalidtype');\n\n _supportedTransitionEvent = CSSTransitions.Transition;\n for (const key in CSSTransitions) {\n if (element.style[key as keyof CSSStyleDeclaration] !== undefined) {\n _supportedTransitionEvent = CSSTransitions[key];\n break;\n }\n }\n return _supportedTransitionEvent;\n}\n\ntype CssEnv = 'constant' | 'env';\n\nlet _supportedEnv: CssEnv | null = null;\nfunction getSupportedEnv(): CssEnv {\n if (_supportedEnv !== null) {\n return _supportedEnv;\n }\n const { CSS } = window;\n if (\n CSS &&\n CSS.supports &&\n CSS.supports('top: constant(safe-area-inset-top)')\n ) {\n _supportedEnv = 'constant';\n } else {\n _supportedEnv = 'env';\n }\n return _supportedEnv;\n}\n\nfunction getInset(side: string): string {\n return `${getSupportedEnv()}(safe-area-inset-${side})`;\n}\n\nfunction createContextElement(): HTMLElement {\n const element = document.createElement('div');\n const { style } = element;\n style.position = 'fixed';\n style.left = '0';\n style.top = '0';\n style.width = '0';\n style.height = '0';\n style.zIndex = '-1';\n style.overflow = 'hidden';\n style.visibility = 'hidden';\n // Bacon: Anything faster than this and the callback will be invoked too early with the wrong insets\n style.transitionDuration = '0.05s';\n style.transitionProperty = 'padding';\n style.transitionDelay = '0s';\n style.paddingTop = getInset('top');\n style.paddingBottom = getInset('bottom');\n style.paddingLeft = getInset('left');\n style.paddingRight = getInset('right');\n return element;\n}\n","import * as React from 'react';\nimport { Dimensions, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport NativeSafeAreaProvider from './NativeSafeAreaProvider';\nimport { EdgeInsets, InsetChangedEvent, Metrics, Rect } from './SafeArea.types';\n\nexport const SafeAreaInsetsContext = React.createContext(\n null,\n);\nSafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n\nexport const SafeAreaFrameContext = React.createContext(null);\nSafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n\nexport interface SafeAreaViewProps {\n children?: React.ReactNode;\n initialMetrics?: Metrics | null;\n /**\n * @deprecated\n */\n initialSafeAreaInsets?: EdgeInsets | null;\n style?: StyleProp;\n}\n\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n}: SafeAreaViewProps) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState(\n initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null,\n );\n const [frame, setFrame] = React.useState(\n initialMetrics?.frame ??\n parentFrame ?? {\n // Backwards compat so we render anyway if we don't have frame.\n x: 0,\n y: 0,\n width: Dimensions.get('window').width,\n height: Dimensions.get('window').height,\n },\n );\n const onInsetsChange = React.useCallback(\n (event: InsetChangedEvent) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets },\n } = event;\n\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame &&\n (nextFrame.height !== frame.height ||\n nextFrame.width !== frame.width ||\n nextFrame.x !== frame.x ||\n nextFrame.y !== frame.y)\n ) {\n setFrame(nextFrame);\n }\n\n if (\n !insets ||\n nextInsets.bottom !== insets.bottom ||\n nextInsets.left !== insets.left ||\n nextInsets.right !== insets.right ||\n nextInsets.top !== insets.top\n ) {\n setInsets(nextInsets);\n }\n },\n [frame, insets],\n );\n\n return (\n \n {insets != null ? (\n \n \n {children}\n \n \n ) : null}\n \n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n});\n\nfunction useParentSafeAreaInsets(): EdgeInsets | null {\n return React.useContext(SafeAreaInsetsContext);\n}\n\nfunction useParentSafeAreaFrame(): Rect | null {\n return React.useContext(SafeAreaFrameContext);\n}\n\nexport function useSafeAreaInsets(): EdgeInsets {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(\n 'No safe area insets value available. Make sure you are rendering `` at the top of your app.',\n );\n }\n return safeArea;\n}\n\nexport function useSafeAreaFrame(): Rect {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(\n 'No safe area frame value available. Make sure you are rendering `` at the top of your app.',\n );\n }\n return frame;\n}\n\nexport function withSafeAreaInsets(\n WrappedComponent: React.ComponentType,\n) {\n return React.forwardRef((props: T, ref: React.Ref) => (\n \n {(insets) => }\n \n ));\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea(): EdgeInsets {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n","import * as React from 'react';\nimport {\n Dimensions,\n Platform,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport {\n initialWindowMetrics,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n} from 'react-native-safe-area-context';\n\ntype Props = {\n children: React.ReactNode;\n style?: StyleProp;\n};\n\nconst { width = 0, height = 0 } = Dimensions.get('window');\n\n// To support SSR on web, we need to have empty insets for initial values\n// Otherwise there can be mismatch between SSR and client output\n// We also need to specify empty values to support tests environments\nconst initialMetrics =\n Platform.OS === 'web' || initialWindowMetrics == null\n ? {\n frame: { x: 0, y: 0, width, height },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n }\n : initialWindowMetrics;\n\nexport default function SafeAreaProviderCompat({ children, style }: Props) {\n return (\n \n {(insets) => {\n if (insets) {\n // If we already have insets, don't wrap the stack in another safe area provider\n // This avoids an issue with updates at the cost of potentially incorrect values\n // https://github.com/react-navigation/react-navigation/issues/174\n return {children};\n }\n\n return (\n \n {children}\n \n );\n }}\n \n );\n}\n\nSafeAreaProviderCompat.initialMetrics = initialMetrics;\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n});\n","import * as React from 'react';\n\nimport ThemeContext from './ThemeContext';\n\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n\n return theme;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport { View, ViewProps } from 'react-native';\n\ntype Props = ViewProps & {\n children: React.ReactNode;\n};\n\nexport default function Background({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n","import { Platform } from 'react-native';\n\nimport type { Layout } from '../types';\n\nexport default function getDefaultHeaderHeight(\n layout: Layout,\n modalPresentation: boolean,\n statusBarHeight: number\n): number {\n let headerHeight;\n\n const isLandscape = layout.width > layout.height;\n\n if (Platform.OS === 'ios') {\n if (Platform.isPad || Platform.isTVOS) {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 50;\n }\n } else {\n if (isLandscape) {\n headerHeight = 32;\n } else {\n if (modalPresentation) {\n headerHeight = 56;\n } else {\n headerHeight = 44;\n }\n }\n }\n } else if (Platform.OS === 'android') {\n headerHeight = 56;\n } else {\n headerHeight = 64;\n }\n\n return headerHeight + statusBarHeight;\n}\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderHeightContext = getNamedContext(\n 'HeaderHeightContext',\n undefined\n);\n\nexport default HeaderHeightContext;\n","import getNamedContext from '../getNamedContext';\n\nconst HeaderShownContext = getNamedContext('HeaderShownContext', false);\n\nexport default HeaderShownContext;\n","import type { HeaderOptions } from '../types';\n\nexport default function getHeaderTitle(\n options: { title?: string; headerTitle?: HeaderOptions['headerTitle'] },\n fallback: string\n): string {\n return typeof options.headerTitle === 'string'\n ? options.headerTitle\n : options.title !== undefined\n ? options.title\n : fallback;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\ntype Props = ViewProps & {\n style?: Animated.WithAnimatedValue>;\n children?: React.ReactNode;\n};\n\nexport default function HeaderBackground({ style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowOpacity: 0.85,\n shadowRadius: 0,\n shadowOffset: {\n width: 0,\n height: StyleSheet.hairlineWidth,\n },\n },\n default: {\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n }),\n },\n});\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n StyleSheet,\n TextProps,\n TextStyle,\n} from 'react-native';\n\ntype Props = Omit & {\n tintColor?: string;\n children?: string;\n style?: Animated.WithAnimatedValue>;\n};\n\nexport default function HeaderTitle({ tintColor, style, ...rest }: Props) {\n const { colors } = useTheme();\n\n return (\n \n );\n}\n\nconst styles = StyleSheet.create({\n title: Platform.select({\n ios: {\n fontSize: 17,\n fontWeight: '600',\n },\n android: {\n fontSize: 20,\n fontFamily: 'sans-serif-medium',\n fontWeight: 'normal',\n },\n default: {\n fontSize: 18,\n fontWeight: '500',\n },\n }),\n});\n","import * as React from 'react';\nimport { Animated, Platform, StyleSheet, View, ViewStyle } from 'react-native';\nimport {\n useSafeAreaFrame,\n useSafeAreaInsets,\n} from 'react-native-safe-area-context';\n\nimport type { HeaderOptions, Layout } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\nimport HeaderBackground from './HeaderBackground';\nimport HeaderShownContext from './HeaderShownContext';\nimport HeaderTitle from './HeaderTitle';\n\ntype Props = HeaderOptions & {\n /**\n * Whether the header is in a modal\n */\n modal?: boolean;\n /**\n * Layout of the screen.\n */\n layout?: Layout;\n /**\n * Title text for the header.\n */\n title: string;\n};\n\nconst warnIfHeaderStylesDefined = (styles: Record) => {\n Object.keys(styles).forEach((styleProp) => {\n const value = styles[styleProp];\n\n if (styleProp === 'position' && value === 'absolute') {\n console.warn(\n \"position: 'absolute' is not supported on headerStyle. If you would like to render content under the header, use the 'headerTransparent' option.\"\n );\n } else if (value !== undefined) {\n console.warn(\n `${styleProp} was given a value of ${value}, this has no effect on headerStyle.`\n );\n }\n });\n};\n\nexport default function Header(props: Props) {\n const insets = useSafeAreaInsets();\n const frame = useSafeAreaFrame();\n\n const isParentHeaderShown = React.useContext(HeaderShownContext);\n\n const {\n layout = frame,\n modal = false,\n title,\n headerTitle: customTitle,\n headerTitleAlign = Platform.select({\n ios: 'center',\n default: 'left',\n }),\n headerLeft,\n headerLeftLabelVisible,\n headerTransparent,\n headerTintColor,\n headerBackground,\n headerRight,\n headerTitleAllowFontScaling: titleAllowFontScaling,\n headerTitleStyle: titleStyle,\n headerLeftContainerStyle: leftContainerStyle,\n headerRightContainerStyle: rightContainerStyle,\n headerTitleContainerStyle: titleContainerStyle,\n headerBackgroundContainerStyle: backgroundContainerStyle,\n headerStyle: customHeaderStyle,\n headerShadowVisible,\n headerPressColor,\n headerPressOpacity,\n headerStatusBarHeight = isParentHeaderShown ? 0 : insets.top,\n } = props;\n\n const defaultHeight = getDefaultHeaderHeight(\n layout,\n modal,\n headerStatusBarHeight\n );\n\n const {\n height = defaultHeight,\n minHeight,\n maxHeight,\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: web support for shadow\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n ...unsafeStyles\n } = StyleSheet.flatten(customHeaderStyle || {}) as ViewStyle;\n\n if (process.env.NODE_ENV !== 'production') {\n warnIfHeaderStylesDefined(unsafeStyles);\n }\n\n const safeStyles: ViewStyle = {\n backgroundColor,\n borderBottomColor,\n borderBottomEndRadius,\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderBottomStartRadius,\n borderBottomWidth,\n borderColor,\n borderEndColor,\n borderEndWidth,\n borderLeftColor,\n borderLeftWidth,\n borderRadius,\n borderRightColor,\n borderRightWidth,\n borderStartColor,\n borderStartWidth,\n borderStyle,\n borderTopColor,\n borderTopEndRadius,\n borderTopLeftRadius,\n borderTopRightRadius,\n borderTopStartRadius,\n borderTopWidth,\n borderWidth,\n // @ts-expect-error: boxShadow is only for Web\n boxShadow,\n elevation,\n shadowColor,\n shadowOffset,\n shadowOpacity,\n shadowRadius,\n opacity,\n transform,\n };\n\n // Setting a property to undefined triggers default style\n // So we need to filter them out\n // Users can use `null` instead\n for (const styleProp in safeStyles) {\n // @ts-expect-error: typescript wrongly complains that styleProp cannot be used to index safeStyles\n if (safeStyles[styleProp] === undefined) {\n // @ts-expect-error\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete safeStyles[styleProp];\n }\n }\n\n const backgroundStyle = [\n safeStyles,\n headerShadowVisible === false && {\n elevation: 0,\n shadowOpacity: 0,\n borderBottomWidth: 0,\n },\n ];\n\n const leftButton = headerLeft\n ? headerLeft({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n labelVisible: headerLeftLabelVisible,\n })\n : null;\n\n const rightButton = headerRight\n ? headerRight({\n tintColor: headerTintColor,\n pressColor: headerPressColor,\n pressOpacity: headerPressOpacity,\n })\n : null;\n\n const headerTitle =\n typeof customTitle !== 'function'\n ? (props: React.ComponentProps) => (\n \n )\n : customTitle;\n\n return (\n \n \n {headerBackground ? (\n headerBackground({ style: backgroundStyle })\n ) : headerTransparent ? null : (\n \n )}\n \n \n \n \n \n {leftButton}\n \n \n {headerTitle({\n children: title,\n allowFontScaling: titleAllowFontScaling,\n tintColor: headerTintColor,\n style: titleStyle,\n })}\n \n \n {rightButton}\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n content: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'stretch',\n },\n title: {\n marginHorizontal: 16,\n justifyContent: 'center',\n },\n left: {\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n right: {\n justifyContent: 'center',\n alignItems: 'flex-end',\n },\n expand: {\n flexGrow: 1,\n flexBasis: 0,\n },\n});\n","/**\n * Use a stub for MaskedView on all Platforms that don't support it.\n */\nimport type * as React from 'react';\n\ntype Props = {\n maskElement: React.ReactElement;\n children: React.ReactElement;\n};\n\nexport default function MaskedView({ children }: Props) {\n return children;\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n Easing,\n GestureResponderEvent,\n Platform,\n Pressable,\n PressableProps,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nexport type Props = Omit & {\n pressColor?: string;\n pressOpacity?: number;\n style?: Animated.WithAnimatedValue>;\n children: React.ReactNode;\n};\n\nconst AnimatedPressable = Animated.createAnimatedComponent(Pressable);\n\nconst ANDROID_VERSION_LOLLIPOP = 21;\nconst ANDROID_SUPPORTS_RIPPLE =\n Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;\n\n/**\n * PlatformPressable provides an abstraction on top of Pressable to handle platform differences.\n */\nexport default function PlatformPressable({\n onPressIn,\n onPressOut,\n android_ripple,\n pressColor,\n pressOpacity = 0.3,\n style,\n ...rest\n}: Props) {\n const { dark } = useTheme();\n const [opacity] = React.useState(() => new Animated.Value(1));\n\n const animateTo = (toValue: number, duration: number) => {\n if (ANDROID_SUPPORTS_RIPPLE) {\n return;\n }\n\n Animated.timing(opacity, {\n toValue,\n duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: true,\n }).start();\n };\n\n const handlePressIn = (e: GestureResponderEvent) => {\n animateTo(pressOpacity, 0);\n onPressIn?.(e);\n };\n\n const handlePressOut = (e: GestureResponderEvent) => {\n animateTo(1, 200);\n onPressOut?.(e);\n };\n\n return (\n \n );\n}\n","import { useTheme } from '@react-navigation/native';\nimport * as React from 'react';\nimport {\n Animated,\n I18nManager,\n Image,\n LayoutChangeEvent,\n Platform,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport MaskedView from '../MaskedView';\nimport PlatformPressable from '../PlatformPressable';\nimport type { HeaderBackButtonProps } from '../types';\n\nexport default function HeaderBackButton({\n disabled,\n allowFontScaling,\n backImage,\n label,\n labelStyle,\n labelVisible,\n onLabelLayout,\n onPress,\n pressColor,\n pressOpacity,\n screenLayout,\n tintColor: customTintColor,\n titleLayout,\n truncatedLabel = 'Back',\n accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back',\n testID,\n style,\n}: HeaderBackButtonProps) {\n const { colors } = useTheme();\n\n const [initialLabelWidth, setInitialLabelWidth] = React.useState<\n undefined | number\n >(undefined);\n\n const tintColor =\n customTintColor !== undefined\n ? customTintColor\n : Platform.select({\n ios: colors.primary,\n default: colors.text,\n });\n\n const handleLabelLayout = (e: LayoutChangeEvent) => {\n onLabelLayout?.(e);\n\n setInitialLabelWidth(e.nativeEvent.layout.x + e.nativeEvent.layout.width);\n };\n\n const shouldTruncateLabel = () => {\n return (\n !label ||\n (initialLabelWidth &&\n titleLayout &&\n screenLayout &&\n (screenLayout.width - titleLayout.width) / 2 < initialLabelWidth + 26)\n );\n };\n\n const renderBackImage = () => {\n if (backImage) {\n return backImage({ tintColor });\n } else {\n return (\n \n );\n }\n };\n\n const renderLabel = () => {\n const leftLabelText = shouldTruncateLabel() ? truncatedLabel : label;\n\n if (!labelVisible || leftLabelText === undefined) {\n return null;\n }\n\n const labelElement = (\n \n \n {leftLabelText}\n \n \n );\n\n if (backImage || Platform.OS !== 'ios') {\n // When a custom backimage is specified, we can't mask the label\n // Otherwise there might be weird effect due to our mask not being the same as the image\n return labelElement;\n }\n\n return (\n \n \n \n \n }\n >\n {labelElement}\n \n );\n };\n\n const handlePress = () => onPress && requestAnimationFrame(onPress);\n\n return (\n \n \n {renderBackImage()}\n {renderLabel()}\n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n minWidth: StyleSheet.hairlineWidth, // Avoid collapsing when title is long\n ...Platform.select({\n ios: null,\n default: {\n marginVertical: 3,\n marginHorizontal: 11,\n },\n }),\n },\n disabled: {\n opacity: 0.5,\n },\n label: {\n fontSize: 17,\n // Title and back label are a bit different width due to title being bold\n // Adjusting the letterSpacing makes them coincide better\n letterSpacing: 0.35,\n },\n labelWrapper: {\n // These styles will make sure that the label doesn't fill the available space\n // Otherwise it messes with the measurement of the label\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n icon: Platform.select({\n ios: {\n height: 21,\n width: 13,\n marginLeft: 8,\n marginRight: 22,\n marginVertical: 12,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n default: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n }),\n iconWithLabel:\n Platform.OS === 'ios'\n ? {\n marginRight: 6,\n }\n : {},\n iconMaskContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n iconMaskFillerRect: {\n flex: 1,\n backgroundColor: '#000',\n },\n iconMask: {\n height: 21,\n width: 13,\n marginLeft: -14.5,\n marginVertical: 12,\n alignSelf: 'center',\n resizeMode: 'contain',\n transform: [{ scaleX: I18nManager.isRTL ? -1 : 1 }],\n },\n});\n","import {\n getHeaderTitle,\n Header,\n HeaderBackButton,\n SafeAreaProviderCompat,\n Screen,\n} from '@react-navigation/elements';\nimport type {\n ParamListBase,\n StackNavigationState,\n} from '@react-navigation/native';\nimport * as React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport type {\n NativeStackDescriptorMap,\n NativeStackNavigationHelpers,\n} from '../types';\n\ntype Props = {\n state: StackNavigationState;\n // This is used for the native implementation of the stack.\n // eslint-disable-next-line react/no-unused-prop-types\n navigation: NativeStackNavigationHelpers;\n descriptors: NativeStackDescriptorMap;\n};\n\nconst TRANSPARENT_PRESENTATIONS = [\n 'transparentModal',\n 'containedTransparentModal',\n];\n\nexport default function NativeStackView({ state, descriptors }: Props) {\n return (\n \n \n {state.routes.map((route, i) => {\n const isFocused = state.index === i;\n const canGoBack = i !== 0;\n const previousKey = state.routes[i - 1]?.key;\n const nextKey = state.routes[i + 1]?.key;\n const previousDescriptor = previousKey\n ? descriptors[previousKey]\n : undefined;\n const nexDescriptor = nextKey ? descriptors[nextKey] : undefined;\n const { options, navigation, render } = descriptors[route.key];\n\n const {\n header,\n headerShown,\n headerTintColor,\n headerBackImageSource,\n headerLeft,\n headerRight,\n headerTitle,\n headerTitleAlign,\n headerTitleStyle,\n headerStyle,\n headerShadowVisible,\n headerTransparent,\n headerBackTitle,\n presentation,\n contentStyle,\n } = options;\n\n const nextPresentation = nexDescriptor?.options.presentation;\n\n return (\n \n headerLeft({\n tintColor,\n canGoBack,\n label: headerBackTitle,\n })\n : headerLeft === undefined && canGoBack\n ? ({ tintColor }) => (\n (\n \n )\n : undefined\n }\n onPress={navigation.goBack}\n canGoBack={canGoBack}\n />\n )\n : headerLeft\n }\n headerRight={\n typeof headerRight === 'function'\n ? ({ tintColor }) =>\n headerRight({ tintColor, canGoBack })\n : headerRight\n }\n headerTitle={\n typeof headerTitle === 'function'\n ? ({ children, tintColor }) =>\n headerTitle({ children, tintColor })\n : headerTitle\n }\n headerTitleAlign={headerTitleAlign}\n headerTitleStyle={headerTitleStyle}\n headerStyle={[\n headerTransparent\n ? {\n position: 'absolute',\n backgroundColor: 'transparent',\n }\n : null,\n headerStyle,\n headerShadowVisible === false\n ? { shadowOpacity: 0, borderBottomWidth: 0 }\n : null,\n ]}\n />\n )\n }\n style={[\n StyleSheet.absoluteFill,\n {\n display:\n isFocused ||\n (nextPresentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(nextPresentation))\n ? 'flex'\n : 'none',\n },\n presentation != null &&\n TRANSPARENT_PRESENTATIONS.includes(presentation)\n ? { backgroundColor: 'transparent' }\n : null,\n ]}\n >\n \n {render()}\n \n \n );\n })}\n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n contentContainer: {\n flex: 1,\n },\n backImage: {\n height: 24,\n width: 24,\n margin: 3,\n resizeMode: 'contain',\n },\n});\n","import {\n createNavigatorFactory,\n EventArg,\n ParamListBase,\n StackActionHelpers,\n StackActions,\n StackNavigationState,\n StackRouter,\n StackRouterOptions,\n useNavigationBuilder,\n} from '@react-navigation/native';\nimport * as React from 'react';\n\nimport type {\n NativeStackNavigationEventMap,\n NativeStackNavigationOptions,\n NativeStackNavigatorProps,\n} from '../types';\nimport NativeStackView from '../views/NativeStackView';\n\nfunction NativeStackNavigator({\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n ...rest\n}: NativeStackNavigatorProps) {\n const { state, descriptors, navigation, NavigationContent } =\n useNavigationBuilder<\n StackNavigationState,\n StackRouterOptions,\n StackActionHelpers,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap\n >(StackRouter, {\n initialRouteName,\n children,\n screenListeners,\n screenOptions,\n });\n\n React.useEffect(\n () =>\n navigation?.addListener?.('tabPress', (e: any) => {\n const isFocused = navigation.isFocused();\n\n // Run the operation in the next frame so we're sure all listeners have been run\n // This is necessary to know if preventDefault() has been called\n requestAnimationFrame(() => {\n if (\n state.index > 0 &&\n isFocused &&\n !(e as EventArg<'tabPress', true>).defaultPrevented\n ) {\n // When user taps on already focused tab and we're inside the tab,\n // reset the stack to replicate native behaviour\n navigation.dispatch({\n ...StackActions.popToTop(),\n target: state.key,\n });\n }\n });\n }),\n [navigation, state.index, state.key]\n );\n\n return (\n \n \n \n );\n}\n\nexport default createNavigatorFactory<\n StackNavigationState,\n NativeStackNavigationOptions,\n NativeStackNavigationEventMap,\n typeof NativeStackNavigator\n>(NativeStackNavigator);\n"],"sourceRoot":""}