{"version":3,"sources":["node_modules/react/index.js","node_modules/react/jsx-runtime.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@babel/runtime/helpers/createClass.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStartClock.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStopClock.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedClockTest.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedDebug.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedConcat.js","node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/@babel/runtime/helpers/inherits.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/react-native-reanimated/lib/reanimated1/derived/useCode.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCode.js","node_modules/react-native-reanimated/lib/reanimated1/animations/decay.js","node_modules/react-native-reanimated/lib/reanimated1/animations/timing.js","node_modules/react-native-reanimated/lib/reanimated1/animations/spring.js","node_modules/react-native-reanimated/lib/reanimated1/animations/Animation.js","node_modules/react-native-reanimated/lib/reanimated1/Transitioning.js","node_modules/react-native-reanimated/lib/reanimated1/animations/SpringUtils.js","node_modules/react-native-reanimated/lib/reanimated1/useValue.js","node_modules/react-native-reanimated/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js","node_modules/react-native-reanimated/lib/reanimated1/derived/acc.js","node_modules/react-native-reanimated/lib/reanimated1/derived/color.js","node_modules/react-native-reanimated/lib/reanimated1/derived/diff.js","node_modules/react-native-reanimated/lib/reanimated1/derived/diffClamp.js","node_modules/react-native-reanimated/lib/reanimated1/derived/interpolateColors.js","node_modules/react-native-reanimated/lib/reanimated1/derived/onChange.js","node_modules/react-native-reanimated/lib/reanimated1/index.js","node_modules/react-native-reanimated/lib/reanimated2/component/WrappedComponents.js","node_modules/react-native-reanimated/lib/reanimated2/component/FlatList.js","node_modules/react-native-reanimated/lib/reanimated2/component/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/Hooks.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedGestureHandler.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedReaction.js","node_modules/react-native-reanimated/lib/reanimated2/NativeMethods.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedRef.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedScrollHandler.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useDerivedValue.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedSensor.js","node_modules/react-native-reanimated/lib/reanimated2/interpolation.js","node_modules/react-native-reanimated/lib/reanimated2/interpolateColor.js","node_modules/react-native-reanimated/lib/reanimated2/PropAdapters.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/animationBuilder/Keyframe.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Flip.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Stretch.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Fade.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Slide.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Zoom.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Bounce.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Rotate.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Roll.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js","node_modules/react-native-reanimated/lib/reanimated2/utils.js","node_modules/react-native-reanimated/lib/Animated.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/extends.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/react-native-reanimated/lib/reanimated2/animation/spring.js","node_modules/react-native-reanimated/lib/reanimated2/animation/decay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/delay.js","node_modules/react-native-reanimated/lib/reanimated2/animation/repeat.js","node_modules/react-native-reanimated/lib/reanimated2/animation/sequence.js","node_modules/react-native-web/dist/exports/Platform/index.js","node_modules/react-native-web/dist/exports/StyleSheet/index.js","node_modules/fbjs/lib/invariant.js","node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/react-native-web/dist/exports/View/index.js","useHasResponsiveProps.ts","node_modules/@babel/runtime/helpers/toConsumableArray.js","State.ts","node_modules/react-router/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedNode.js","node_modules/prop-types/index.js","node_modules/react-query/es/core/utils.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","utils.ts","index.ts","index.tsx","node_modules/invariant/browser.js","gesture.ts","../src/EventEmitter.ts","../../src/environment/browser.web.ts","../src/Platform.ts","../../src/errors/CodedError.ts","../../src/errors/UnavailabilityError.ts","../../src/sweet/NativeErrorManager.ts","../src/PermissionsInterface.ts","../src/index.ts","packages/@react-aria/utils/src/useLayoutEffect.ts","packages/@react-aria/utils/src/useId.ts","packages/@react-aria/utils/src/chain.ts","packages/@react-aria/utils/src/mergeProps.ts","packages/@react-aria/utils/src/filterDOMProps.ts","packages/@react-aria/utils/src/focusWithoutScrolling.ts","packages/@react-aria/utils/src/getOffset.ts","packages/@react-aria/utils/src/runAfterTransition.ts","packages/@react-aria/utils/src/useDrag1D.ts","packages/@react-aria/utils/src/useGlobalListeners.ts","packages/@react-aria/utils/src/useLabels.ts","packages/@react-aria/utils/src/useObjectRef.ts","packages/@react-aria/utils/src/useUpdateEffect.ts","packages/@react-aria/utils/src/useResizeObserver.ts","packages/@react-aria/utils/src/useSyncRef.ts","packages/@react-aria/utils/src/getScrollParent.ts","packages/@react-aria/utils/src/useViewportSize.ts","packages/@react-aria/utils/src/useDescription.ts","packages/@react-aria/utils/src/platform.ts","packages/@react-aria/utils/src/useEvent.ts","packages/@react-aria/utils/src/useValueEffect.ts","packages/@react-aria/utils/src/scrollIntoView.ts","node_modules/@babel/runtime/helpers/esm/extends.js","node_modules/react-native-reanimated/lib/reanimated2/core.js","node_modules/fbjs/lib/ExecutionEnvironment.js","node_modules/react-native-web/dist/vendor/react-native/Animated/NativeAnimatedHelper.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/exports/Dimensions/index.js","node_modules/react-native-reanimated/lib/reanimated2/Colors.js","node_modules/@babel/runtime/helpers/get.js","node_modules/jotai/index.js","eventReceiver.ts","Directions.ts","GestureHandlerRootView.tsx","gestureHandlerRootHOC.tsx","PinchGestureHandler.ts","RotationGestureHandler.ts","NativeViewGestureHandler.ts","createNativeWrapper.tsx","flingGesture.ts","forceTouchGesture.ts","gestureComposition.ts","longPressGesture.ts","panGesture.ts","pinchGesture.ts","rotationGesture.ts","tapGesture.ts","nativeGesture.ts","manualGesture.ts","GestureHandlerButton.web.tsx","GestureButtons.tsx","TouchableNativeFeedback.tsx","GenericTouchable.tsx","TouchableWithoutFeedback.tsx","TouchableOpacity.tsx","TouchableHighlight.tsx","GestureComponents.web.tsx","Swipeable.tsx","DrawerLayout.tsx","init.ts","node_modules/react-native-reanimated/lib/reanimated1/val.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedNode.js","node_modules/react-native-web/dist/exports/findNodeHandle/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/InternalAnimatedValue.js","C:/Users/samst/AppData/Local/Yarn/Data/global/node_modules/process/browser.js","node_modules/react-query/es/core/notifyManager.js","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/index.js","node_modules/react-native-reanimated/lib/reanimated2/PlatformChecker.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/dayjs/dayjs.min.js","gestureHandlerCommon.ts","node_modules/react-native-reanimated/lib/reanimated2/Bezier.js","node_modules/react-native-reanimated/lib/reanimated2/Easing.js","C:/Users/samst/AppData/Local/Yarn/Data/global/node_modules/webpack/buildin/global.js","node_modules/react-native-reanimated/lib/reanimated2/hook/utils.js","node_modules/react-native-web/dist/modules/forwardedProps/index.js","node_modules/lodash.isnil/index.js","node_modules/react-native-reanimated/lib/reanimated2/animation/util.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/lodash.get/index.js","node_modules/react-native-reanimated/lib/ReanimatedModuleCompat.js","node_modules/react-native-reanimated/lib/ReanimatedModule.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedWithChildren.js","external.ts","internal.ts","useBottomSheetInternal.ts","constants.ts","useScrollEventsHandlersDefault.ts","normalizeSnapPoint.ts","animate.ts","getKeyboardAnimationConfigs.ts","logger.ts","noop.ts","useGestureHandler.ts","Math.ts","Physics.ts","useGestureEventsHandlersDefault.tsx","useKeyboard.ts","useReactiveSharedValue.ts","useBottomSheetGestureHandlers.ts","styles.ts","BottomSheetContainer.tsx","BottomSheetGestureHandlersProvider.tsx","BottomSheetBackdropContainer.tsx","BottomSheetHandle.tsx","BottomSheetHandleContainer.tsx","BottomSheetBackground.tsx","BottomSheetBackgroundContainer.tsx","BottomSheetFooterContainer.tsx","BottomSheetDraggableView.tsx","BottomSheet.tsx","usePropsValidator.ts","useNormalizedSnapPoints.ts","useScrollable.ts","node_modules/@gorhom/portal/node_modules/nanoid/non-secure/index.js","portal.ts","usePortal.ts","Portal.tsx","usePortalState.ts","PortalHost.tsx","reducer.ts","PortalProvider.tsx","node_modules/@gorhom/bottom-sheet/node_modules/nanoid/non-secure/index.js","BottomSheetModal.tsx","useBottomSheetModalInternal.ts","BottomSheetRefreshControl.tsx","createBottomSheetScrollableComponent.tsx","useScrollHandler.ts","useScrollableSetter.ts","BottomSheetSectionList.tsx","BottomSheetFlatList.tsx","BottomSheetScrollView.tsx","BottomSheetVirtualizedList.tsx","BottomSheetView.tsx","BottomSheetTextInput.tsx","BottomSheetBackdrop.tsx","useBottomSheet.ts","BottomSheetFooter.tsx","reanimatedWrapper.ts","node_modules/react-native-web/dist/exports/ScrollView/index.js","styled.tsx","node_modules/history/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedInterpolation.js","node_modules/react-native-web/dist/exports/Keyboard/index.js","nbSvg.web.tsx","node_modules/react-native-reanimated/lib/reanimated2/UpdateProps.js","node_modules/zod/lib/index.mjs","mergeRefs.ts","Pressable.tsx","node_modules/react-native-web/dist/exports/StatusBar/index.js","node_modules/react-native-web/dist/exports/I18nManager/index.js","node_modules/react-native-reanimated/lib/reanimated1/derived/interpolate.js","createIcon.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedBlock.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/modules/useMergeRefs/index.js","node_modules/react-query/es/core/retryer.js","node_modules/react-dom/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/createAnimatedComponent.js","createHandler.ts","useTheme.ts","NativeBaseContext.ts","node_modules/react-native-web/dist/modules/requestIdleCallback/index.js","node_modules/react-native-web/dist/exports/InteractionManager/index.js","packages/@react-aria/interactions/src/textSelection.ts","packages/@react-aria/interactions/src/utils.ts","packages/@react-aria/interactions/src/context.ts","packages/@react-aria/interactions/src/usePress.ts","packages/@react-aria/interactions/src/Pressable.tsx","packages/@react-aria/interactions/src/PressResponder.tsx","packages/@react-aria/interactions/src/useFocus.ts","packages/@react-aria/interactions/src/useFocusVisible.ts","packages/@react-aria/interactions/src/useFocusWithin.ts","packages/@react-aria/interactions/src/useHover.ts","packages/@react-aria/interactions/src/useInteractOutside.ts","packages/@react-aria/interactions/src/createEventHandler.ts","packages/@react-aria/interactions/src/useKeyboard.ts","packages/@react-aria/interactions/src/useMove.ts","packages/@react-aria/interactions/src/useScrollWheel.ts","packages/@react-aria/interactions/src/useLongPress.ts","node_modules/react-native-web/dist/exports/StyleSheet/constants.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedOperator.js","node_modules/react-native-reanimated/lib/reanimated1/operators.js","EventType.ts","usePropsResolution.tsx","accessibilityUtils.ts","useFormControl.tsx","node_modules/react-native-web/dist/exports/Image/index.js","node_modules/react-native-web/dist/exports/DeviceEventEmitter/index.js","handlersRegistry.ts","accordion.ts","alert.ts","aspect-ratio.ts","avatar.ts","avatar-badge.ts","avatar-group.ts","badge.ts","breadcrumb.ts","button.ts","card.ts","center.ts","checkbox.ts","checkbox-group.ts","box.ts","flatList.ts","keyboardAvoidingView.ts","scrollView.ts","sectionList.ts","statusBar.ts","circular-progress.ts","code.ts","container.ts","hstack.ts","vstack.ts","divider.ts","circle.ts","simple-grid.ts","heading.ts","icon.ts","icon-button.ts","image.ts","input.ts","tooltip.ts","kbd.ts","link.ts","menu.ts","modal.ts","alert-dialog.ts","popover.ts","number-input.ts","pin-input.ts","pressable.ts","progress.ts","radio.ts","radio-group.ts","skeleton.ts","stat.ts","switch.ts","tabs.ts","tag.ts","text.ts","app-bar.ts","textarea.ts","textField.ts","toast.ts","transitions.ts","typeahead.ts","stack.ts","square.ts","view.ts","zstack.ts","slider.ts","actionsheet.ts","fab.ts","flex.ts","form-control.ts","inputleftaddon.ts","inputrightaddon.ts","list.ts","select.ts","spinner.ts","wrap.ts","ariaToAccessibilityMap.ts","node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","node_modules/@egjs/hammerjs/dist/hammer.esm.js","Errors.ts","NodeManager.ts","GestureHandler.ts","DraggingGestureHandler.ts","FlingGestureHandler.ts","DiscreteGestureHandler.ts","PressGestureHandler.ts","LongPressGestureHandler.ts","PanGestureHandler.ts","IndiscreteGestureHandler.ts","RNGestureHandlerModule.web.ts","TapGestureHandler.ts","node_modules/react-native-web/dist/exports/useWindowDimensions/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedEvent.js","node_modules/react-query/es/core/subscribable.js","node_modules/react-query/es/core/logger.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedClock.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","colors.ts","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCond.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedEvent.js","node_modules/react-native-reanimated/lib/reanimated1/core/createEventObjectProxyPolyfill.js","node_modules/react-native-web/dist/modules/TextInputState/index.js","node_modules/react-native-web/dist/exports/processColor/index.js","node_modules/react-native-web/dist/exports/NativeModules/index.js","node_modules/react-native-web/dist/exports/BackHandler/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/modules/useResponderEvents/ResponderEventTypes.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useSharedValue.js","node_modules/react-native-web/dist/exports/StyleSheet/css.js","node_modules/react-query/es/core/focusManager.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedValue.js","useHover.web.ts","node_modules/react-hook-form/dist/index.esm.mjs","node_modules/react-query/es/index.js","node_modules/lodash/_root.js","packages/@react-aria/focus/src/focusSafely.ts","packages/@react-aria/focus/src/isElementVisible.ts","packages/@react-aria/focus/src/FocusScope.tsx","packages/@react-aria/focus/src/useFocusRing.ts","packages/@react-aria/focus/src/FocusRing.tsx","packages/@react-aria/focus/src/useFocusable.tsx","packages/@react-stately/utils/src/useControlledState.ts","packages/@react-stately/utils/src/number.ts","node_modules/react-native-web/dist/exports/PixelRatio/index.js","node_modules/react-native-web/dist/exports/Appearance/index.js","node_modules/react-native-web/dist/modules/useLayoutEffect/index.js","Context.ts","node_modules/react-native-reanimated/lib/createAnimatedComponent.js","node_modules/react-native-reanimated/lib/reanimated2/WorkletEventHandler.js","borders.ts","breakpoints.ts","radius.ts","shadows.ts","space.ts","sizes.ts","opacity.ts","typography.ts","C:/Users/samst/AppData/Local/Yarn/Data/global/node_modules/webpack/buildin/module.js","ResponsiveQueryProvider.tsx","node_modules/react-native-web/dist/modules/pick/index.js","node_modules/react-query/es/core/onlineManager.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/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/usePressEvents/PressResponder.js","node_modules/react-native-web/dist/modules/usePressEvents/index.js","node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/index.js","node_modules/@datepicker-react/hooks/lib/index.esm.js","node_modules/tinycolor2/tinycolor.js","node_modules/react-native-web/dist/exports/StyleSheet/compile.js","node_modules/lodash.merge/index.js","node_modules/react-query/es/react/QueryClientProvider.js","node_modules/react-native-web/dist/vendor/react-native/Animated/nodes/AnimatedValueXY.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedAlways.js","node_modules/react-native-web/dist/exports/AppRegistry/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/stable-hash/dist/index.mjs","node_modules/react-native-web/dist/exports/Text/TextAncestorContext.js","node_modules/fast-json-stable-stringify/index.js","node_modules/@babel/runtime/helpers/construct.js","node_modules/react-native-reanimated/lib/ConfigHelper.js","node_modules/lodash.mergewith/index.js","node_modules/react-native-web/dist/modules/ImageLoader/index.js","C:/Users/samst/AppData/Local/Yarn/Data/global/node_modules/timers-browserify/main.js","node_modules/lodash/_getNative.js","node_modules/react-native-web/dist/exports/TextInput/index.js","node_modules/react-native-web/dist/exports/AccessibilityInfo/index.js","node_modules/react-native-web/dist/exports/NativeEventEmitter/index.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedSet.js","../src/NativeModulesProxy.ts","node_modules/react-native-web/dist/exports/ActivityIndicator/index.js","node_modules/react-native-web/dist/exports/Switch/index.js","node_modules/react-native-web/dist/exports/Linking/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/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/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","styled-system.ts","node_modules/lodash.isempty/index.js","node_modules/normalize-css-color/index.js","node_modules/react-native-web/dist/modules/useElementLayout/index.js","node_modules/react-native-web/dist/modules/usePlatformMethods/index.js","node_modules/react-native-web/dist/vendor/react-native/Animated/animations/Animation.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedParam.js","node_modules/lodash.isequal/index.js","node_modules/react-native-reanimated/lib/reanimated2/animation/timing.js","packages/@react-stately/toggle/src/useToggleState.ts","node_modules/dom-helpers/esm/ownerDocument.js","node_modules/dom-helpers/esm/getComputedStyle.js","node_modules/dom-helpers/esm/ownerWindow.js","node_modules/dom-helpers/esm/hyphenate.js","node_modules/dom-helpers/esm/hyphenateStyle.js","node_modules/dom-helpers/esm/isTransform.js","node_modules/dom-helpers/esm/css.js","node_modules/dom-helpers/esm/isWindow.js","node_modules/dom-helpers/esm/isDocument.js","node_modules/dom-helpers/esm/getScrollAccessor.js","node_modules/dom-helpers/esm/scrollLeft.js","node_modules/dom-helpers/esm/scrollTop.js","node_modules/dom-helpers/esm/offset.js","node_modules/dom-helpers/esm/contains.js","node_modules/dom-helpers/esm/position.js","node_modules/dom-helpers/esm/offsetParent.js","calculatePosition.ts","useCloseOnScroll.ts","useOverlayPosition.ts","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/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-reanimated/lib/reanimated1/core/AnimatedBezier.js","node_modules/react-native-reanimated/lib/reanimated1/Easing.js","hooks.tsx","node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","node_modules/react-native-reanimated/lib/ReanimatedEventEmitter.js","node_modules/react-native-web/dist/vendor/react-native/PooledClass/index.js","useToken.ts","node_modules/react-native-web/dist/vendor/react-native/VirtualizedList/VirtualizedListContext.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/object-utils.js","../node_modules/object-assign/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/invariant/invariant.js","../src/map-context.ts","../src/utils/helper.ts","../src/utils/foreach.ts","../src/utils/reduce.ts","../src/GoogleMap.tsx","../node_modules/tslib/tslib.es6.js","../src/utils/isbrowser.ts","../src/utils/injectscript.ts","../src/utils/prevent-google-fonts.ts","../src/utils/make-load-script-url.ts","../src/LoadScript.tsx","../src/useLoadScript.tsx","../src/LoadScriptNext.tsx","../node_modules/@googlemaps/js-api-loader/dist/index.esm.js","../src/components/maps/TrafficLayer.tsx","../src/components/maps/BicyclingLayer.tsx","../src/components/maps/TransitLayer.tsx","../src/components/drawing/DrawingManager.tsx","../src/components/drawing/Marker.tsx","../node_modules/@react-google-maps/marker-clusterer/dist/esm.js","../src/components/addons/MarkerClusterer.tsx","../node_modules/@react-google-maps/infobox/dist/esm.js","../src/components/addons/InfoBox.tsx","../node_modules/kdbush/kdbush.js","../node_modules/supercluster/index.js","../node_modules/fast-equals/dist/fast-equals.esm.js","../node_modules/@googlemaps/markerclusterer/dist/index.esm.js","../src/components/addons/GoogleMarkerClusterer.tsx","../src/components/drawing/InfoWindow.tsx","../src/components/drawing/Polyline.tsx","../src/components/drawing/Polygon.tsx","../src/components/drawing/Rectangle.tsx","../src/components/drawing/Circle.tsx","../src/components/drawing/Data.tsx","../src/components/kml/KmlLayer.tsx","../src/components/dom/dom-helper.ts","../src/components/dom/OverlayView.tsx","../src/components/overlays/GroundOverlay.tsx","../src/utils/noop.ts","../src/components/heatmap/HeatmapLayer.tsx","../src/components/streetview/StreetViewPanorama.tsx","../src/components/streetview/StreetViewService.tsx","../src/components/directions/DirectionsService.tsx","../src/components/directions/DirectionsRenderer.tsx","../src/components/distance-matrix/DistanceMatrixService.tsx","../src/components/places/StandaloneSearchBox.tsx","../src/components/places/Autocomplete.tsx","node_modules/css-in-js-utils/lib/isPrefixedValue.js","node_modules/react-query/es/core/index.js","FormControl.tsx","FormControlLabel.tsx","FormControlErrorMessage.tsx","FormControlHelperText.tsx","packages/@react-aria/ssr/src/SSRProvider.tsx","node_modules/react-query/es/react/QueryErrorResetBoundary.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCall.js","MMKV.ts","node_modules/fbjs/lib/warning.js","node_modules/react-native-reanimated/lib/reanimated2/animation/styleAnimation.js","node_modules/react-native-web/dist/exports/Touchable/index.js","node_modules/react-native-web/dist/exports/DrawerLayoutAndroid/index.js","node_modules/react-native-web/dist/exports/TouchableOpacity/index.js","node_modules/lodash.omit/index.js","node_modules/react-native-web/dist/exports/StyleSheet/ReactNativePropRegistry.js","node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","node_modules/react-native-web/dist/modules/useStable/index.js","wrapStringChild.tsx","ExitAnimationContext.ts","node_modules/react-native-reanimated/lib/reanimated1/derived/evaluateOnce.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/index.js","Transition.tsx","PresenceTransition.tsx","../src/Application.ts","../src/ExpoApplication.web.ts","node_modules/object-assign/index.js","node_modules/lodash/_ListCache.js","node_modules/lodash/_assocIndexOf.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/_nativeCreate.js","node_modules/lodash/_getMapData.js","node_modules/lodash/isObjectLike.js","node_modules/react-native-web/dist/exports/useColorScheme/index.js","node_modules/react-query/es/core/mutationCache.js","node_modules/react-query/es/core/mutationObserver.js","node_modules/react-native-web/dist/exports/RefreshControl/index.js","node_modules/react-native-web/dist/exports/SafeAreaView/index.js","node_modules/react-native-reanimated/lib/reanimated2/hook/useAnimatedStyle.js","node_modules/react-native-web/dist/exports/TouchableHighlight/index.js","node_modules/react-native-web/dist/exports/TouchableNativeFeedback/index.js","node_modules/react-native-web/dist/exports/VirtualizedList/index.js","node_modules/react-native-web/dist/exports/Share/index.js","node_modules/react-native-web/dist/exports/TouchableWithoutFeedback/index.js","node_modules/react-native-web/dist/exports/KeyboardAvoidingView/index.js","node_modules/react-native-web/dist/exports/Alert/index.js","node_modules/react-native-web/dist/exports/LogBox/index.js","node_modules/react-native-web/dist/exports/render/index.js","node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","PlatformConstants.web.ts","ForceTouchGestureHandler.ts","node_modules/react-query/es/core/query.js","node_modules/react-query/es/core/queryCache.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedCallFunc.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedFunction.js","node_modules/clsx/dist/clsx.m.js","node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","node_modules/react-native-web/dist/modules/useResponderEvents/ResponderTouchHistoryStore.js","node_modules/react-native-web/dist/modules/createDOMProps/index.js","node_modules/react-native-web/dist/modules/mergeRefs/index.js","useResolvedFontFamily.ts","node_modules/react-query/es/core/mutation.js","node_modules/react-query/es/react/utils.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/react-native-web/dist/modules/dismissKeyboard/index.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/MutableValue.js","node_modules/react-native-reanimated/lib/reanimated2/NativeReanimated/NativeReanimated.js","node_modules/@babel/runtime/helpers/wrapNativeSuper.js","node_modules/react-native-web/dist/modules/UnimplementedView/index.js","node_modules/color/index.js","node_modules/fuse.js/dist/fuse.esm.js","Slide.tsx","Fade.tsx","Modal.tsx","useKeyboardBottomInset.ts","ModalContent.tsx","ModalBody.tsx","ModalCloseButton.tsx","ModalFooter.tsx","ModalHeader.tsx","getSpacedChildren.tsx","Stack.tsx","questionIconPath.tsx","SVGIcon.tsx","node_modules/react-native-web/dist/modules/isWebColor/index.js","node_modules/react-native-web/dist/modules/normalizeColor/index.js","VStack.tsx","HStack.tsx","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/defaultAnimations/Default.js","node_modules/react-query/es/core/hydration.js","node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/lodash/_Map.js","node_modules/lodash/_Symbol.js","node_modules/lodash/isArray.js","node_modules/hyphenate-style-name/index.js","node_modules/jotai/utils.js","createContext.tsx","node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","common.ts","hash.ts","node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","propsFlattener.tsx","useNativeBase.tsx","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/react-native-web/dist/vendor/react-native/ViewabilityHelper/index.js","node_modules/react-native-web/dist/modules/AssetRegistry/index.js","node_modules/react-native-reanimated/lib/reanimated2/ViewDescriptorsSet.js","node_modules/react-native-web/dist/exports/Touchable/Position.js","node_modules/react-native-web/dist/exports/Touchable/BoundingDimensions.js","gestureStateManager.ts","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/modules/prefixStyles/static.js","node_modules/react-native-web/dist/modules/prefixStyles/index.js","useStyledSystemPropsResolver.ts","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/fbjs/lib/emptyFunction.js","node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","node_modules/react-query/es/react/index.js","node_modules/react-query/es/react/useMutation.js","node_modules/react-query/es/core/queryObserver.js","node_modules/react-native-reanimated/lib/reanimated2/layoutReanimation/LayoutAnimationRepository.js","../src/requireNativeModule.ts","node_modules/lodash/eq.js","node_modules/lodash/isFunction.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/isObject.js","node_modules/lodash/_toSource.js","node_modules/lodash/_MapCache.js","node_modules/lodash/_equalArrays.js","node_modules/lodash/isBuffer.js","node_modules/lodash/isTypedArray.js","node_modules/lodash/isLength.js","GestureDetector.tsx","node_modules/uuid/lib/rng-browser.js","node_modules/uuid/lib/bytesToUuid.js","node_modules/color-name/index.js","node_modules/color/node_modules/color-convert/conversions.js","node_modules/react-router-dom/index.js","node_modules/fbemitter/lib/EmitterSubscription.js","../src/Updates.types.ts","../src/ExpoUpdates.web.ts","../src/Updates.ts","node_modules/react-query/es/core/infiniteQueryBehavior.js","node_modules/react-query/es/core/queryClient.js","node_modules/react-query/es/react/useQuery.js","node_modules/react-query/es/react/useBaseQuery.js","createMMKV.web.ts","node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js","node_modules/lodash.clonedeep/index.js","node_modules/lodash.omitby/index.js","node_modules/lodash.pick/index.js","useContrastText.ts","node_modules/react-native-web/dist/exports/StyleSheet/validate.js","useStableMemo.ts","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/react-native-web/dist/vendor/hash/index.js","useResponsiveSSRProps.ts","useBreakpointResolvedProps.ts","NativeSafeAreaProvider.web.tsx","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/Utilities/setAndForwardRef.js","node_modules/create-react-class/index.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/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/FillRateHelper/index.js","node_modules/react-native-web/dist/vendor/react-native/Batchinator/index.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/JSReanimated.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/MapperRegistry.js","node_modules/react-native-reanimated/lib/reanimated2/js-reanimated/Mapper.js","node_modules/react-native-reanimated/lib/setAndForwardRef.js","node_modules/react-native-reanimated/lib/reanimated2/platform-specific/RNRenderer.web.js","node_modules/compare-versions/index.js","node_modules/fontfaceobserver/fontfaceobserver.standalone.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/lodash/isEqual.js","node_modules/uuid/index.js","packages/@react-aria/label/src/useLabel.ts","packages/@react-aria/label/src/useField.ts","node_modules/fbemitter/index.js","node_modules/dayjs/plugin/localizedFormat.js","node_modules/react-query/es/createAsyncStoragePersistor-experimental/index.js","node_modules/react-query/es/persistQueryClient-experimental/index.js","node_modules/react-native-animatable/wrapStyleTransforms.js","node_modules/react-native-animatable/flattenStyle.js","node_modules/react-native-animatable/getDefaultStyleValue.js","node_modules/react-native-animatable/getStyleValues.js","node_modules/react-native-animatable/createAnimation.js","node_modules/react-native-animatable/registry.js","node_modules/react-native-animatable/easing.js","node_modules/react-native-animatable/createAnimatableComponent.js","node_modules/react-native-animatable/definitions/attention-seekers.js","node_modules/react-native-animatable/definitions/bouncing-entrances.js","node_modules/react-native-animatable/definitions/bouncing-exits.js","node_modules/react-native-animatable/definitions/fading-entrances.js","node_modules/react-native-animatable/definitions/fading-exits.js","node_modules/react-native-animatable/definitions/flippers.js","node_modules/react-native-animatable/definitions/lightspeed.js","node_modules/react-native-animatable/definitions/sliding-entrances.js","node_modules/react-native-animatable/definitions/sliding-exits.js","node_modules/react-native-animatable/definitions/zooming-entrances.js","node_modules/react-native-animatable/definitions/zooming-exits.js","node_modules/react-native-animatable/index.js","node_modules/react-native-modal/dist/utils.js","node_modules/react-native-modal/dist/modal.style.js","node_modules/react-native-modal/dist/modal.js","node_modules/react-native-modal/dist/index.js","node_modules/react-native-map-link/src/constants.js","node_modules/react-native-map-link/src/utils.js","node_modules/react-native-map-link/src/index.js","node_modules/react-native-map-link/src/components/Popup.js","../src/ExpoStatusBar.tsx","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedTransform.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedStyle.js","node_modules/react-native-reanimated/lib/reanimated1/core/AnimatedProps.js","hooks.ts","../src/ExpoSharing.web.ts","../src/Sharing.ts","Input.tsx","node_modules/@hookform/resolvers/dist/resolvers.module.js","node_modules/@hookform/resolvers/zod/dist/zod.module.js","Toast.tsx","Warning.tsx","Info.tsx","AlertIcon.tsx","Alert.tsx","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/regenerator-runtime/runtime.js","node_modules/react/cjs/react.production.min.js","C:/Users/samst/AppData/Local/Yarn/Data/global/node_modules/setimmediate/setImmediate.js","node_modules/react/cjs/react-jsx-runtime.production.min.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.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/react-dom/cjs/react-dom.production.min.js","node_modules/scheduler/index.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/create-react-class/factory.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/superPropBase.js","node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/isNativeFunction.js","node_modules/hoist-non-react-statics/node_modules/react-is/index.js","node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","node_modules/lodash/_baseIsEqual.js","node_modules/lodash/_baseIsEqualDeep.js","node_modules/lodash/_Stack.js","node_modules/lodash/_listCacheClear.js","node_modules/lodash/_listCacheDelete.js","node_modules/lodash/_listCacheGet.js","node_modules/lodash/_listCacheHas.js","node_modules/lodash/_listCacheSet.js","node_modules/lodash/_stackClear.js","node_modules/lodash/_stackDelete.js","node_modules/lodash/_stackGet.js","node_modules/lodash/_stackHas.js","node_modules/lodash/_stackSet.js","node_modules/lodash/_baseIsNative.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_isMasked.js","node_modules/lodash/_coreJsData.js","node_modules/lodash/_getValue.js","node_modules/lodash/_mapCacheClear.js","node_modules/lodash/_Hash.js","node_modules/lodash/_hashClear.js","node_modules/lodash/_hashDelete.js","node_modules/lodash/_hashGet.js","node_modules/lodash/_hashHas.js","node_modules/lodash/_hashSet.js","node_modules/lodash/_mapCacheDelete.js","node_modules/lodash/_isKeyable.js","node_modules/lodash/_mapCacheGet.js","node_modules/lodash/_mapCacheHas.js","node_modules/lodash/_mapCacheSet.js","node_modules/lodash/_SetCache.js","node_modules/lodash/_setCacheAdd.js","node_modules/lodash/_setCacheHas.js","node_modules/lodash/_arraySome.js","node_modules/lodash/_cacheHas.js","node_modules/lodash/_equalByTag.js","node_modules/lodash/_Uint8Array.js","node_modules/lodash/_mapToArray.js","node_modules/lodash/_setToArray.js","node_modules/lodash/_equalObjects.js","node_modules/lodash/_getAllKeys.js","node_modules/lodash/_baseGetAllKeys.js","node_modules/lodash/_arrayPush.js","node_modules/lodash/_getSymbols.js","node_modules/lodash/_arrayFilter.js","node_modules/lodash/stubArray.js","node_modules/lodash/keys.js","node_modules/lodash/_arrayLikeKeys.js","node_modules/lodash/_baseTimes.js","node_modules/lodash/isArguments.js","node_modules/lodash/_baseIsArguments.js","node_modules/lodash/stubFalse.js","node_modules/lodash/_isIndex.js","node_modules/lodash/_baseIsTypedArray.js","node_modules/lodash/_baseUnary.js","node_modules/lodash/_nodeUtil.js","node_modules/lodash/_baseKeys.js","node_modules/lodash/_isPrototype.js","node_modules/lodash/_nativeKeys.js","node_modules/lodash/_overArg.js","node_modules/lodash/isArrayLike.js","node_modules/lodash/_getTag.js","node_modules/lodash/_DataView.js","node_modules/lodash/_Promise.js","node_modules/lodash/_Set.js","node_modules/lodash/_WeakMap.js","node_modules/uuid/v1.js","node_modules/uuid/v4.js","node_modules/color/node_modules/color-string/index.js","node_modules/simple-swizzle/index.js","node_modules/simple-swizzle/node_modules/is-arrayish/index.js","node_modules/color/node_modules/color-convert/index.js","node_modules/color/node_modules/color-convert/route.js","node_modules/fbemitter/lib/BaseEventEmitter.js","node_modules/fbemitter/lib/EventSubscription.js","node_modules/fbemitter/lib/EventSubscriptionVendor.js","node_modules/prop-types/factoryWithThrowingShims.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","node_modules/react-native-map-link/src/images/apple-maps.png","node_modules/react-native-map-link/src/images/google-maps.png","node_modules/react-native-map-link/src/images/citymapper.png","node_modules/react-native-map-link/src/images/uber.png","node_modules/react-native-map-link/src/images/lyft.png","node_modules/react-native-map-link/src/images/transit.png","node_modules/react-native-map-link/src/images/truckmap.png","node_modules/react-native-map-link/src/images/waze.png","node_modules/react-native-map-link/src/images/yandex.png","node_modules/react-native-map-link/src/images/moovit.png","node_modules/react-native-map-link/src/images/yandex-taxi.png","node_modules/react-native-map-link/src/images/yandex-maps.png","node_modules/react-native-map-link/src/images/kakao-map.png","node_modules/react-native-map-link/src/images/mapycz.png","node_modules/react-native-map-link/src/images/maps-me.png","node_modules/react-native-map-link/src/images/osmand.png","node_modules/react-native-map-link/src/images/gett.png","node_modules/react-native-map-link/src/images/naver-map.png","node_modules/react-native-map-link/src/images/dgis.png","node_modules/react-native-map-link/src/images/liftago.png","node_modules/react-native-map-link/src/images/petalmaps.png","node_modules/dayjs/locale/en-gb.js","../src/ExpoErrorRecovery.web.ts","../src/ErrorRecovery.ts","../src/ErroRecoveryStore.ts","node_modules/react-query/es/react/reactBatchedUpdates.js","node_modules/react-query/es/react/setBatchUpdatesFn.js","node_modules/react-query/es/react/logger.js","node_modules/react-query/es/react/setLogger.js","useResponsiveQuery.web.ts","Overlay.tsx","useKeyboardDismissable.ts","Close.tsx","combineContextAndProps.ts","component.tsx","usePropsWithComponentTheme.ts","Icon.tsx","SafeAreaContext.tsx","Check.tsx","ScrollView.tsx","useControllableProp.ts","Popper.tsx","extendTheme.tsx","Center.tsx","packages/@react-aria/visually-hidden/src/VisuallyHidden.tsx","packages/@react-stately/checkbox/src/useCheckboxGroupState.ts","packages/@react-aria/toggle/src/useToggle.ts","packages/@react-aria/checkbox/src/useCheckbox.ts","packages/@react-aria/checkbox/src/utils.ts","packages/@react-aria/checkbox/src/useCheckboxGroup.ts","packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts","CheckboxGroup.tsx","useCheckboxGroup.web.ts","SizedIcon.tsx","Checkbox.web.tsx","../src/Font.types.ts","../src/ExpoFontLoader.web.ts","../src/FontLoader.web.ts","../src/Font.ts","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/ensure-native-module-available.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/icon-button.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-set.js","node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/lib/create-icon-source-cache.js","../src/createIconSet.tsx","../src/MaterialCommunityIcons.ts","ActionSheetContext.ts","Actionsheet.tsx","ActionsheetItem.tsx","ActionsheetContent.tsx","Chevron.tsx","FlatList.tsx","Select.tsx","SelectItem.tsx","PopoverContext.ts","Popover.tsx","PopoverContent.tsx","PopoverBody.tsx","PopoverCloseButton.tsx","PopoverFooter.tsx","PopoverHeader.tsx","PopoverArrow.tsx","useMenu.tsx","MenuContext.ts","Menu.tsx","MenuGroup.tsx","MenuItem.tsx","MenuOptionGroup.tsx","MenuItemOption.tsx","../../src/environment/react-native-logs.fx.ts","../../src/launch/withExpoRoot.web.tsx","../../src/launch/RecoveryProps.ts","../../src/launch/registerRootComponent.tsx","../src/FileSystem.types.ts","../src/ExponentFileSystem.web.ts","../src/ExponentFileSystemShim.ts","../src/FileSystem.ts","Button.tsx","ButtonGroup.tsx","HybridProvider.tsx","NativeBaseProvider.tsx","InitialWindow.ts","../src/getBackgroundColor.ts","../src/BlurView.web.tsx"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","protoProps","staticProps","prototype","AnimatedStartClock","clockNode","invariant","AnimatedClock","AnimatedParam","type","clock","_clockNode","this","__nodeID","start","AnimatedNode","createAnimatedStartClock","AnimatedStopClock","stop","createAnimatedStopClock","AnimatedClockTest","isStarted","createAnimatedClockTest","message","_message","_value","val","console","log","createAnimatedDebug","AnimatedConcat","input","every","el","_input","reduce","prev","current","createAnimatedConcat","args","map","adapt","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","subClass","superClass","create","constructor","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arr","useCode","nodeFactory","dependencies","React","useEffect","Function","warn","node","Array","block","animatedAlways","always","__attach","__detach","Code","exec","children","nodes","code","Error","assertNodesNotNull","procDecay","proc","time","velocity","position","finished","deceleration","state","config","lastTime","cond","deltaTime","sub","kv","pow","kx","divide","multiply","v0","v","x","add","set","lessThan","abs","decay","internalTiming","frameTime","toValue","duration","nextProgress","progress","newFrameTime","distanceLeft","fullDistance","startPosition","nextPosition","greaterOrEq","procSpring","prevPosition","damping","mass","stiffness","overshootClamping","restSpeedThreshold","restDisplacementThreshold","min","c","m","k","x0","zeta","sqrt","omega0","omega1","t","sin1","sin","cos1","cos","underDampedEnvelope","exp","underDampedFrag1","underDampedPosition","underDampedVelocity","criticallyDampedEnvelope","criticallyDampedPosition","criticallyDampedVelocity","AnimatedValue","isOvershooting","and","neq","greaterThan","isVelocity","isDisplacement","or","eq","spring","Animation","TransitioningContext","createContext","configFromProps","durationMs","interpolation","animation","delayMs","propagation","wrapTransitioningContext","Comp","Consumer","context","In","push","Component","Change","Out","Together","transitions","Provider","Sequence","sequence","createTransitioningComponent","propTypes","viewRef","createRef","animateMount","animateNextTransition","setNativeProps","viewTag","findNodeHandle","ReanimatedModule","transition","rest","Fragment","ref","collapsable","Transitioning","View","Transition","stiffnessFromOrigamiValue","oValue","dampingFromOrigamiValue","stiffnessFromOrigamiNode","dampingFromOrigamiNode","makeDefaultConfig","makeConfigFromBouncinessAndSpeed","prevConfig","bounciness","speed","normalize","startValue","endValue","projectNormal","n","end","b","bouncyTension","bouncyFriction","tension","Math","b3Friction2","b3Friction3","b3Nobounce","linearInterpolation","fromBouncinessAndSpeedNumbers","lessOrEq","fromBouncinessAndSpeedNodes","makeConfigFromOrigamiTensionAndFriction","friction","useValue","initialValue","useRef","backwardsCompatibleAnimWrapper","animationStateDefaults","undefined","alwaysNode","animationCallback","newClock","Clock","currentState","isDone","wasStopped","currentAnimationCallback","isNativelyInitialized","evaluateOnce","clockRunning","startClock","call","__detachAnimation","stopClock","__attachAnimation","__addChild","__initialized","__removeChild","__stopImmediately_testOnly","result","createOldAnimationObject","procAcc","acc","procColor","r","g","a","color","round","Platform","OS","concat","procDiff","stash","defined","diff","diffClamp","minVal","maxVal","max","red","green","blue","opacity","interpolateColors","animationValue","options","inputRange","colors","outputColorRange","processColor","interpolate","outputRange","extrapolate","Extrapolate","CLAMP","procOnChange","action","prevValue","not","onChange","decayWrapper","backwardCompatibleAnimWrapper","decayDefaultState","timingWrapper","easing","timingDefaultState","springWrapper","springDefaultState","WrappedComponents","createAnimatedComponent","Text","Image","ScrollView","__rest","s","e","p","hasOwnProperty","indexOf","getOwnPropertySymbols","propertyIsEnumerable","AnimatedFlatList","FlatList","ReanimatedFlatlist","_a","itemLayoutAnimation","restProps","cellRenderer","useMemo","layout","onLayout","createCellRenderer","CellRendererComponent","ReanimatedComponents","useAnimatedProps","useAnimatedStyle","useWorkletCallback","fun","deps","useCallback","EventType","useAnimatedGestureHandler","handlers","useHandler","doDependenciesDiffer","useWeb","handler","event","nativeEvent","BEGAN","onStart","ACTIVE","onActive","oldState","END","onEnd","FAILED","onFail","CANCELLED","onCancel","onFinish","useEvent","useAnimatedReaction","prepare","react","_b","previous","useSharedValue","values","_closure","__workletHash","mapperId","startMapper","stopMapper","getTag","view","isNativeIndefined","shouldBeUseWeb","measure","animatedRef","_WORKLET","NaN","y","width","height","pageX","pageY","_measure","scrollTo","animated","_scrollTo","setGestureState","handlerTag","newState","_setGestureState","useAnimatedRef","tag","component","useAnimatedScrollHandler","scrollHandlers","onScroll","subscribeForEvents","onBeginDrag","onEndDrag","onMomentumBegin","onMomentumEnd","eventName","endsWith","useDerivedValue","processor","initRef","inputs","makeMutable","initialUpdaterRun","sharedValue","SensorType","Extrapolation","useAnimatedSensor","sensorType","userConfig","sensorData","sensor","unregister","isAvailable","interval","ROTATION","qw","qx","qy","qz","yaw","pitch","roll","z","id","NativeReanimated","registerSensor","unregisterSensor","ColorSpace","isNode","__nodeId","getVal","coef","leftEdgeOutput","rightEdgeOutput","IDENTITY","EXTEND","isExtrapolate","validateType","extrapolationConfig","extrapolateLeft","extrapolateRight","internalInterpolate","narrowedInput","leftEdgeInput","rightEdgeInput","output","interpolateNode","interpolateColorsHSV","h","hsvToColor","interpolateColorsRGB","rgbaColor","getInterpolateRGB","processedColor","getInterpolateHSV","RGBtoHSV","interpolateColor","colorSpace","useInterpolateConfig","RGB","cache","interpolateSharableColor","interpolateConfig","HSV","createAnimatedPropAdapter","adapter","nativeProps","nativePropsToAdd","forEach","prop","addWhitelistedNativeProps","SVGAdapter","keys","includes","isArray","transform","translateX","translateY","replace","split","parseFloat","TextInputAdapter","text","BaseAnimationBuilder","randomizeDelay","build","durationV","delayV","callback","callbackV","random","withDelay","_","createInstance","delay","withCallback","randomDelay","ComplexAnimationBuilder","easingFunction","easingV","degree","rotateV","withSpring","dampingV","massV","stiffnessV","overshootClampingV","restDisplacementThresholdV","restSpeedThresholdV","initialValues","rotate","withTiming","springify","withInitialValues","Keyframe","definitions","delayFunction","getDelayFunction","parseDefinitions","keyframes","_targetValues","animations","addAnimation","keyframePoints","Easing","linear","withSequence","apply","keyframePoint","transformProp","index","transformPropKey","toString","_this","parsedKeyframes","from","to","styleProp","transformStyle","animationKeyPoints","getAnimationDuration","currentKeyPoint","filter","parseInt","sort","keyPoint","keyframe","addKeyPointWith","addKeyPoint","FlipInXUp","arguments","getAnimationAndConfig","getDelay","targetValues","perspective","rotateX","targetHeight","FlipInYLeft","rotateY","targetWidth","FlipInXDown","FlipInYRight","FlipInEasyX","FlipInEasyY","FlipOutXUp","currentHeight","FlipOutYLeft","currentWidth","FlipOutXDown","FlipOutYRight","FlipOutEasyX","FlipOutEasyY","StretchInX","scaleX","StretchInY","scaleY","StretchOutX","StretchOutY","FadeIn","FadeInRight","FadeInLeft","FadeInUp","FadeInDown","FadeOut","FadeOutRight","FadeOutLeft","FadeOutUp","FadeOutDown","Dimensions","get","SlideInRight","originX","targetOriginX","SlideInLeft","SlideOutRight","currentOriginX","SlideOutLeft","SlideInUp","originY","targetOriginY","SlideInDown","SlideOutUp","currentOriginY","SlideOutDown","ZoomIn","scale","ZoomInRotate","ZoomInLeft","ZoomInRight","ZoomInUp","ZoomInDown","ZoomInEasyUp","ZoomInEasyDown","ZoomOut","ZoomOutRotate","ZoomOutLeft","ZoomOutRight","ZoomOutUp","ZoomOutDown","ZoomOutEasyUp","ZoomOutEasyDown","BounceIn","getDuration","BounceInDown","BounceInUp","BounceInLeft","BounceInRight","BounceOut","BounceOutDown","BounceOutUp","BounceOutLeft","BounceOutRight","LightSpeedInRight","skewX","LightSpeedInLeft","LightSpeedOutRight","LightSpeedOutLeft","PinwheelIn","_values","PinwheelOut","RotateInDownLeft","RotateInDownRight","RotateInUpLeft","RotateInUpRight","RotateOutDownLeft","RotateOutDownRight","RotateOutUpLeft","RotateOutUpRight","RollInLeft","RollInRight","RollOutLeft","RollOutRight","LinearTransition","Layout","FadingTransition","SequencedTransition","reversed","reverse","JumpingTransition","d","out","bounce","CurvedTransition","easingXV","in","ease","easingYV","easingWidthV","easingHeightV","easingX","easingY","easingWidth","easingHeight","EntryExitTransition","enteringV","exitingV","enteringAnimation","exitingAnimation","exitingDuration","_c","_d","enteringValues","exitingValues","mergedTransform","objectKeys","error","entering","exiting","combineTransition","getRelativeCoords","parentRef","parentCoords","Animated","addWhitelistedUIProps","reanimated1","objectWithoutPropertiesLoose","source","excluded","sourceSymbolKeys","_extends","assign","_typeof","assertThisInitialized","self","defineAnimation","onFrame","now","lastTimestamp","previousAnimation","withDecay","velocityFactor","VELOCITY_EPS","startTimestamp","initialVelocity","clamp","validateConfig","_nextAnimation","nextAnimation","isHigherOrder","startTime","started","withRepeat","numberOfReps","reps","repeat","numberOfLoops","_animations","firstAnimation","currentAnim","animationIndex","nextAnim","select","web","default","process","canUseDOM","window","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","StyleSheet","flatten","validateFormat","format","condition","_len","_key","argIndex","String","name","framesToPop","ReferenceError","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","forwardPropsList","forwardedProps","href","lang","onWheel","pointerEvents","forwardedRef","hrefAttrs","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","toArray","item","hasTextAncestor","TextAncestorContext","hostRef","useElementLayout","useResponderEvents","style","compose","styles","inline","supportedProps","pick","pickProps","classList","download","rel","charAt","platformMethodsRef","usePlatformMethods","setRef","useMergeRefs","createElement","displayName","css","alignItems","border","boxSizing","display","flexBasis","flexDirection","flexShrink","margin","minHeight","minWidth","padding","zIndex","useHasResponsiveProps","arrayWithoutHoles","iterableToArray","nonIterableSpread","State","UNDETERMINED","NavigationContext","LocationContext","RouteContext","outlet","matches","matchRoutes","routes","locationArg","basename","pathname","stripBasename","branches","flattenRoutes","parentsMeta","parentPath","route","meta","relativePath","path","caseSensitive","childrenIndex","startsWith","slice","joinPaths","routesMeta","score","computeScore","compareIndexes","rankRouteBranches","matchRouteBranch","paramRe","isSplat","segments","initialScore","some","segment","test","branch","matchedParams","matchedPathname","remainingPathname","match","matchPath","params","pathnameBase","normalizePathname","pattern","matcher","paramNames","regexpSource","paramName","RegExp","compilePath","captureGroups","memo","splatValue","decodeURIComponent","safelyDecodeURIComponent","resolveTo","toArg","routePathnames","locationPathname","toPathname","routePathnameIndex","toSegments","shift","join","fromPathname","search","hash","pop","resolvePathname","normalizeSearch","normalizeHash","resolvePath","toLowerCase","nextChar","paths","useHref","useInRouterContext","navigator","useResolvedPath","joinedPathname","getToPathname","endsWithSlash","createHref","useLocation","location","useMatch","useNavigate","routePathnamesJson","JSON","stringify","activeRef","go","parse","OutletContext","_renderMatches","parentMatches","reduceRight","element","Navigate","_ref2","navigate","Outlet","useOutlet","Route","_props","Router","_ref3","basenameProp","locationProp","navigationType","Pop","static","staticProp","navigationContext","trailingPathname","Routes","_ref4","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","useRoutes","createRoutesFromChildren","UPDATED_NODES","loopID","propUpdatesEnqueued","nodeCount","callID","getCallID","setCallID","nextCallID","sanitizeConfig","property","runPropUpdates","visitedNodes","Set","findAndUpdateNodes","has","update","__getChildren","l","scheduleUpdates","requestAnimationFrame","setImmediate","nodeConfig","inputNodes","__lastLoopID","__memoizedValue","__children","__nodeConfig","__inputNodes","__nativeInitialize","__nativeTearDown","__onEvaluate","newValue","__markUpdated","createNode","dropNode","__getValue","child","connectNodes","__dangerouslyRescheduleEvaluate","disconnectNodes","splice","nativeViewTag","connectNodeToView","disconnectNodeFromView","isServer","noop","functionalUpdate","updater","isValidTimeout","Infinity","ensureQueryKeyArray","timeUntilStale","updatedAt","staleTime","Date","parseQueryArgs","arg1","arg2","arg3","isQueryKey","queryKey","queryFn","parseMutationArgs","mutationKey","mutationFn","parseFilterArgs","matchQuery","filters","query","active","exact","fetching","inactive","predicate","stale","queryHash","hashQueryKeyByOptions","partialMatchKey","queryStatusFilter","mapQueryStatusFilter","isActive","isStale","isFetching","matchMutation","mutation","hashQueryKey","status","queryKeyHashFn","isPlainObject","stableValueHash","partialDeepEqual","replaceEqualDeep","array","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","ctor","prot","sleep","timeout","Promise","resolve","setTimeout","scheduleMicrotask","then","catch","getAbortController","AbortController","FlatListWithEventThrottle","scrollEventThrottle","ScrollViewWithEventThrottle","SectionListWithEventThrottle","SectionList","_setPrototypeOf","AnimatedAddition","_AnimatedWithChildren","_proto","__makeNative","AnimatedInterpolation","__getNativeConfig","__getNativeTag","AnimatedWithChildren","AnimatedDiffClamp","_min","_max","_lastValue","AnimatedDivision","_warnedAboutDivideByZero","AnimatedModulo","modulus","_modulus","AnimatedMultiplication","AnimatedSubtraction","AnimatedTracking","_AnimatedNode","parent","animationClass","animationConfig","_parent","_animationClass","_animationConfig","_useNativeDriver","shouldUseNativeDriver","_callback","__isNative","animate","__getNativeAnimationConfig","animationId","generateNewAnimationId","_combineCallbacks","onComplete","maybeVectorAnim","anim","AnimatedValueXY","configX","configY","_config$key","aX","aY","parallel","stopTogether","timing","_start2","animatedValue","configuration","singleValue","singleConfig","stopTracking","track","TimingAnimation","stopAnimation","reset","resetAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","useNativeDriver","idx","doneCount","hasEnded","cb","endResult","Value","ValueXY","Interpolation","Node","_start3","DecayAnimation","_start","SpringAnimation","subtract","modulo","stagger","loop","_temp","_ref","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","argMapping","animatedEvent","AnimatedEvent","__getHandler","attachNativeEvent","forkEvent","listener","__addListener","unforkEvent","__removeListener","Event","__PropsOnlyForTests","AnimatedProps","emptyAnimation","anyValue","setValue","AnimatedImplementation","isTesting","AnimatedMock","appliedInset","originalValue","paddingKeys","sizes","paddingProps","isNil","manualInset","safeAreaProps","themeTools","topSafeAreaArray","topSafeAreaProps","insets","getValueInPixels","getRelatedPaddingProps","bottomSafeAreaArray","bottomSafeAreaProps","leftSafeAreaArray","leftSafeAreaProps","rightSafeAreaArray","rightSafeAreaProps","relatedKeys","useSafeAreaInsets","useTheme","sansPaddingProps","getSortedProps","calcualtedPaddingProps","pt","calculatePaddingTop","pb","calculatePaddingBottom","pl","calculatePaddingLeft","pr","calculatePaddingRight","calculatePaddingProps","StyledBox","makeStyledComponent","forwardRef","theme","usePropsResolution","resolvedProps","Gradient","useNativeBaseConfig","useSafeArea","lgrad","MemoizedGradient","getColor","startObj","endObj","backgroundColorProps","backgroundColorProp","locations","wrapStringChild","f","CALLBACK_TYPE","UNDEFINED","START","UPDATE","CHANGE","FINALIZE","TOUCHES_DOWN","TOUCHES_MOVE","TOUCHES_UP","TOUCHES_CANCELLED","isWorklet","addDependency","withRef","onBegin","onFinalize","onTouchesDown","onTouchesMove","onTouchesUp","onTouchesCancelled","enabled","shouldCancelWhenOutside","hitSlop","simultaneousWithExternalGesture","gesture","requireExternalGestureToFail","initialize","getNextHandlerTag","toGestureArray","onUpdate","manualActivation","nativeModule","_listenerCount","_nativeModule","_eventEmitter","NativeEventEmitter","startObserving","nativeEmitterSubscription","addListener","subscription","removeSubscription","removedListenerCount","listenerCount","listeners","removeAllListeners","stopObserving","remove","emit","isDOMAvailable","document","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isAsyncDebugging","moduleName","propertyName","NativeModulesProxy","PermissionStatus","useLayoutEffect","Map","defaultId","isRendering","nextId","res","updateValue","delete","newId","idA","idB","setIdA","setIdB","depArray","resolvedId","setResolvedId","updateId","getElementById","callbacks","charCodeAt","opts","labelable","propNames","filteredProps","focus","preventScroll","scrollableElements","parentNode","rootScrollingElement","scrollingElement","documentElement","HTMLElement","offsetHeight","scrollHeight","offsetWidth","scrollWidth","scrollTop","scrollLeft","orientation","rect","getBoundingClientRect","right","bottom","left","top","onTransitionEnd","properties","size","removeEventListener","clear","body","fn","readyState","containerRef","onHover","onDrag","onPositionChange","onIncrement","onDecrement","onIncrementToMax","onDecrementToMin","onCollapseToggle","getNextOffset","containerOffset","mouseOffset","clientX","clientY","getPosition","dragging","onMouseDragged","preventDefault","nextOffset","onMouseUp","currentTarget","elt","contains","globalListeners","addGlobalListener","eventTarget","once","removeGlobalListener","removeAllGlobalListeners","defaultLabel","label","labelledBy","ids","trim","objRef","effect","isInitialMount","onResize","ResizeObserver","resizeObserverInstance","entries","observe","unobserve","parentElement","getComputedStyle","overflow","overflowX","overflowY","visualViewport","setSize","newSize","innerWidth","innerHeight","description","setId","desc","textContent","appendChild","refCount","re","brands","brand","userAgent","platform","maxTouchPoints","handlerRef","isDisabled","defaultValue","valueRef","nextRef","next","done","queue","scrollView","offsetX","offsetY","maxX","maxY","ancestor","axis","sum","offsetParent","global","_setGlobalConsole","testWorklet","checkPluginState","throwError","isConfigured","isConfiguredCheck","pushFrame","frame","NativeReanimatedModule","_getTimestamp","requestFrame","native","runOnUI","worklet","makeShareable","getViewProp","propName","reject","substr","_log","nativeShouldBeMock","getTimestamp","_frameTimestamp","_eventTimestamp","_getCurrentTime","workletValueSetter","timestamp","_animation","cancelled","step","makeRemote","mapper","outputs","viewDescriptors","runOnJS","__callAsync","installCoreFunctions","initializeAnimation","_setValue","isWeb","capturableConsole","debug","info","performance","_chronoNow","featuresConfig","enableLayoutAnimations","setByUser","flag","isCallByUser","configureProps","uiProps","jestResetJsReanimatedModule","jestResetModule","ExecutionEnvironment","canUseWorkers","Worker","isInWorker","nativeEventEmitter","NativeAnimatedModule","RN$Bridgeless","NativeAnimatedTurboModule","NativeAnimatedNonTurboModule","__nativeAnimatedNodeTagCount","__nativeAnimationIdCount","waitingForQueuedOperations","queueOperations","API","getValue","saveValueCallback","setWaitingForIdentifier","unsetWaitingForIdentifier","disableQueue","startOperationBatch","q","finishOperationBatch","queueOperation","createAnimatedNode","startListeningToAnimatedNodeValue","stopListeningToAnimatedNodeValue","connectAnimatedNodes","parentTag","childTag","disconnectAnimatedNodes","startAnimatingNode","nodeTag","endCallback","setAnimatedNodeValue","setAnimatedNodeOffset","offset","flattenAnimatedNodeOffset","extractAnimatedNodeOffset","connectAnimatedNodeToView","disconnectAnimatedNodeFromView","restoreDefaultValues","dropAnimatedNode","addAnimatedEventToView","eventMapping","removeAnimatedEventFromView","animatedNodeTag","SUPPORTED_STYLES","borderRadius","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","elevation","shadowOpacity","shadowRadius","SUPPORTED_TRANSFORMS","rotateZ","SUPPORTED_INTERPOLATION_PARAMS","_warnedMissingNativeAnimated","addWhitelistedStyleProp","addWhitelistedTransformProp","addWhitelistedInterpolationParam","param","validateStyles","validateTransform","configs","validateInterpolation","_key2","generateNewNodeTag","assertNativeAnimatedModule","transformDataType","PI","_ease","float32ArraySupported","Float32Array","A","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","step0","step1","quad","cubic","poly","circle","elastic","back","_t","_t2","t2","x1","y1","x2","y2","_bezier","inOut","dimensions","fontScale","dimension","initialDimensions","_update","win","docEl","clientHeight","devicePixelRatio","clientWidth","_handler","NUMBER","PERCENTAGE","jsCachedMatchers","uiCachedMatchers","getMatchers","cachedMatchers","rgb","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","hslToRgb","parse255","str","int","Number","parse360","parse1","num","parsePercentage","names","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","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","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","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","normalizeColor","_e","_f","_g","_h","matchers","alpha","HSVtoRGB","floor","processColorInitially","normalizedColor","isColor","convertToHSVA","toRGBA","HSVA","superPropBase","_get","Reflect","receiver","base","_arrayLikeToArray","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","bind","minLen","_unsupportedIterableToArray","SUSPENSE_PROMISE","isSuspensePromise","promise","cancelSuspensePromise","suspensePromise","_suspensePromise$SUSP","_suspensePromise$SUSP2","isEqualSuspensePromise","oldSuspensePromise","newSuspensePromise","oldOriginalPromise","newOriginalPromise","createSuspensePromise","objectToAttach","hasInitialValue","atom","createStore","committedAtomStateMap","WeakMap","mountedMap","pendingMap","_step","_iterator","_step$value","atomState","suspensePromiseCacheMap","versionedAtomStateMapMap","getVersionedAtomStateMap","version","versionedAtomStateMap","getAtomState","_atomState","setAtomState","prevAtomState","createReadDependencies","prevReadDependencies","readDependencies","changed","_getAtomState","revision","setAtomValue","nextAtomState","is","flushPending","setAtomReadError","setAtomSuspensePromise","addSuspensePromiseToCache","setAtomPromiseOrValue","promiseOrValue","readAtomState","force","_atomState2","isSuspensePromiseAlreadyCancelled","aState","read","init","errorOrPromise","canUnmountAtom","mounted","invalidateDependents","dependent","setAtomInvalidated","writeAtomState","isSync","promiseOrVoid","write","writeGetter","unstable_promise","versionSet","cancelAllSuspensePromiseInCache","cancelledVersion","writeAtom","writingAtom","mountAtom","initialDependent","aMounted","isActuallyWritableAtom","onMount","onUnmount","u","unmountAtom","_mountedMap$get","mountDependencies","pending","readingAtom","_atom","commitVersionedAtomStateMap","addingAtom","addAtom","deletingAtom","delAtom","_step2","_iterator2","_step2$value","_atom2","createScopeContainer","unstable_createStore","SECRET_INTERNAL_store","ScopeContextMap","getScopeContext","scope","keyCount","useAtomValue","ScopeContext","store","useContext","getAtomValue","_useReducer","useReducer","nextVersion","nextValue","_useReducer$","atomFromUseReducer","rerenderIfChanged","unsubscribe","useDebugValue","useSetAtom","_useContext","versionedWrite","w","unstable_enableVersionedWrite","_useState","useState","setVersion","scopeContainerRef","parentVersion","ScopeContainerContext","SECRET_INTERNAL_getScopeContext","asyncGet","useAtom","gestureHandlerEventSubscription","gestureHandlerStateChangeEventSubscription","dummyStateManager","begin","activate","fail","lastUpdateEvent","onGestureHandlerEvent","findHandler","isStateChangeEvent","isTouchEvent","startListening","DeviceEventEmitter","stopListening","GestureHandlerRootView","container","flex","createHandler","allowedProps","nativeViewProps","NativeViewGestureHandler","NATIVE_WRAPPER_PROPS_FILTER","createNativeWrapper","ComponentWrapper","gestureHandlerProps","allowedKeys","_gestureHandlerRef","useImperativeHandle","numberOfPointers","direction","changePayload","forceChange","minForce","maxForce","feedbackOnActivation","changeEventCalculator","extendRelation","currentRelation","prepareSingleGesture","newConfig","simultaneousArray","gestures","gestureArrays","requireToFail","requireGesturesToFail","minDuration","minDurationMs","maxDistance","maxDist","changeX","changeY","translationY","activeOffsetY","activeOffsetYStart","activeOffsetYEnd","activeOffsetX","activeOffsetXStart","activeOffsetXEnd","failOffsetY","failOffsetYStart","failOffsetYEnd","failOffsetX","failOffsetXStart","failOffsetXEnd","minPointers","maxPointers","minDistance","minDist","minVelocity","minVelocityX","minVelocityY","averageTouches","avgTouches","enableTrackpadTwoFingerGesture","scaleChange","rotationChange","rotation","numberOfTaps","maxDuration","maxDurationMs","maxDelay","maxDelayMs","maxDeltaX","maxDeltaY","shouldActivateOnStart","disallowInterruption","accessibilityRole","RawButton","pointerInside","render","rippleColor","onGestureEvent","onHandlerStateChange","AnimatedBaseButton","btnStyles","underlay","resolvedStyle","onActiveStateChange","backgroundColor","RectButton","activeOpacity","underlayColor","BorderlessButton","borderless","TOUCHABLE_STATE","shouldCallOnPress","handlePressIn","pressInTimeout","moveToState","delayPressIn","delayLongPress","longPressTimeout","handleMoveOutside","pressOutTimeout","handleGoToUndetermined","clearTimeout","STATE","componentDidMount","longPressDetected","componentWillUnmount","onMoveIn","onMoveOut","coreProps","accessible","accessibilityLabel","accessibilityHint","accessibilityState","nativeID","disabled","testID","GenericTouchable","extraButtonProps","exclusive","TouchableWithoutFeedback","childStyle","onStateChange","TouchableOpacity","extraChildStyle","extraUnderlayStyle","renderChildren","TouchableHighlight","delayPressOut","TextInput","DrawerLayoutAndroid","RNDrawerLayoutAndroid","renderScrollComponent","scrollProps","overshootFriction","leftWidth","rowWidth","rightOffset","rightWidth","overshootLeft","overshootRight","transX","dragX","ev","translationX","rowState","leftThreshold","rightThreshold","startOffsetX","velocityX","rowTranslation","animationOptions","useNativeAnimations","UNSAFE_componentWillUpdate","updateAnimatedEvent","renderRightActions","renderLeftActions","leftActionTranslate","rightActionTranslate","onTapHandlerStateChange","Swipeable","leftActions","I18nManager","rightActions","drawerType","touchX","containerWidth","drawerPosition","touchXValue","dragOffsetFromOnStartPosition","drawerWidth","gestureOptions","Keyboard","StatusBar","gestureStartX","dragOffsetBasedOnStart","showing","accessibilityViewIsModal","edgeWidth","fromLeft","gestureOrientation","minSwipeDistance","fromValue","nextFramePosition","willShow","dynamicOverlayStyles","overlayColor","contentContainerStyle","drawerSlide","containerSlide","reverseContentDirection","dynamicDrawerStyles","openValue","containerStyles","drawerTranslateX","closedDrawerOffset","drawerStyles","handleContainerLayout","importantForAccessibility","drawerTranslation","drawerShown","drawerLockMode","DrawerLayout","Left","Right","drawerContainer","containerInFront","containerOnBack","absoluteFillObject","main","overlay","NativeAnimatedAPI","NativeAnimatedHelper","_uniqueId","_listeners","__nativeTag","__getAnimatedValue","hasListeners","_startListeningToNativeValueUpdates","removeListener","_stopListeningForNativeValueUpdates","__nativeAnimatedValueListener","__shouldUpdateListenersForNewNativeTag","data","_onAnimatedValueUpdateReceived","__callListeners","_this$__nativeTag","nativeTag","toJSON","findDOMNode","sanitizeValue","CONSTANT_VALUES","initializeConstantValues","InternalAnimatedValue","constant","_startingValue","_constant","_updateValue","__forceUpdateCache","number","stylingProps","flexbox","outline","background","omitBy","characters","charactersLength","ret","omitUndefined","orderedPick","omit","simpleColorScheme","colorScheme","customColorScheme","inValidBreakpointProps","breaks","themeBreakPointKeys","valArray","bPoint","currentBreakpoint","dimValues","breakpointsObj","breakpoints","baseFontSize","convertAbsoluteToRem","px","convertRemToAbsolute","rem","convertToDp","isAbsolute","numberRegex","isPx","isRem","isEm","finalDpValue","platformSpecificSpaceUnits","newTheme","scales","newScale","hasValidBreakpointFormat","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","on","off","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","notifyManager","NotifyManager","transactions","notifyFn","batchNotifyFn","batch","flush","schedule","batchCalls","_this2","_this3","setNotifyFunction","setBatchNotifyFunction","exportedModule","reanimatedJS","isJest","isChromeDebugger","nativeCallSyncHook","__REMOTEDEV__","numberOfLines","onClick","onPress","selectable","classes","textHasAncestor","textOneLine","textMultiLine","WebkitLineClamp","notSelectable","pressable","handleClick","stopPropagation","font","whiteSpace","wordWrap","maxWidth","textOverflow","WebkitBoxOrient","userSelect","cursor","_offset","setOffset","flattenOffset","extractOffset","handle","__isInteraction","InteractionManager","createInteractionHandle","clearInteractionHandle","_tracking","tracking","rootNode","animatedStyles","findAnimatedStyles","animatedStyle","_flush","$","M","weekdays","months","utcOffset","date","year","month","clone","ceil","D","ms","Q","S","O","locale","$L","utc","$u","$x","$offset","$d","substring","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","getTime","toDate","$locale","weekStart","$set","daysInMonth","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","mm","ss","SSS","Z","getTimezoneOffset","toISOString","toUTCString","extend","$i","isDayjs","en","Ls","commonProps","baseGestureHandlerProps","baseGestureHandlerWithMonitorProps","isConfigParam","filterConfig","defaults","filteredConfig","transformIntoHandlerTags","handlerIDs","handlerID","handlerIDToTag","findNodeHandleRN","Bezier","LinearEasing","EasingObject","factory","bezierFn","createChecker","workletName","prevArgs","checkIfReaOne","arg","EasingNode","asString","__location","eventNames","rebuild","WorkletEventHandler","updateWorklet","savedDependencies","nextDeps","prevDeps","objectIs","areHookInputsEqual","areDependenciesEqual","handlersList","buildWorkletsHash","workletHash","closure","buildDependencies","hasColorProps","updates","colorPropsSet","colorProps","parseColors","canApplyOptimalisation","upadterFn","optimalization","__optimalization","isAnimated","propsToCheck","currentProp","styleDiff","oldStyle","newStyle","oldValue","getStyleWithoutAnimations","validateAnimatedStyles","defaultProps","dataSet","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","focusable","accessibilityValue","clickProps","onClickCapture","onContextMenu","focusProps","onBlur","onFocus","keyboardProps","onKeyDown","onKeyDownCapture","onKeyUp","onKeyUpCapture","mouseProps","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOver","onMouseOut","touchProps","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","styleProps","IN_STYLE_UPDATER","recognizePrefixSuffix","prefix","suffix","strippedValue","decorateAnimation","baseOnStart","baseOnFrame","animationCopy","prefNumberSuffOnFrame","strippedCurrent","__prefix","__suffix","tab","colorOnFrame","HSVACurrent","arrayOnFrame","HSVAValue","HSVAToValue","colorOnStart","arrayOnStart","strippedToValue","prefNumberSuffOnStart","starting","cancelAnimation","dangerousStyleValue","isCustomProperty","isUnitlessNumber","setValueForStyles","styleName","styleValue","setProperty","getRect","_getBoundingClientRec","_measureLayout","relativeToNativeNode","relativeNode","relativeRect","_getRect","focusableElements","INPUT","SELECT","TEXTAREA","UIManager","blur","err","nodeName","getAttribute","setAttribute","measureInWindow","_getRect2","measureLayout","onSuccess","updateView","configureNextLayoutAnimation","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","accessibilityComponent","AccessibilityUtil","propsToAccessibilityComponent","domProps","createDOMProps","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","freeSelf","root","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","IE_PROTO","funcToString","objectToString","reIsNative","getNative","nativeCreate","symbolProto","symbolToString","Hash","entry","ListCache","MapCache","assocIndexOf","baseGet","isSymbol","isKey","stringToPath","castPath","toKey","baseIsNative","isObject","func","isFunction","isHostObject","toSource","getMapData","__data__","isKeyable","memoize","string","baseToString","quote","resolver","memoized","Cache","other","isObjectLike","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","adopt","_viewTag","_eventName","_nodeID","detachEvent","_config","_nativeProps","_uiProps","removeListeners","ReanimatedModuleCompat","_children","BottomSheetContext","BottomSheetProvider","BottomSheetInternalContext","BottomSheetInternalProvider","useBottomSheetInternal","unsafe","BottomSheetGestureHandlersContext","BottomSheetModalContext","BottomSheetModalInternalContext","GESTURE_SOURCE","SHEET_STATE","SCROLLABLE_STATE","SCROLLABLE_TYPE","ANIMATION_STATE","ANIMATION_SOURCE","ANIMATION_METHOD","KEYBOARD_STATE","WINDOW_WIDTH","ANIMATION_EASING","ANIMATION_CONFIGS_ANDROID","ANIMATION_CONFIGS","SCROLLABLE_DECELERATION_RATE_MAPPER","ios","android","KEYBOARD_BEHAVIOR","KEYBOARD_BLUR_BEHAVIOR","KEYBOARD_INPUT_MODE","useScrollEventsHandlersDefault","animatedSheetState","rootScrollableContentOffsetY","animatedScrollableContentOffsetY","handleOnScroll","animatedScrollableState","lockPosition","scrollableRef","scrollableContentOffsetY","handleOnBeginDrag","contentOffset","handleOnEndDrag","animatedAnimationState","handleOnMomentumEnd","normalizeSnapPoint","normalizedSnapPoint","containerHeight","point","getKeyboardAnimationConfigs","print","workletNoop","resetContext","useGestureHandler","gestureSource","handleOnStart","payload","handleOnActive","handleOnEnd","TAU","bin","mix","approximates","epsilon","normalizeRad","toDeg","rad","toRad","deg","avg","between","inclusive","cubicBezier","term","precision","cuberoot","solveCubic","roots","snapPoint","cubicBezierYForX","pa","pc","pd","fract","deltas","points","minDelta","useGestureEventsHandlersDefault","animatedContainerHeight","overDragResistanceFactor","animatedPosition","animatedKeyboardState","highestSnapPoint","animatedHighestSnapPoint","isInTemporaryPosition","lowestSnapPoint","enablePanDownToClose","animatedSnapPoints","isScrollableRefreshable","negativeScrollableContentOffset","draggedPosition","clampedPosition","animatedScrollableType","resistedPosition","velocityY","isSheetAtHighestSnapPoint","animateToPosition","isScrollable","absoluteY","WINDOW_HEIGHT","animatedKeyboardHeight","snapPoints","animatedClosedPosition","destinationPoint","KEYBOARD_EVENT_MAPPER","KEYBOARD_SHOW","KEYBOARD_HIDE","DEFAULT_KEYBOARD_BEHAVIOR","DEFAULT_KEYBOARD_BLUR_BEHAVIOR","DEFAULT_KEYBOARD_INPUT_MODE","INITIAL_CONTAINER_OFFSET","INITIAL_POSITION","useReactiveSharedValue","initialValueRef","useBottomSheetGestureHandlers","BottomSheetContainer","topInset","bottomInset","shouldCalculateHeight","containerStyle","detached","gestureEventsHandlersHook","useGestureEventsHandlers","animatedGestureSource","animatedHandleGestureState","contentPanGestureHandler","scrollablePanGestureHandler","handlePanGestureHandler","contextValue","BottomSheetBackdropContainer","BackdropComponent","backdropComponent","animatedIndex","indicator","alignSelf","BottomSheetHandle","indicatorStyle","BottomSheetHandleContainer","simultaneousHandlers","handleComponent","handleStyle","_providedIndicatorStyle","handleIndicatorStyle","_providedSimultaneousHandlers","refs","handleHeight","HandleComponent","_providedHandleComponent","waitFor","BottomSheetBackground","BottomSheetBackgroundContainer","backgroundComponent","_providedBackgroundStyle","backgroundStyle","BackgroundComponent","_providedBackgroundComponent","BottomSheetFooterContainer","FooterComponent","footerComponent","getKeyboardHeightInContainer","animatedFooterPosition","keyboardHeight","footerTranslateY","animatedFooterHeight","animatedHandleHeight","BottomSheetFooterContainerComponent","BottomSheetDraggableView","gestureType","panGestureRef","gestureHandler","contentContainer","contentMaskContainer","decelerationRate","BottomSheetComponent","BottomSheet","_snapPoints","_snapPoint","usePropsValidator","animationConfigs","_providedIndex","_providedSnapPoints","animateOnMount","enableContentPanningGesture","enableHandlePanningGesture","enableOverDrag","_providedHandleStyle","keyboardBehavior","keyboardBlurBehavior","android_keyboardInputMode","contentHeight","_providedAnimatedPosition","onClose","onAnimate","$modal","_animatedContainerHeight","_providedContainerHeight","verticalInset","animatedContainerOffset","_providedContainerOffset","_providedHandleHeight","providedSnapPoints","useNormalizedSnapPoints","closedPosition","animatedSheetHeight","animatedCurrentIndex","animatedNextPosition","animatedNextPositionIndex","isAnimatedOnMount","isContentHeightFixed","isLayoutCalculated","isContainerHeightCalculated","isHandleHeightCalculated","isSnapPointsNormalized","isForcedClosing","animatedContentGestureState","previousScrollableRef","animatedScrollableOverrideState","setScrollableRef","removeScrollableRef","useScrollable","shouldHandleKeyboardEvents","keyboardState","keyboardAnimationEasing","keyboardAnimationDuration","temporaryCachedKeyboardEvent","handleKeyboardEvent","showSubscription","hideSubscription","animationEasing","animationDuration","useKeyboard","animatedAnimationSource","extendedPosition","keyboardHeightInContainer","extendedPositionWithKeyboard","animatedContentHeight","contentWithKeyboardHeight","adjustedSnapPoints","adjustedSnapPointsIndexes","currentIndex","BottomSheetGestureHandlersProvider","DEFAULT_OVER_DRAG_RESISTANCE_FACTOR","getNextPosition","DEFAULT_ENABLE_PAN_DOWN_TO_CLOSE","handleOnChange","_providedOnChange","handleOnAnimate","toPoint","toIndex","_providedOnAnimate","animateToPositionCompleted","method","DEFAULT_ENABLE_CONTENT_PANNING_GESTURE","currentPosition","handleSnapToIndex","handleSnapToPosition","handleClose","handleForceClose","handleExpand","handleCollapse","snapToIndex","snapToPosition","expand","collapse","close","forceClose","internalContextVariables","externalContextVariables","containerAnimatedStyle","_providedStyle","contentContainerAnimatedStyle","_providedAnimationConfigs","contentMaskContainerAnimatedStyle","paddingBottom","contentMaskContainerStyle","_isLayoutCalculated","_previousSnapPoints","_previousResult","_previousContainerHeight","animationSource","_keyboardState","_keyboardHeight","_previousKeyboardState","_previousKeyboardHeight","hasActiveGesture","_animatedPosition","_animatedIndex","_providedAnimatedIndex","_animationState","_contentGestureState","_handleGestureState","_providedHandleIndicatorStyle","ACTIONS","urlAlphabet","INITIAL_STATE","PortalStateContext","PortalDispatchContext","usePortal","hostName","dispatch","registerHost","deregisterHost","addUpdatePortal","portalName","removePortal","addPortal","updatePortal","Portal","handleOnMount","handleOnUnmount","handleOnUpdate","_providedName","nanoid","handleOnMountRef","handleOnUnmountRef","handleOnUpdateRef","_providedHandleOnMount","_providedHandleOnUnmount","_providedHandleOnUpdate","PortalHost","usePortalState","reducer","clonedState","PortalProvider","rootHostName","shouldAddRootHost","BottomSheetModalComponent","stackBehavior","enableDismissOnClose","onDismiss","bottomSheetProps","useBottomSheetModalInternal","willUnmountSheet","unmountPortal","bottomSheetRef","currentIndexRef","restoreIndexRef","minimized","forcedDismissed","resetVariables","unmount","_mounted","unmountSheet","setMount","_providedOnDismiss","handlePresent","mountSheet","handleDismiss","handleMinimize","handleRestore","handlePortalOnUnmount","handlePortalRender","handleBottomSheetOnChange","_index","handleBottomSheetOnClose","dismiss","present","minimize","restore","mount","BottomSheetModal","createBottomSheetScrollableComponent","enableFooterMarginAdjustment","overScrollMode","keyboardDismissMode","showsVerticalScrollIndicator","nativeGestureRef","refreshControlGestureRef","useScrollEventsHandlers","handleOnMomentumBegin","scrollHandler","useScrollHandler","scrollableAnimatedProps","marginBottom","useFocusHook","handleSettingScrollable","contentOffsetY","useScrollableSetter","onRefresh","scrollableContent","animatedProps","refreshing","progressViewOffset","refreshControl","AnimatedSectionList","BottomSheetSectionListComponent","BottomSheetSectionList","BottomSheetFlatListComponent","BottomSheetFlatList","AnimatedScrollView","BottomSheetScrollViewComponent","BottomSheetScrollView","AnimatedVirtualizedList","BottomSheetVirtualizedListComponent","BottomSheetVirtualizedList","BottomSheetView","focusHook","containerStylePaddingBottom","flattenStyle","BottomSheetTextInputComponent","handleOnFocus","handleOnBlur","BottomSheetTextInput","BottomSheetBackdrop","appearsOnIndex","disappearsOnIndex","enableTouchThrough","pressBehavior","useBottomSheet","_providedOpacity","_providedAppearsOnIndex","_providedDisappearsOnIndex","_providedEnableTouchThrough","handleOnPress","handleContainerTouchability","shouldDisableTouchability","TapGestureHandler","BottomSheetFooter","Reanimated","require","emptyObject","createReactClass","mixins","ScrollResponder","Mixin","getInitialState","scrollResponderMixinGetInitialState","flashScrollIndicators","scrollResponderFlashScrollIndicators","getScrollResponder","getScrollableNode","_scrollNodeRef","getInnerViewRef","_innerViewRef","getInnerViewNode","getNativeScrollRef","scrollResponderScrollTo","scrollToEnd","horizontal","scrollResponder","scrollResponderNode","scrollResponderGetScrollableNode","_this$props","onContentSizeChange","stickyHeaderIndices","pagingEnabled","sourceKeys","_objectWithoutPropertiesLoose","childLayoutProps","contentSizeChangeProps","_handleContentOnLayout","hasStickyHeaderIndices","Children","isSticky","stickyHeader","pagingEnabledChild","_setInnerViewRef","contentContainerHorizontal","baseStyle","baseHorizontal","baseVertical","pagingEnabledStyle","pagingEnabledHorizontal","pagingEnabledVertical","scrollResponderHandleTouchStart","scrollResponderHandleTouchMove","scrollResponderHandleTouchEnd","onScrollBeginDrag","scrollResponderHandleScrollBeginDrag","onScrollEndDrag","scrollResponderHandleScrollEndDrag","onMomentumScrollBegin","scrollResponderHandleMomentumScrollBegin","onMomentumScrollEnd","scrollResponderHandleMomentumScrollEnd","scrollResponderHandleStartShouldSetResponder","scrollResponderHandleStartShouldSetResponderCapture","scrollResponderHandleScrollShouldSetResponder","_handleScroll","scrollResponderHandleResponderGrant","scrollResponderHandleTerminationRequest","scrollResponderHandleTerminate","scrollResponderHandleResponderRelease","scrollResponderHandleResponderReject","ScrollViewClass","ScrollViewBase","_setScrollNodeRef","cloneElement","_e$nativeEvent$layout","dismissKeyboard","scrollResponderHandleScroll","scrollResponderZoomTo","scrollResponderScrollNativeHandleToKeyboard","mergeRefs","commonStyle","flexGrow","translateZ","WebkitOverflowScrolling","scrollSnapType","scrollSnapAlign","ForwardedScrollView","useStyledSystemPropsResolver","Action","readOnly","createBrowserHistory","_options$window","defaultView","globalHistory","history","getIndexAndLocation","_window$location","usr","blockedPopTx","blockers","nextAction","_getIndexAndLocation","nextIndex","nextLocation","delta","retry","applyTx","_getIndexAndLocation2","createEvents","createPath","getNextLocation","parsePath","createKey","getHistoryStateAndUrl","allowTx","_getIndexAndLocation3","replaceState","Push","_getHistoryStateAndUr","historyState","url","pushState","Replace","_getHistoryStateAndUr2","forward","listen","blocker","unblock","promptBeforeUnload","createHashHistory","_options2$window","_parsePath","_parsePath$pathname","_parsePath$search","_parsePath$hash","handlePop","_getIndexAndLocation4","_getIndexAndLocation6","querySelector","hashIndex","getBaseHref","_getIndexAndLocation7","_getHistoryStateAndUr3","_getHistoryStateAndUr4","createMemoryHistory","_options3","_options3$initialEntr","initialEntries","initialIndex","lowerBound","upperBound","returnValue","_ref$pathname","_ref$search","_ref$hash","parsedPath","searchIndex","__DEV__","createInterpolation","stringShapeRegex","checkPattern","colorToRgba","outputRanges","interpolations","shouldRound","range","createInterpolationFromStringOutputRange","checkInfiniteRange","checkValidInputRange","findRange","inputMin","inputMax","outputMin","outputMax","_interpolation","parentValue","__transformDataType","__createInterpolation","Svg","unstable_createElement","G","Path","ColorProperties","updateProps","maybeViewRef","items","_updatePropsJS","viewDescriptor","_updateProps","updatePropsJestWrapper","adapters","util","assertNever","_x","arrayToEnum","getValidEnumValues","validKeys","filtered","objectValues","find","checker","isInteger","isFinite","ZodIssueCode","ZodError","issues","super","fieldErrors","_errors","processError","issue","unionErrors","returnTypeError","argumentsError","curr","errorArray","addIssue","addIssues","subs","actualProto","formErrors","defaultErrorMap","_ctx","invalid_type","received","expected","unrecognized_keys","invalid_union","invalid_union_discriminator","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","validation","too_small","minimum","too_big","maximum","custom","invalid_intersection_types","not_multiple_of","multipleOf","defaultError","overrideErrorMap","ZodParsedType","getParsedType","isNaN","nan","boolean","function","bigint","null","unknown","makeIssue","errorMaps","issueData","fullPath","fullIssue","errorMessage","maps","addIssueToContext","ctx","common","contextualErrorMap","schemaErrorMap","ParseStatus","results","arrayValue","INVALID","dirty","pairs","syncPairs","pair","mergeObjectSync","finalObject","alwaysSet","freeze","OK","isAborted","isDirty","isAsync","errorUtil","errToObj","ParseInputLazyPath","_path","handleResult","success","processCreateParams","errorMap","invalid_type_error","required_error","iss","ZodType","def","spa","safeParseAsync","superRefine","_refinement","_def","safeParse","parseAsync","refine","refinement","optional","nullable","nullish","describe","isNullable","isOptional","parsedType","_parse","async","typeCache","_parseSync","maybeAsyncResult","check","getIssueProperties","setError","refinementData","ZodEffects","schema","typeName","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","ZodDefault","innerType","This","cuidRegex","uuidRegex","emailRegex","ZodString","_regex","regex","nonempty","_getType","_getOrReturnCtx","checks","kind","URL","lastIndex","_addCheck","minLength","maxLength","ch","floatSafeRemainder","valDecCount","stepDecCount","decCount","toFixed","ZodNumber","gte","lte","setLimit","ZodBigInt","ZodBoolean","ZodDate","ZodUndefined","ZodNull","ZodAny","_any","ZodUnknown","_unknown","ZodNever","never","ZodVoid","void","_processInputParams","all","_parseAsync","mergeArray","objectUtil","mergeShapes","first","second","AugmentFactory","augmentation","ZodObject","shape","_cached","nonstrict","passthrough","augment","shapeKeys","_getCached","extraKeys","keyValidator","catchall","unknownKeys","merging","mask","deepPartialify","newShape","fieldSchema","unwrap","ZodTuple","newField","strictCreate","lazycreate","childCtx","types","ZodDiscriminatedUnion","discriminator","discriminatorValue","validDiscriminatorValues","handleParsed","parsedLeft","parsedRight","merged","mergeValues","aType","bType","valid","bKeys","sharedKeys","newObj","newArray","itemIndex","schemas","ZodRecord","keyType","valueType","mergeObjectAsync","third","ZodMap","finalMap","ZodSet","minSize","maxSize","finalizeSet","elements","parsedSet","ZodFunction","validate","implement","makeArgsIssue","makeReturnsIssue","returns","parsedArgs","parsedReturns","returnType","ZodLazy","getter","ZodLiteral","ZodEnum","enumValues","ZodNativeEnum","nativeEnumValues","promisified","processed","checkCtx","fatal","abort","executeRefinement","inner","createWithPreprocess","preprocess","ZodNaN","late","stringType","numberType","nanType","bigIntType","booleanType","dateType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","mod","EMPTY_PATH","DIRTY","ZodTransformer","Schema","ZodSchema","any","discriminatedUnion","cls","intersection","lazy","literal","nativeEnum","oboolean","onumber","ostring","record","strictObject","transformer","tuple","union","quotelessJson","setErrorMap","composeEventHandlers","originalEventHandler","ourEventHandler","useHover","hoverProps","onHoverIn","setHovered","onHoverOut","isHovered","useFocus","setFocused","isFocused","useIsPressed","pressableProps","onPressIn","setIsPressed","onPressOut","isPressed","StyledPressable","isFocusVisible","useFocusRing","focusRingProps","isPressedProp","isFocusedProp","isHoveredProp","isFocusVisibleProp","emptyFunction","setBackgroundColor","setBarStyle","setHidden","setNetworkActivityIndicatorVisible","setTranslucent","doLeftAndRightSwapInRTL","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","isRTL","onDirectionChange","allowRTL","bool","forceRTL","getConstants","setPreferredLanguageRTL","swapLeftAndRightInRTL","interpolateInternalSingleProc","inS","inE","outS","outE","resultForNonZeroRange","interpolateInternalSingle","checkMinElements","checkValidNumbers","checkNonDecreasing","convertToRadians","interpolateInternal","createIcon","initialProps","isEmpty","fill","AnimatedBlock","_array","createAnimatedBlock","__isProxy","__val","valueForConstant","nodify","deepDiffer","one","two","maxDepth","ii","twoKey","VirtualizedList","numColumns","_React$PureComponent","_virtualizedListPairs","_captureRef","_listRef","_getItem","kk","_item","_getItemCount","_keyExtractor","keyExtractor","_renderer","_this$props2","ListItemComponent","renderItem","columnWrapperStyle","renderer","_item2","row","separators","_checkProps","viewabilityConfigCallbackPairs","viewabilityConfig","onViewableItemsChanged","_createOnViewableItemsChanged","scrollToIndex","scrollToItem","scrollToOffset","recordInteraction","getScrollRef","componentDidUpdate","prevProps","getItem","getItemCount","_pushMultiColumnViewable","_this$props3","viewableItems","_this$props4","defaultRetryDelay","failureCount","isCancelable","cancel","CancelledError","revert","silent","isCancelledError","Retryer","cancelFn","continueFn","promiseResolve","promiseReject","cancelRetry","cancelOptions","continueRetry","continue","isPaused","isResolved","isTransportCancelable","outerResolve","outerReject","onError","_unused","_config$retry","_config$retryDelay","retryDelay","shouldRetry","isOnline","continueResolve","onPause","onContinue","checkDCE","animatedComponentNextId","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","forceUpdate","_propsAnimated","_setComponentRef","setAndForwardRef","getForwardedRef","setLocalRef","_prevComponent","getNode","_ref$constructor$name","_attachNativeEvents","_this$_component","scrollableNode","_loop","_detachNativeEvents","_attachProps","nextProps","oldPropsAnimated","__restoreDefaultValues","_ref$style","passthroughAnimatedPropExplicitValues","_ref2$style","passthruStyle","passthruProps","mergedStyle","UNSAFE_componentWillMount","setNativeView","UNSAFE_componentWillReceiveProps","newProps","UIManagerAny","customGHEventsConfig","registrationName","onGestureHandlerStateChange","UIManagerConstants","setJSResponder","oldSetJSResponder","clearJSResponder","oldClearJSResponder","RNGestureHandlerModule","allowTouches","stateToPropMappings","customNativeProps","stateEventName","eventHandler","newViewTag","extract","hasUnresolvedRefs","updateEnqueued","createGestureHandler","transformProps","attachGestureHandler","clearImmediate","deepEqual","updateGestureHandler","mergedProps","gestureEventHandler","gestureStateEventHandler","events","propsRef","grandChildren","Touchable","Handler","defaultConfig","strictMode","StyledText","resolveResponsively","componentTheme","fontFamily","fontWeight","fontStyle","reslovedProps","_hover","italic","bold","resolvedFontFamily","useResolvedFontFamily","propsToSpread","isTruncated","bg","highlight","textDecorationLine","underline","strikeThrough","fontSize","isSupported","requestIdleCallback","didTimeout","timeRemaining","cancelIdleCallback","Events","interactionStart","interactionComplete","runAfterInteractions","task","webkitUserSelect","targetOldUserSelect","removeAttribute","mozInputSource","isTrusted","detail","pointerType","relatedTarget","bubbles","cancelable","defaultPrevented","eventPhase","timeStamp","isPropagationStopped","stateRef","observer","disconnect","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","MutationObserver","dispatchEvent","FocusEvent","attributes","attributeFilter","register","contextProps","preventFocusOnPress","shouldCancelOnPointerExit","allowTextSelectionOnPress","setPressed","ignoreEmulatedMouseEvents","ignoreClickAfterPress","didFirePressStart","activePointerId","isOverTarget","triggerPressStart","originalEvent","onPressStart","onPressChange","shiftKey","metaKey","ctrlKey","altKey","triggerPressEnd","wasPressed","onPressEnd","triggerPressUp","onPressUp","pressProps","button","click","PointerEvent","onPointerDown","pressure","pointerId","onPointerMove","onPointerUp","onPointerCancel","onDragStart","touch","targetTouches","identifier","tagName","hasAttribute","isContentEditable","role","changedTouches","pointRect","radiusX","radiusY","draggable","newRef","only","isRegistered","prevContext","onSyntheticFocus","onFocusChange","Tab","Escape","modality","setModality","isTextInput","autoFocus","isFocusVisibleState","setFocusVisible","KeyboardEvent","isFocusWithin","onBlurWithin","onFocusWithinChange","focusWithinProps","onFocusWithin","onHoverStart","onHoverChange","onHoverEnd","triggerHoverStart","triggerHoverEnd","onPointerEnter","onPointerLeave","onInteractOutside","onInteractOutsideStart","isPointerDown","ownerDocument","shouldStopPropagation","isDefaultPrevented","continuePropagation","onMoveStart","onMove","onMoveEnd","didMove","lastPosition","moveProps","move","deltaX","deltaY","findIndex","triggerKeyboardMove","onScrollHandler","onLongPressStart","onLongPressEnd","onLongPress","threshold","accessibilityDescription","timeRef","descriptionProps","longPressProps","STYLE_ELEMENT_ID","STYLE_GROUPS","classicReset","classic","atomic","borderColor","borderStyle","borderWidth","overscrollBehavior","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","reduceFrom","infix","single","OPERATIONS","acos","asin","atan","AnimatedOperator","operator","op","_op","_operation","SPREAD_PROP_SPECIFICITY_ORDER","FINAL_SPREAD_PROPS","MARGIN_MAP","mx","my","mt","mb","mr","ml","PADDING_MAP","py","SPREAD_PROP_SPECIFICITY_MAP","useNativeBase","incomingProps","usePropsResolutionWithComponentTheme","modifiedPropsForSSR","useResponsiveSSRProps","extractInObject","disableCSSMediaQueries","colorModeProps","useColorMode","extendedTheme","componentName","resolveComponentTheme","themeType","providedTheme","callPropsFlattener","targetProps","latestSpecifictyMap","specificity","propsFlattener","cleanIncomingProps","colormode","currentSpecificityMap","previouslyFlattenProps","flattenProps","cascadePseudoProps","incomingWithDefaultProps","merge","combinedBaseStyle","combinedVariantStyle","combinedSizeStyle","extededComponentTheme","responsiveProps","propsName","responsivelyResolvedProps","useBreakpointResolvedProps","baseSpecificityMap","variantSpecificityMap","defaultStyles","resolvePseudoProps","baseStylePseudoProp","flatPseudoProp","defaultSpecificity","flattenedDefaultProps","incomingSpecifity","newProp","compareSpecificity","propsSpreader","ignoredProps","ariaAttr","FormControlContext","useFormControlProvider","htmlProps","useId","idProp","labelId","feedbackId","helpTextId","isRequired","isInvalid","isReadOnly","hasFeedbackText","setHasFeedbackText","hasHelpText","setHasHelpText","useFormControl","field","useFormControlContext","describedBy","ariaDescribedBy","required","_filterId","svgDataUriPattern","resolveAssetUri","uri","asset","getAssetByID","preferredScale","PixelRatio","scaleSuffix","httpServerLocation","svg","encodeURIComponent","blurRadius","defaultSource","onLoad","onLoadEnd","onLoadStart","_React$useState","ImageLoader","updateState","_React$useState2","updateLayout","hiddenImageRef","filterRef","requestRef","shouldDisplaySource","_getFlatStyle","filterId","flatStyle","resizeMode","shadowOffset","tintColor","_filter","shadowString","resolveShadowValue","shadowColor","getFlatStyle","_resizeMode","selectedSource","displayImageUri","imageSizeStyle","_getAssetByID","resolveAssetDimensions","backgroundImage","backgroundSize","_hiddenImageRef$curre","naturalHeight","naturalWidth","_height3","_width3","scaleFactor","getBackgroundSize","hiddenImage","alt","accessibilityImage","src","abortPendingRequest","load","_layout","image","resizeModeStyles","visibility","floodColor","in2","createTintColorSVG","ImageWithStatics","getSize","failure","prefetch","queryCache","uris","backgroundPosition","backgroundRepeat","center","contain","cover","none","stretch","RCTDeviceEventEmitter","registerHandler","unregisterHandler","Accordion","mode","AccordionSummary","borderTopWidth","borderTopColor","_expanded","borderBottomColor","_text","_disabled","AccordionDetails","getBg","variant","getColorScheme","lightBg","darkBg","Alert","justifyContent","space","variants","_light","_icon","_dark","borderLeftWidth","borderLeftColor","transparentize","ratio","_badgeSize","badgeSize","randomColor","getRandomString","_image","_alt","isVertical","_avatar","_hiddenAvatarPlaceholder","solid","subtle","spacing","wrap","Breadcrumb","BreadcrumbText","_current","BreadcrumbIcon","primary","_web","_loading","_focusVisible","outlineWidth","boxShadow","_stack","_spinner","ghost","_pressed","link","unstyled","lg","md","sm","xs","shadow","_checked","_invalid","outlineColor","outlineStyle","defaultIsChecked","trackColor","thickness","centerContent","textAlign","rounded","lineHeight","letterSpacing","focusRing","_focus","Input","placeholderTextColor","_ios","selectionColor","_android","underlined","borderBottomWidth","filled","Tooltip","isUnderlined","_presenceTransition","initial","exit","absoluteFill","_overlay","_backdrop","Modal","_backdropFade","exitDuration","entryDuration","_slide","_fade","contentSize","xl","full","closeOnOverlayClick","ModalContent","maxHeight","AlertDialog","AlertDialogContent","PopoverCloseButton","PopoverBody","PopoverContent","PopoverHeader","PopoverArrow","PopoverFooter","flexWrap","keepWithinRange","clampValueOnBlur","focusInputOnChange","getAriaValueText","NumberInputStepper","iconColor","_active","placeholder","manageFocus","_filledTrack","isIndeterminate","Skeleton","startColor","endColor","fadeDuration","SkeletonText","_line","lines","_statLabel","_statNumber","_statHelpText","_statGroup","onThumbColor","offThumbColor","offTrackColor","onTrackColor","activeColor","getColorFormColorScheme","activeTabStyle","inactiveTabStyle","activeIconProps","inactiveIconProps","tabBarStyle","minH","minW","multiline","textAlignVertical","TextField","_errorMessageProps","_helperTextProps","Toast","_title","_description","ScaleFade","Slide","placement","isOpen","SlideFade","TypeAheadSearchItem","SliderTrack","_pressable","SliderFilledTrack","Slider","thumbSize","sliderTrackHeight","_interactionBox","KeyboardAvoidingView","AccordionItem","AccordionIcon","Actionsheet","animationPreset","ActionsheetContent","roundedTop","_dragIndicator","_dragIndicatorWrapper","_dragIndicatorWrapperOffSet","ActionsheetItem","AlertIcon","AspectRatio","Avatar","AvatarBadge","AvatarGroup","Badge","Box","Button","ButtonGroup","Card","Center","Circle","Checkbox","CheckboxGroup","CircularProgress","Container","Divider","Fade","FAB","placementProps","renderInPortal","Flex","Spacer","FormControl","FormControlLabel","_astrick","FormControlHelperText","FormControlErrorMessage","Heading","HStack","VStack","Icon","IconButton","InputLeftAddon","borderRightWidth","borderLeftRadius","InputRightAddon","borderRightRadius","Kbd","Link","List","ListItem","ListIcon","Menu","MenuGroup","textTransform","MenuItem","ModalHeader","ModalBody","ModalFooter","ModalOverlay","ModalCloseButton","AlertDialogHeader","AlertDialogBody","AlertDialogFooter","AlertDialogOverlay","AlertDialogCloseButton","NumberInput","PinInput","Pressable","Progress","Radio","RadioGroup","Select","customDropdownIconProps","_webSelect","appearance","WebkitAppearance","MozAppearance","_actionSheetBody","_actionSheetContent","optimized","SelectItem","SimpleGrid","SliderThumb","scaleOnPressed","Spinner","Square","Stack","Stat","Switch","Tabs","Tag","AppBar","TextArea","Wrap","ZStack","components","useSystemColorMode","initialColorMode","accessibleColors","ariaToAccessibilityMap","mapDomPropsToRN","attachEventHandlersOnRef","borderRightColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","unitlessNumbers","_inheritsLoose","_assertThisInitialized","assign$1","nextKey","VENDOR_PREFIXES","TEST_ELEMENT","prefixed","camelProp","toUpperCase","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","each","boolOrFn","inStr","TouchAction","manager","compute","actions","touchAction","recognizers","recognizer","enable","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","srcEvent","offsetDirection","session","prevented","hasNone","isTapPointer","pointers","isTapMovement","distance","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","hasParent","getCenter","pointersLength","simpleCloneInputData","getDistance","p1","p2","getAngle","atan2","getVelocity","computeInputData","firstInput","firstMultiple","offsetCenter","angle","offsetDelta","prevDelta","prevInput","eventType","computeDeltaXY","overallVelocity","overallVelocityX","overallVelocityY","getRotation","last","lastInterval","computeIntervalInputData","srcEventTarget","composedPath","inputHandler","pointersLen","changedPointersLen","changedPointers","isFirst","isFinal","recognize","splitStr","addEventListeners","removeEventListeners","getWindowForElement","doc","parentWindow","inputTarget","domHandler","evEl","evTarget","evWin","destroy","inArray","findByKey","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","MSPointerEvent","PointerEventInput","_Input","proto","removePointer","eventTypeNormalized","isTouch","storeIndex","uniqueArray","TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TouchInput","targetIds","touches","getTouches","allTouches","changedTargetTouches","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","setLastTouch","eventData","primaryTouch","lastTouch","lts","lastTouches","recordTouches","isSyntheticEvent","dx","dy","TouchMouseInput","_manager","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","mouse","invokeArrayArg","getRecognizerByNameIfManager","otherRecognizer","stateStr","Recognizer","simultaneous","requireFail","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","TapRecognizer","_Recognizer","taps","posThreshold","pTime","pCenter","_timer","count","validPointers","validMovement","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","AttrRecognizer","attrTest","optionPointers","isRecognized","directionStr","PanRecognizer","_AttrRecognizer","DIRECTION_HORIZONTAL","pX","pY","directionTest","hasMoved","SwipeRecognizer","PinchRecognizer","RotateRecognizer","PressRecognizer","validTime","domEvents","inputClass","cssProps","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","preset","toggleCssProps","oldCssProps","Manager","createInputInstance","stopped","curRecognizer","existing","targetRecognizer","gestureEvent","createEvent","initEvent","triggerDomEvent","SINGLE_TOUCH_INPUT_MAP","SingleTouchInput","normalizeSingleTouches","deprecate","deprecationMessage","stack","dest","inherit","childP","baseP","_super","bindFn","Hammer","VERSION","DIRECTION_ALL","DIRECTION_DOWN","DIRECTION_RIGHT","DIRECTION_VERTICAL","DIRECTION_NONE","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","DEG_RAD","EventMap","Direction","RIGHT","LEFT","UP","DOWN","getHandler","getNodes","gestureInstances","invokeNullableMethod","nativeValue","deltaRotation","failed","gestureInstance","hasCustomActivationCriteria","isDiscrete","shouldEnableGestureOnSetup","getConfig","onWaitingEnded","removePendingGesture","addPendingGesture","pendingGestures","isGestureEnabledForEvent","NativeGestureClass","updateHasCustomActivationCriteria","updateGestureConfig","clearSelfAsPending","asArray","NodeManager","configProps","ensureConfig","sync","getState","transformEventData","changedTouch","isPointInView","previousState","transformNativeEvent","cancelPendingGestures","notifyPendingGestures","onGestureEnded","isGestureRunning","forceInvalidate","hasGestureFailed","cancelEvent","sendEvent","onRawEvent","setView","hammer","lastSentState","setupEvents","__initialX","__initialY","initialRotation","onGestureActivated","_getPendingGestures","getHammerConfig","simulateCancelEvent","absoluteX","isnan","isValidNumber","TEST_MIN_IF_NOT_NAN","limit","VEC_LEN_SQ","TEST_MAX_IF_NOT_NAN","getTargetDirections","directions","getDirection","validPointerCount","shouldFailUnderCustomCriteria","pointerLength","maxDistSq","onGestureStart","shouldDelayTouchForEvent","initialEvent","visualFeedbackTimer","fireAfterInterval","sendGestureStartedEvent","nextState","horizontalDirections","verticalDirections","minDistSq","criteria","shouldActivateUnderCustomCriteria","shouldMultiFingerPanFail","deltaScale","absDeltaRotation","focalX","focalY","anchorX","anchorY","Gestures","PanGestureHandler","RotationGestureHandler","PinchGestureHandler","LongPressGestureHandler","FlingGestureHandler","handleSetJSResponder","handleClearJSResponder","handlerName","getGestureHandlerNode","dropGestureHandler","useWindowDimensions","dims","setDims","handleChange","eventMappings","traverse","nativeEventPath","animatedValueTag","mapping","detach","validateMapping","recMapping","recEvt","mappingKey","_argMapping","_callListeners","_attachedEvent","_validatedMapping","validatedMapping","_len2","_key3","_len3","_key4","Subscribable","subscribe","onSubscribe","onUnsubscribe","logger","getLogger","setLogger","newLogger","mainClock","_runFrame","_frameCallback","cancelAnimationFrame","_started","_attached","raw","Color","hex","tone","isDark","isLight","fallback","list","randomColorFromList","j","randomColorFromString","AnimatedCond","ifBlock","elseBlock","_condition","_ifBlock","_elseBlock","createAnimatedCond","sanitizeArgMapping","alwaysNodes","createAnimatedAlways","proxyHandler","Proxy","proxy","nodesMap","layoutMeasurement","zoomScale","contentInset","createEventObjectProxyPolyfill","_alwaysNodes","createAnimatedEvent","TextInputState","_currentlyFocusedNode","currentlyFocusedField","activeElement","focusTextInput","textFieldNode","blurTextInput","int32Color","NativeModules","BackHandler","exitApp","EmitterSubscription","_EventSubscription2","emitter","subscriber","_EventSubscription","EventSubscriptionVendor","_subscriptionsForType","addSubscription","removeAllSubscriptions","subscriptionsForType","getSubscriptionsForType","sparseFilterPredicate","EventEmitter","_subscriber","subscriptions","isStartish","isMoveish","isEndish","isCancelish","isScroll","isSelectionChange","rules","group","styleResolver","createCSS","focusManager","_Subscribable","FocusManager","setup","_window","cleanup","setEventListener","_this$cleanup","_this$cleanup2","focused","visibilityState","useHoverWeb","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","checked","isNameInFieldArray","getNodeParentName","compact","Boolean","isUndefined","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","formState","_proxyFormState","localProxyFormState","isRoot","isEmptyObject","shouldRenderFormState","formStateData","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","useSubscribe","subject","tearDown","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","objectHasFunction","useController","methods","control","shouldUnregister","isArrayField","_name","fieldValues","_formValues","_subjects","_getWatch","_removeUnmounted","useWatch","_defaultValues","updateFormState","_formState","_localProxyFormState","dirtyFields","touchedFields","isValidating","errors","useFormState","_registerProps","updateMounted","_fields","_shouldUnregisterField","_options","_stateFlags","elm","setCustomValidity","reportValidity","fieldState","getFieldState","appendErrors","validateAllFieldCriteria","tempPath","objValue","focusFieldBy","fields","fieldsNames","isWatched","isBlurEvent","watchName","cloneObject","createSubject","_observers","isPrimitive","object1","object2","keys1","keys2","val1","val2","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isBoolean","isFileInput","isHTMLElement","isMultipleSelect","isRadioInput","live","isConnected","unset","updatePath","childObject","previousObjRef","objectRef","currentPaths","currentPathsLength","markFieldsDirty","isParentNodeArray","getDirtyFields","defaultValues","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","defaultResult","validResult","getCheckboxValue","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","defaultReturn","getRadioValue","getFieldValue","files","selectedOptions","isRegex","getRuleValue","rule","schemaErrorLookup","foundError","isMessage","isValidElement","getValidateError","getValueAndMessage","validationData","validateField","inputValue","shouldUseNativeValidation","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","defaultOptions","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","isSubmitted","submitCount","isSubmitting","isSubmitSuccessful","unMount","timer","validateFields","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","_updateValid","shouldSkipRender","_executeSchema","executeBuildInValidation","updateErrors","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","isFieldDirty","isPreviousFieldTouched","isPreviousFormDirty","_getDirty","isPreviousFieldDirty","shouldRenderByError","previousFieldError","shouldUpdateValid","wait","delayError","updatedFormState","getResolverOptions","shouldOnlyCheckValid","fieldReference","fieldError","getValues","selectRef","selected","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","isFieldArray","cloneValue","shouldSkipValidation","isTouched","skipValidation","watched","previousErrorLookupResult","errorLookupResult","fieldNames","executeSchemaAndUpdateState","shouldFocus","invalid","keepValue","keepError","keepDirty","keepTouched","keepDefaultValue","keepIsValid","disabledIsDefined","fieldRef","querySelectorAll","radioOrCheckbox","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","handleSubmit","onValid","onInvalid","persist","hasNoPromiseError","keepStateOptions","updatedValues","cloneUpdatedValues","keepDefaultValues","keepValues","closest","keepSubmitCount","keepIsSubmitted","keepErrors","resetField","clearErrors","inputName","setFocus","shouldSelect","useForm","_formControl","lastFocusedElement","childElement","SVGElement","isVisible","computedDisplay","computedVisibility","restoreFocus","startRef","endRef","scopeRef","parentScope","nextSibling","focusedNode","raf","focusedElement","walker","tabbable","currentNode","nextElement","previousNode","nextNode","nextElementSibling","previousElementSibling","nodeToRestoreRef","nodeToRestore","autoFocusRef","focusNext","sentinel","focusPrevious","focusFirst","focusLast","data-focus-scope-start","hidden","data-focus-scope-end","scroll","selector","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","FILTER_REJECT","FILTER_ACCEPT","FILTER_SKIP","lastChild","within","focusClass","focusRingClass","className","domRef","interactions","interactionProps","focusableProps","tabIndex","excludeFromTabOrder","stateValue","setStateValue","wasControlled","isControlled","onChangeCaller","onChangeArgs","updateFunction","functionArgs","interceptedValue","remainder","snappedValue","sign","digits","getFontScale","getPixelSizeForLayoutSize","layoutSize","roundToNearestPixel","panGestureHandlerProps","panGestureHandlerCustomNativeProps","transformPanGestureHandlerProps","matchMedia","listenerMapping","Appearance","addChangeListener","mappedListener","removeChangeListener","useLayoutEffectImpl","ModalContext","initialFocusRef","finalFocusRef","visible","NODE_MAPPING","_updateFromNative","dummyListener","hasAnimatedNodes","flattenArray","resultArr","_flattenArray","isSameAnimatedStyle","style1","style2","viewsRef","isSameAnimatedProps","_styles","_isFirstRender","initialStyle","DefaultLayout","DefaultEntering","DefaultExiting","sv","LayoutAnimationRepository","registerConfig","_detachPropUpdater","_detachStyles","_attachPropUpdater","_attachAnimatedStyles","_getEventViewRef","registerForEvents","unregisterFromEvents","attached","nextEvts","reattachNeeded","createOrReusePropsNode","ReanimatedEventEmitter","onlyAnimatedStyles","prevStyles","viewName","prevAnimatedProps","_animatedProps","hostInstance","RNRenderer","findHostInstance_DEPRECATED","_nativeTag","viewConfig","uiViewClassName","adaptViewConfig","prevStyle","_reattachNativeEvents","inputStyle","inputProps","processedStyle","_filterNonAnimatedStyle","animatedProp","_filterNonAnimatedProps","platformProps","jsListener","evt","registrations","newWorklet","fallbackEventName","registerEventHandler","unregisterEventHandler","contrastThreshold","lightText","darkText","rose","50","100","200","300","400","500","600","700","800","900","lightBlue","darkBlue","emerald","amber","warmGray","trueGray","coolGray","blueGray","dark","danger","warning","muted","secondary","light","tertiary","0","10","20","25","30","40","60","70","75","80","90","95","borderWidths","radii","letterSpacings","lineHeights","fontConfig","fontWeights","hairline","thin","normal","medium","semibold","extrabold","extraBlack","fonts","heading","mono","fontSizes","shadows","themePropertyMap","webpackPolyfill","tapGestureHandlerProps","ResponsiveQueryContext","ResponsiveQueryProvider","nextObj","onlineManager","OnlineManager","onOnline","online","setOnline","onLine","createOrderedCSSStyleSheet","sheet","groups","selectors","cssRules","cssRule","cssText","selectorText","decodeGroupRule","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","insertRule","insertRuleAt","groupNumber","previousStart","getTextContent","insert","groupValue","markerRule","encodeGroupRule","flattenDown","resets","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","week","datetime","isValidFocusTarget","addFocusVisibleAttribute","focusTriggersKeyboardModality","removeFocusVisibleAttribute","addInitialPointerMoveListeners","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","inserted","resolved","ltr","rtl","rtlNoSwap","_element","head","insertBefore","firstChild","createCSSStyleSheet","initialRules","_injectRegisteredStyle","_I18nManager$getConst","createCompileableStyle","i18nStyle","_results$key","addToCache","_resolveStyle","_I18nManager$getConst2","localizedStyle","stringifyValueWithProperty","getClassName","_atomic","_a$key","getStyleSheet","compiled","_compiled$key","nextClassList","flatArray","isArrayOfNumbers","cacheKey","finalProps","createStyleResolver","ERROR","Transitions","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","PressResponder","_eventHandlers","_isPointerTouch","_longPressDelayTimeout","_longPressDispatched","_pressDelayTimeout","_pressOutDelayTimeout","_touchState","configure","_cancelLongPressDelayTimeout","_cancelPressDelayTimeout","_cancelPressOutDelayTimeout","getEventHandlers","_createEventHandlers","shouldDelay","_selectionTerminated","_receiveSignal","delayPressStart","normalizeDelay","_handleLongPress","keyupHandler","elementType","onPressMove","getTouchFromResponderEvent","_touchActivatePosition","hypot","_this$_config","_this$_config2","_this$_config3","prevState","_performTransitionSideEffects","isTerminalSignal","isPrevActive","isNextActive","_activate","_deactivate","_this$_config4","_onLongPress","_this$_config5","_this$_config6","delayPressEnd","_event$nativeEvent","usePressEvents","pressResponderRef","pressResponder","ReactNativePropRegistry","getByID","getStyle","styleLength","computedStyle","_usedIndexForKey","_keylessItemComponentName","_getScrollMetrics","_scrollMetrics","_getOutermostParentListRef","_isNestedWithSameOrientation","getOutermostParentListRef","_getNestedChildState","existingChildData","_nestedChildLists","_registerAsNestedChild","childList","childListsInCell","_cellKeysToChildListKeys","cellKey","trace","debugInfo","parentDebugInfo","listKey","describeNestedLists","_hasInteracted","_unregisterAsNestedChild","_onUpdateSeparators","_cellRefs","updateSeparatorProps","_averageCellLength","_frames","_footerLength","_hasDoneInitialScroll","_hasMore","_hasWarned","_headerLength","_hiPriInProgress","_highestMeasuredFrameIndex","_indicesToKeys","_offsetFromParentVirtualizedList","_prevParentOffset","contentLength","dOffset","dt","visibleLength","_scrollRef","_sentEndForContentLength","_totalCellLength","_totalCellsMeasured","_viewabilityTuples","_captureScrollRef","_defaultRenderScrollComponent","RefreshControl","_onCellUnmount","inLayout","_onLayout","measureLayoutRelativeToContainingList","_selectLength","_scheduleCellsToRenderUpdate","_maybeCallOnEndReached","_onLayoutEmpty","_onLayoutFooter","_triggerRemeasureForChildListsInCell","_getFooterCellKey","_onLayoutHeader","_onContentSizeChange","initialScrollIndex","_convertParentScrollMetrics","metrics","_onScroll","_selectOffset","_this$_convertParentS","perf","infoLog","prevDt","_updateViewableItems","_fillRateHelper","_computeBlankness","_onScrollBeginDrag","viewabilityHelper","_onScrollEndDrag","_onMomentumScrollBegin","_onMomentumScrollEnd","_updateCellsToRender","onEndReachedThreshold","isVirtualizationDisabled","_isVirtualizationDisabled","setState","_this$_scrollMetrics","renderAhead","maxToRenderPerBatch","computeWindowedRenderLimits","_getFrameMetricsApprox","newFirst","newLast","cellKeyForIndex","childListKeys","someChildHasMore","childKey","hasMore","_createViewToken","isViewable","_getFrameMetrics","getItemLayout","_this$props5","windowSize","FillRateHelper","_updateCellsToRenderBatcher","Batchinator","updateCellsBatchingPeriod","ViewabilityHelper","initialState","initialNumToRender","storedState","getNestedChildState","_getListKey","frames","invertedWheelEventHandler","inverted","wheelDeltaX","wheelDeltaY","veryLast","onScrollToIndexFailed","viewOffset","viewPosition","averageItemLength","highestMeasuredFrameIndex","itemCount","_getCellKey","_this$context","_getDebugInfo","_this$context2","registerAsNestedChild","setupWebWheelHandler","unregisterAsNestedChild","dispose","deactivateAndFlush","teardownWebWheelHandler","getDerivedStateFromProps","_pushCells","cells","stickyIndicesFromProps","inversionStyle","prevCellKey","_this$props6","ItemSeparatorComponent","stickyOffset","ListHeaderComponent","CellRenderer","fillRateHelper","onUpdateSeparators","_onCellLayout","parentProps","disableVirtualization","nestedContext","_this4","flatStyles","_this$props7","ListEmptyComponent","ListFooterComponent","_this$props8","horizontallyInverted","verticallyInverted","VirtualizedListCellContextProvider","ListHeaderComponentStyle","spacerKey","lastInitialIndex","_this$state","firstAfterInitial","insertedStickySpacer","initBlock","stickyBlock","leadSpace","trailSpace","_initBlock","firstSpace","_ref5","lastFrame","endFrame","tailSpacerLength","_element2","ListFooterComponentStyle","VirtualizedListContextProvider","getScrollMetrics","_renderDebugOverlay","_this$props9","extraData","resetViewableIndices","hiPriInProgress","computeBlankness","_this5","scrollMetrics","framesInLayout","windowTop","frameLast","windowLen","visTop","visLen","debugOverlayBase","debugOverlay","debugOverlayFrame","debugOverlayFrameLast","debugOverlayFrameVis","_this$props10","onEndReached","_this$_scrollMetrics2","distanceFromEnd","_this$state2","_this$_scrollMetrics3","hiPri","scrollingThreshold","distTop","distBottom","_this6","contextType","VirtualizedListContext","_this7","separatorProps","highlighted","leadingItem","_separators","_this7$props","unhighlight","_this7$props2","_this7$props3","_proto2","_renderElement","_this$props11","itemSeparator","cellStyle","rowReverse","columnReverse","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","defaultWidth","formats","long","short","dateTime","lastWeek","yesterday","today","tomorrow","nextWeek","formattingValues","defaultFormattingWidth","argumentCallback","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","valueCallback","formatDistance","addSuffix","comparison","formatLong","formatRelative","localize","ordinalNumber","era","narrow","abbreviated","wide","quarter","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","matchPattern","parsePattern","weekStartsOn","firstWeekContainsDate","T","setSeconds","U","RangeError","getUTCDay","setUTCDate","getUTCDate","setUTCHours","getUTCFullYear","setUTCFullYear","Y","N","Ut","St","Xt","unit","Pt","R","getUTCMonth","Et","L","I","Yt","setUTCMonth","E","getUTCHours","Nt","qt","K","getUTCMinutes","Bt","getUTCSeconds","Ot","getUTCMilliseconds","Ht","X","_originalDate","At","zt","Gt","jt","Kt","Jt","Zt","$t","Vt","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","te","setDate","ee","setHours","ne","ae","ue","se","ce","de","firstDayOfWeek","dayLabelFormat","weekdayLabelFormat","monthLabelFormat","days","setFullYear","dayLabel","oe","weekdayLabels","ie","monthLabel","le","fe","he","me","we","ge","setMonth","ve","ke","Ce","Me","Se","startDate","endDate","isDateBlocked","minBookingDays","exactMinBookingDays","minBookingDate","maxBookingDate","Pe","Ye","focusedInput","onDatesChange","initialVisibleMonth","numberOfMonths","unavailableDates","changeActiveMonthOnSelect","isDateBlockedFn","pe","W","F","activeMonths","isDateSelected","ye","isDateHovered","hoveredDate","isFirstOrLastSelectedDate","be","isStartDate","De","isEndDate","Te","isDateFocused","focusedDate","onResetDates","onDateHover","onDateSelect","onDateFocus","goToPreviousMonths","goToPreviousMonthsByOneMonth","goToNextMonths","goToNextMonthsByOneMonth","goToDate","goToPreviousYear","goToNextYear","Ne","isSelected","isSelectedStartOrEnd","isWithinHoverRange","disabledDate","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","ok","named","hsv","hsva","parseIntFromHex","convertHexToDecimal","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","boundAlpha","inputToRGB","_originalInput","_r","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","pad2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue","complement","triad","tetrad","splitcomplement","analogous","slices","part","monochromatic","toHsv","modification","getBrightness","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","_applyModification","_applyCombination","fromRatio","newColor","equals","color1","color2","rgb1","rgb2","readability","c1","c2","isReadable","wcag2","wcag2Parms","parms","level","validateWCAG2Parms","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","flipped","flip","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","valueString","cachedResult","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","createDeclarationBlock","animationName","_block","finalValue","_block3","_block4","_block2","_block5","scrollbarWidth","_createDeclarationBlo","_block6","createAtomicRules","_cachedResult","animationKeyframes","_processKeyframesValu","prefixInlineStyles","createReactDOMStyle","normalizedValue","domStyle","prefixStyles","hyphenateStyleName","hashedString","keyframesValue","_createKeyframes","steps","stepName","createKeyframes","reIsUint","typedArrayTags","freeExports","nodeType","freeModule","moduleExports","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","nativeObjectToString","objectCtorString","Buffer","Uint8Array","allocUnsafe","getPrototype","objectCreate","symToStringTag","toStringTag","nativeIsBuffer","isBuffer","nativeMax","nativeNow","baseCreate","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","baseAssignValue","assignValue","LARGE_ARRAY_SIZE","fromRight","baseFor","keysFunc","iterable","baseGetTag","isOwn","unmasked","getRawTag","baseIsArguments","isMasked","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","safeGet","stacked","isCommon","isTyped","isArrayLike","isArrayLikeObject","buffer","isDeep","cloneBuffer","typedArray","arrayBuffer","byteLength","cloneArrayBuffer","byteOffset","cloneTypedArray","copyArray","Ctor","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","otherArgs","overRest","identity","lastCalled","stamp","remaining","shortOut","isLength","baseUnary","assigner","sources","guard","isIterateeCall","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","queryClient","QueryClientProvider","client","_ref$contextSharing","Context","valueIn","jointCallback","getLayout","getTranslateTransform","AnimatedAlways","what","_what","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","getAppKeys","getApplication","appKey","appParameters","registerComponent","componentProvider","_getApplication","renderApplication","hydrate","rootTag","registerRunnable","runApplication","isDevelopment","setComponentProviderInstrumentationHook","hook","setWrapperComponentProvider","provider","unmountApplicationComponentAtRootTag","unmountComponentAtNode","canUsePassiveEvents","supported","supportsPassiveEvents","cancelBubble","createEventHandle","capture","getOptions","compatListener","previousModality","previousActiveModality","activeModality","isEmulatingMouseEvents","bubbleOptions","passive","captureOptions","addBlurListener","addFocusListener","addVisibilityChangeListener","addKeyDownListener","addPointerDownListener","addPointerMoveListener","addContextMenuListener","addMouseDownListener","addMouseMoveListener","addMouseUpListener","addScrollListener","addSelectiomChangeListener","addTouchCancelListener","addTouchMoveListener","addTouchStartListener","restoreModality","callListeners","onPointerish","targetListeners","useStable","removeTargetListener","dispatchCustomEvent","_ref$bubbles","_ref$cancelable","initCustomEvent","getPointerType","targetRef","onHoverUpdate","canUsePE","addMoveListener","addEnterListener","addLeaveListener","addLockListener","addUnlockListener","hoverEnd","leaveListener","moveListener","hoverStart","lockEvent","useForceableState","forced","MemoedPressable","testOnly_hovered","testOnly_pressed","_useForceableState","hovered","_useForceableState2","_useForceableState3","pressConfig","pressEventHandlers","onContextMenuPress","onKeyDownPress","interactionState","blurHandler","focusHandler","contextMenuHandler","keyDownHandler","cmp","cycles","aobj","bobj","seen","seenIndex","isNativeReflectConstruct","_construct","Parent","Class","construct","UI_THREAD_PROPS_WHITELIST","borderEndColor","borderStartColor","NATIVE_THREAD_PROPS_WHITELIST","borderEndWidth","borderStartWidth","marginEnd","marginLeft","marginRight","marginStart","marginTop","paddingEnd","paddingLeft","paddingRight","paddingStart","paddingTop","textShadowRadius","backfaceVisibility","fontVariant","textDecorationStyle","writingDirection","jsiConfigureProps","oldSize","PROCESSED_VIEW_NAMES","validAttributes","propsToAdd","mergeWith","dataUriPattern","ImageUriCache","_entries","lastUsedTimestamp","_cleanUpIfNeeded","leastRecentlyUsedKey","leastRecentlyUsedEntry","imageUris","_maximumEntries","requests","requestId","onerror","onload","complete","setInterval","clearInterval","onDecode","decode","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","autoCapitalize","autoComplete","autoCorrect","rows","spellCheck","focusTimeout","inputMode","_props$autoCapitalize","autoCompleteType","_props$autoCorrect","blurOnSubmit","clearTextOnFocus","_props$editable","editable","_props$keyboardType","keyboardType","_props$multiline","_props$numberOfLines","onChangeText","onKeyPress","onSelectionChange","onSubmitEditing","returnKeyType","_props$secureTextEntr","secureTextEntry","selection","selectTextOnFocus","handleContentSizeChange","hostNode","newHeight","newWidth","imperativeRef","selectionEnd","selectionStart","isSelectionStale","setSelectionRange","setSelection","textinput","enterKeyHint","shouldBlurOnSubmit","isComposing","keyCode","isEventComposing","onSelect","resize","isScreenReaderEnabled","prefersReducedMotionMedia","AccessibilityInfo","isReduceMotionEnabled","fetch","setAccessibilityFocus","reactTag","announceForAccessibility","announcement","AnimatedSet","createAnimatedSet","createSvgCircle","cx","cy","strokeWidth","ActivityIndicator","_props$animating","animating","_props$color","_props$hidesWhenStopp","hidesWhenStopped","_props$size","viewBox","stroke","strokeDasharray","strokeDashoffset","indicatorSizes","animationPause","animationTimingFunction","animationIterationCount","animationPlayState","small","large","activeThumbColor","activeTrackColor","_props$disabled","onValueChange","_props$style","thumbColor","_props$value","thumbRef","handleFocusState","thumbDefaultBoxShadow","_StyleSheet$flatten","styleHeight","styleWidth","multiplyStyleLengthValue","trackBorderRadius","trackCurrentColor","true","false","thumbCurrentColor","thumbHeight","thumbWidth","rootStyle","cursorDefault","disabledTrackColor","disabledThumbColor","trackStyle","thumbStyle","thumb","thumbActive","nativeControl","cursorInherit","forcedColorAdjust","transitionDuration","initialURL","Linking","_eventCallbacks","filteredCallbacks","_dispatchEvent","canOpenURL","getInitialURL","openURL","open","_validateURL","urlToOpen","ModalPortal","elementRef","removeChild","ReactDOM","createPortal","getAnimationStyle","animationType","animatedSlideInStyles","animatedSlideOutStyles","animatedFadeInStyles","animatedFadeOutStyles","animatedIn","ANIMATION_DURATION","animatedOut","fadeIn","fadeOut","slideIn","slideOut","ModalAnimation","onShow","setIsRendering","wasVisible","animationEndCallback","onAnimationEnd","onRequestClose","closeOnEscape","modal","modalTransparent","modalOpaque","FocusBracket","focusBracket","attemptFocus","ModalFocusTrap","trapElementRef","focusRef","trapFocusInProgress","trapFocus","hasFocused","focusFirstDescendant","childNodes","focusLastDescendant","lastFocusedElementOutsideTrap","uniqueModalIdentifier","activeModalStack","activeModalListeners","notifyActiveModalListeners","activeModalId","modalId","removeActiveModal","_props$visible","setIsActive","onDismissCallback","onShowCallback","addActiveModal","VirtualizedSectionList","sections","itemIdx","section","sectionData","_subExtractor","_convertViewable","viewable","_onViewableItemsChanged","_renderItem","listItemCount","infoIndex","header","renderSectionHeader","renderSectionFooter","SeparatorComponent","_getSeparatorComponent","ItemWithSeparator","LeadingSeparatorComponent","SectionSeparatorComponent","leadingSection","onUpdateSeparator","_onUpdateSeparator","trailingItem","trailingSection","scrollToLocation","sectionIndex","stickySectionHeadersEnabled","toIndexParams","getListRef","passThroughProps","listHeaderOffset","isLastItemInList","isLastItemInSection","leadingSeparatorProps","_this3$props","leadingSeparator","separator","_wrapperListRef","listRef","TouchHistoryMath","centroidDimension","touchHistory","touchesChangedAfter","isXAxis","ofCurrent","touchBank","total","oneTouchData","numberActiveTouches","indexOfSingleActiveTouch","touchActive","currentTimeStamp","currentPageX","currentPageY","previousPageX","previousPageY","touchTrack","noCentroid","currentCentroidXOfTouchesChangedAfter","currentCentroidYOfTouchesChangedAfter","previousCentroidXOfTouchesChangedAfter","previousCentroidYOfTouchesChangedAfter","currentCentroidX","currentCentroidY","PanResponder","_initializeGestureState","gestureState","moveX","moveY","y0","vx","vy","_accountsForMovesUpTo","_updateGestureStateOnMove","movedAfter","prevX","prevY","nextDX","nextDY","mostRecentTimeStamp","shouldCancelClick","stateID","panHandlers","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponderCapture","clearInteractionTimeout","onPanResponderGrant","onShouldBlockNativeResponder","onPanResponderReject","onPanResponderRelease","setInteractionTimeout","onPanResponderStart","onPanResponderMove","onPanResponderEnd","onPanResponderTerminate","onPanResponderTerminationRequest","getInteractionHandle","isNumber","rawValue","alphaMatched","colorMatched","alphaValue","alphaFromToken","getMargin","convertStringNumberToNumber","isNegative","absolute","borderTop","borderTopRadius","borderRight","borderBottom","borderLeft","borderX","borderY","borderTopStyle","borderBottomStyle","borderLeftStyle","borderRightStyle","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","borderBottomRadius","roundedBottom","roundedLeft","roundedRight","marginX","marginY","paddingX","paddingY","gap","typography","wordBreak","overflowWrap","textDecoration","txtDecor","propConfig","bgColor","maxW","maxH","boxSize","verticalAlign","alignContent","justifyItems","flexDir","justifySelf","order","backgroundAttachment","backgroundBlendMode","bgImage","bgImg","bgBlendMode","bgSize","bgPosition","bgPos","bgRepeat","bgAttachment","getRNKeyAndStyleValue","styledSystemProps","resolveValueWithBreakpoint","getStyleAndFilteredProps","styleFromProps","responsiveStyles","orderedBreakPoints","getResponsiveStyles","newDataSet","styleSheet","box","mapTag","setTag","nativeKeys","DataView","nonEnumShadows","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","ctorString","arrayLike","colorInt","didWarn","resizeObserver","previousStyleRef","setNativePropsArgsRef","relativeToNode","nextDomStyle","startNativeAnimationNextId","__nativeId","__debouncedOnEnd","__onEnd","__startNativeAnimation","startNativeAnimationWaitId","argsStack","prevCallID","_prevCallID","_getTopNode","isRunning","createAnimatedParam","argsTag","objectTag","arraySome","mapToArray","setToArray","nativeGetSymbols","symbolValueOf","SetCache","baseIsEqual","bitmask","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","convert","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","getAllKeys","objLength","othLength","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseKeys","arrLength","arrValue","othIndex","symbolsFunc","arrayPush","baseGetAllKeys","getSymbols","resIndex","arrayFilter","symbol","runtime","defaultSelected","setSelected","updateSelected","toggleState","toggle","psuedoElement","ownerWindow","rUpper","msPattern","hyphenate","supportedTransforms","transforms","getPropertyValue","isTransform","removeProperty","isWindow","DOCUMENT_NODE","getscrollAccessor","docElem","compareDocumentPosition","clientTop","clientLeft","parentOffset","AXIS","FLIPPED_DIRECTION","CROSS_AXIS","AXIS_SIZE","PARSED_PLACEMENT_CACHE","getDelta","containerScroll","containerDimensions","startEdgeOffset","endEdgeOffset","parsePlacement","crossAxis","crossPlacement","crossSize","computePosition","childOffset","overlaySize","minViablePosition","maxViablePosition","isContainerPositioned","containerOffsetWithBoundary","boundaryDimensions","getAvailableSpace","margins","calculatePositionInternal","placementInfo","normalizedOffset","scrollSize","flippedPlacementInfo","flippedPosition","getMaxHeight","arrowPosition","arrowOffsetLeft","arrowOffsetTop","calculatePosition","shouldOverlapWithTrigger","overlayNode","isBodyContainer","containerPositionStyle","getOffset","targetNode","getCss","getMargins","containerNode","getScrollTop","getScrollLeft","getContainerDimensions","boundaryElement","onCloseMap","useOverlayPosition","scrollRef","containerPadding","shouldFlip","crossOffset","shouldUpdatePosition","overlayRef","updatePosition","setPosition","translateRTL","scrollNode","isResizing","triggerRef","onCloseHandler","useCloseOnScroll","rendered","overlayProps","arrowProps","PortalContext","globalOverlayCounter","OverlayView","OverlayProvider","setOverlayItem","overlayId","setItems","removeOverlayItem","updateOverlayItem","OverlayContainer","contents","emptyArray","normalizeIdentifier","createResponderEvent","domEvent","propagationWasStopped","domEventChangedTouches","domEventType","normalizeTouches","locationX","locationY","emulatedTouches","responderEvent","dispatchConfig","ResponderTouchHistoryStore","composedPathFallback","getResponderId","getResponderPaths","idPath","nodePath","eventPath","getSelection","anchorNode","getEventPath","hasValidSelection","focusNode","isTextNode","TEXT_NODE","isSelectionValid","startRegistration","moveRegistration","shouldSetResponderEvents","emptyResponder","responderListenersMap","trackedTouchCount","currentResponder","changeCurrentResponder","responder","getResponderConfig","eventListener","isStartEvent","buttons","noModifiers","isPrimaryPointerDown","isMoveEvent","isEndEvent","isScrollEvent","isSelectionChangeEvent","recordTouchTrack","wantsResponder","eventPaths","wasNegotiated","currentResponderIdPath","eventIdPath","lowestCommonAncestor","pathA","pathB","pathALength","pathBLength","itemA","indexA","itemB","indexB","depth","getLowestCommonAncestor","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","callbackName","shouldSetCallback","_i","_node","_result","_id2","_node2","findWantsResponder","_currentResponder2","currentId","_getResponderConfig2","_getResponderConfig3","allowTransfer","attemptTransfer","_currentResponder","_getResponderConfig","isTerminateEvent","isReleaseEvent","hasTargetTouches","shouldTerminate","documentEventsCapturePhase","documentEventsBubblePhase","removeNode","_currentResponder3","terminateResponder","idCounter","getInitialValue","isAttachedRef","__reactResponderSystemActive","ResponderSystem","requiresResponderSystem","setResponderId","isResponder","accessibilityRoleToWebRole","adjustable","imagebutton","keyboardkey","summary","propsToAriaRole","inferredRole","roleComponents","article","banner","blockquote","complementary","contentinfo","deletion","emphasis","figure","insertion","form","listitem","navigation","region","strong","accessibilityStates","AnimatedTransform","_transforms","transConfigs","AnimatedStyle","_style","_walkStyleAndGetValues","updatedStyle","_walkStyleAndGetAnimatedValues","styleConfig","styleKey","_animatedView","__disconnectAnimatedView","__connectAnimatedView","animatedView","propsConfig","propKey","AnimatedBezier","sq","colorModeContext","colorMode","useModeManager","systemColorMode","useColorScheme","setColorMode","colorModeManager","setRawMode","useAccessibleColors","CSS_UNIT_RE","multiple","twoArgumentPooler","a1","a2","instancePool","standardReleaser","destructor","poolSize","DEFAULT_POOLER","PooledClass","addPoolingTo","CopyConstructor","pooler","NewKlass","getPooled","release","useToken","fallbackArr","token","flat","keysToOmit","keysToOmitSet","getOwnPropertyNames","propIsEnumerable","toObject","test1","test2","fromCharCode","test3","letter","shouldUseNative","require$$0","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","__self","__source","$$typeof","_owner","_assign","require$$1","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_LEGACY_HIDDEN_TYPE","symbolFor","MAYBE_ITERATOR_SYMBOL","ReactSharedInternals","printWarning","ReactDebugCurrentFrame","getStackAddendum","argsWithFormat","unshift","getContextName","getComponentName","_context","outerType","wrapperName","functionName","getWrappedName","_render","lazyComponent","_payload","_init","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledDepth","disabledLog","__reactDisabledLog","ReactCurrentDispatcher","describeBuiltInComponentFrame","ownerFn","componentFrameCache","reentry","PossiblyWeakMap","describeNativeComponentFrame","previousDispatcher","previousPrepareStackTrace","prepareStackTrace","groupCollapsed","groupEnd","disableLogs","Fake","sample","sampleLines","controlLines","_frame","reenableLogs","syntheticFrame","describeFunctionComponentFrame","describeUnknownElementTypeFrameInDEV","shouldConstruct","loggedTypeFailures","setCurrentlyValidatingElement","owner","_source","setExtraStackFrame","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","RESERVED_PROPS","jsxDEV","maybeKey","isReactWarning","hasValidKey","hasValidRef","warnIfStringRefCannotBeAutoConverted","warnAboutAccessingKey","defineKeyPropWarningGetter","warnAboutAccessingRef","defineRefPropWarningGetter","_store","ReactElement","propTypesMisspellWarningShown","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","getDeclarationErrorAddendum","ownerHasKeyUseWarning","validateExplicitKey","parentType","validated","currentComponentErrorInfo","parentName","getCurrentComponentErrorInfo","childOwner","validateChildKeys","iteratorFn","maybeIterable","maybeIterator","getIteratorFn","validatePropTypes","typeSpecs","typeSpecName","error$1","ex","checkPropTypes","PropTypes","getDefaultProps","isReactClassApproved","jsxWithValidation","isStaticChildren","validType","isValidElementType","typeString","sourceInfo","fileName","lineNumber","getSourceInfoErrorAddendum","fragment","validateFragmentProps","jsx","jsxs","jsxRuntimeModule","NODE_ENV","MapContext","applyUpdaterToNextProps","updaterMap","registerEvents","eventMap","newAcc","googleEventName","onEventName","google","unregisterEvent","registered","unregisterEvents","applyUpdatersToPropsAndRegisterEvents","registeredEvents","onDblClick","onDragEnd","onMapTypeIdChanged","onRightClick","onTilesLoaded","onBoundsChanged","onCenterChanged","onHeadingChanged","onIdle","onProjectionChanged","onTiltChanged","onZoomChanged","extraMapTypes","extra","mapTypes","setCenter","clickableIcons","clickable","setClickableIcons","setHeading","mapTypeId","setMapTypeId","setOptions","streetView","setStreetView","tilt","setTilt","zoom","setZoom","GoogleMap","mapRef","panTo","latLng","getInstance","getRef","setMapCallback","_jsx","mapContainerStyle","mapContainerClassName","isBrowser","injectScript","nonce","existingScript","windowWithGoogleMap","dataStateAttribute","originalInitMap","initMap","originalErrorCallback","script","isRobotoStyle","innerHTML","preventGoogleFonts","getElementsByTagName","trueInsertBefore","newElement","referenceElement","trueAppend","textNode","makeLoadScriptUrl","googleMapsApiKey","googleMapsClientId","language","libraries","channel","mapIds","cleaningUp","DefaultLoadingElement","previouslyLoadedUrl","defaultLoadScriptProps","LoadScript","loaded","promiseCallback","innerText","preventGoogleFontsLoading","isCleaningUp","cleanupCallback","_jsxs","loadingElement","defaultLoadingElement","LoaderStatus","isMounted","isLoaded","setLoaded","loadError","setLoadError","setLoadedIfMounted","prevLibraries","useLoadScript","apiKey","retries","CALLBACK","loading","Loader","equal","flags","fastDeepEqual","FAILURE","SUCCESS","LOADING","INITIALIZED","loadPromise","loadCallback","execute","createUrl","loadErrorCallback","defer","deleteScript","onerrorEvent","setScript","__googleMapsCallback","resetIfRetryingFailed","setCallback","trafficLayer","TrafficLayer","setTrafficLayerCallback","setMap","bicyclingLayer","BicyclingLayer","setBicyclingLayerCallback","transitLayer","TransitLayer","setTransitLayerCallback","onCircleComplete","onMarkerComplete","onOverlayComplete","onPolygonComplete","onPolylineComplete","onRectangleComplete","drawingMode","setDrawingMode","drawingManager","drawing","DrawingManager","setDrawingManagerCallback","onAnimationChanged","onClickableChanged","onCursorChanged","onDraggableChanged","onFlatChanged","onIconChanged","onPositionChanged","onShapeChanged","onTitleChanged","onVisibleChanged","onZindexChanged","setAnimation","setClickable","setCursor","setDraggable","icon","setIcon","setLabel","setOpacity","setShape","setTitle","setVisible","setZIndex","markerOptions","clusterer","Marker","addMarker","noClustererRedraw","removeMarker","elementChild","anchor","ClusterIcon","cluster","getClusterer","clusterClassName","getClusterClass","div","sums","boundsChangedListener","anchorText","anchorIcon","textColor","textSize","getMap","onAdd","cMouseDownInCluster","cDraggingMapByCluster","show","getPanes","overlayMouseTarget","addDomListener","markerClusterer_1","getZoomOnClick","maxZoom_1","getMaxZoom","bounds_1","getBounds","fitBounds","getZoom","onRemove","hide","clearInstanceListeners","draw","getPosFromLatLng","divTitle","bp","spriteH","spriteV","pos","getTitle","img","enableRetinaIcons","clip","textElm","useStyle","getStyles","latlng","getProjection","fromLatLngToDivPixel","Cluster","markerClusterer","gridSize","getGridSize","minClusterSize","getMinimumClusterSize","averageCenter","getAverageCenter","markers","bounds","clusterIcon","getMarkers","LatLngBounds","isMarkerAlreadyAdded","length_1","LatLng","lat","lng","calculateBounds","isAdded","mCount","maxZoom","isMarkerInClusterBounds","getExtendedBounds","updateIcon","getCalculator","CALCULATOR","numStyles","numberOfDigits","IMAGE_SIZES","Clusterer","optMarkers","optOptions","clusters","activeMap","ready","minimumClusterSize","zoomOnClick","ignoreHidden","imagePath","imageExtension","imageSizes","calculator","batchSize","batchSizeIE","clusterClass","timerRefStatic","setupStyles","addMarkers","repaint","resetViewport","redraw","fitMapToMarkers","setGridSize","setMinimumClusterSize","setMaxZoom","setStyles","setZoomOnClick","setAverageCenter","getIgnoreHidden","setIgnoreHidden","getEnableRetinaIcons","setEnableRetinaIcons","getImageExtension","setImageExtension","getImagePath","setImagePath","getImageSizes","setImageSizes","setCalculator","getBatchSizeIE","setBatchSizeIE","setClusterClass","getTotalMarkers","getClusters","getTotalClusters","optNoDraw","pushMarkerTo","getDraggable","removeMarker_","removed","removeMarkers","clearMarkers","oldClusters","projection","trPix","getNorthEast","blPix","getSouthWest","fromDivPixelToLatLng","createClusters","optHide","distanceBetweenPoints","dLat","dLon","isMarkerInBounds","addToClosestCluster","clusterToAddTo","iFirst","mapBounds","iLast","getVisible","obj1","obj2","onClusteringBegin","onClusteringEnd","setClustererCallback","InfoBox","content","disableAutoPan","pixelOffset","Size","boxClass","boxStyle","closeBoxMargin","closeBoxURL","infoBoxClearance","isHidden","alignBottom","pane","enableEventPropagation","closeListener","mapListener","contextListener","eventListeners","fixedWidthSet","createInfoBoxDiv","cancelHandler","setBoxStyle","getCloseBoxImg","addClickHandler","bw","getBoxWidths","panBox","closeBox","getCloseClickHandler","disablePan","xOffset","yOffset","mapDiv","getDiv","mapWidth","mapHeight","iwOffsetX","iwOffsetY","iwWidth","iwHeight","padX","padY","pixPosition","fromLatLngToContainerPixel","panBy","webkitTransform","msFilter","currentStyle","setContent","getContent","getZIndex","onCloseClick","onContentChanged","onDomReady","infoBox","containerElement","positionLatLng","infoBoxOptions","GoogleMapsInfoBox","setInfoBoxCallback","sortKD","coords","nodeSize","inc","sd","newLeft","newRight","swapItem","swap","tmp","sqDist","ax","ay","bx","by","defaultGetX","defaultGetY","KDBush","getX","getY","ArrayType","Float64Array","IndexArrayType","Uint16Array","Uint32Array","minX","minY","nextAxis","r2","minZoom","minPoints","radius","extent","generateId","fround","Supercluster","trees","timerId","geometry","createPointCluster","timeEnd","_cluster","bbox","minLng","minLat","maxLng","maxLat","easternHem","westernHem","tree","_limitZoom","lngX","latY","numPoints","getClusterJSON","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","origin","parentId","leaves","_appendLeaves","z2","tile","features","_addTileFeatures","expansionZoom","getChildren","cluster_id","skipped","point_count","isCluster","tags","getClusterProperties","coordinates","neighborIds","numPointsOrigin","neighborId","wx","wy","clusterProperties","_map","numPoints2","createCluster","original","yLat","abbrev","point_count_abbreviated","HAS_WEAKSET_SUPPORT","WeakSet","sameValueZeroEqual","isPromiseLike","isReactElement","getNewCacheFallback","getNewCache","createCircularEqualCreator","isEqual","comparator","_comparator","indexOrKeyA","indexOrKeyB","parentA","parentB","isCacheableA","isCacheableB","hasA","hasB","areObjectsEqual","keysA","reactElementA","reactElementB","HAS_MAP_SUPPORT","HAS_SET_SUPPORT","createComparator","createIsEqual","aShape","bShape","areArraysEqual","ignoreCase","unicode","sticky","areRegExpsEqual","isValueEqual","matchedIndices_1","indexA_1","aValue","aKey","hasMatch_1","matchIndexB_1","bValue","bKey","areMapsEqual","matchedIndices_2","hasMatch_2","matchIndex_1","areSetsEqual","_position","filterMarkersToPaddedViewport","mapCanvasProjection","viewportPadding","extendedMapBounds","extendBoundsToPaddedViewport","pixels","latLngBoundsToPixelBounds","northEast","southWest","extendedPixelBounds","extendPixelBounds","pixelBoundsToLatLngBounds","AbstractAlgorithm","AbstractViewportAlgorithm","GridAlgorithm","candidate","NoopAlgorithm","SuperClusterAlgorithm","superCluster","SuperCluster","transformCluster","getLeaves","leaf","ClusterStats","clusterMarkerCounts","clusterMarkerSum","mean","DefaultRenderer","stats","btoa","scaledSize","MAX_ZINDEX","MarkerClustererEvents","OverlayViewSafe","type1","type2","defaultOnClusterClickHandler","MarkerClusterer","algorithm","onClusterClick","noDraw","CLUSTERING_BEGIN","calculate","renderClusters","CLUSTERING_END","idleListener","CLUSTER_CLICK","useGoogleMarkerClusterer","useGoogleMap","setMarkerClusterer","markerCluster","infoWindow","InfoWindow","setInfoWindowCallback","setEditable","setPath","Polyline","polyline","setPolylineCallback","setPaths","polygon","Polygon","setPolygonCallback","setBounds","rectangle","Rectangle","setRectangleCallback","onRadiusChanged","setRadius","setCircleCallback","onAddFeature","onRemoveFeature","onRemoveProperty","onSetGeometry","onSetProperty","addgeojson","geojson","addGeoJson","feature","foreach","loadgeojson","loadGeoJson","overridestyle","overrideStyle","revertstyle","revertStyle","controlposition","controlPosition","setControlPosition","controls","setControls","drawingmode","setStyle","togeojson","toGeoJson","Data","setDataCallback","onDefaultViewportChanged","onStatusChanged","setUrl","createLatLng","inst","Type","createLatLngBounds","sw","convertToLatLngString","latLngLike","convertToLatLngBoundsString","latLngBoundsLike","south","east","north","west","kmlLayer","KmlLayer","setKmlLayerCallback","paneEl","mapPaneName","mapPanes","overlayView","updatePane","getPixelPositionOffset","previousPosition","layoutStyles","getLayoutStylesByBounds","getLayoutStylesByPosition","ensureOfType","getLayoutStyles","onPositionElement","prevPositionString","positionString","prevBoundsString","boundsString","GroundOverlay","groundOverlay","setGroundOverlayCallback","setData","heatmapLayer","visualization","HeatmapLayer","setHeatmapLayerCallback","onPanoChanged","onPovChanged","registerPanoProvider","links","setLinks","motionTracking","setMotionTracking","pano","setPano","pov","setPov","streetViewPanorama","getStreetView","setStreetViewPanoramaCallback","streetViewService","StreetViewService","setStreetViewServiceCallback","directionsService","DirectionsService","setDirectionsServiceCallback","onDirectionsChanged","setDirections","panel","setPanel","routeIndex","setRouteIndex","directionsRenderer","DirectionsRenderer","setDirectionsRendererCallback","distanceMatrixService","DistanceMatrixService","setDistanceMatrixServiceCallback","getDistanceMatrix","onPlacesChanged","searchBox","places","SearchBox","setSearchBoxCallback","onPlaceChanged","restrictions","setComponentRestrictions","setFields","setTypes","autocomplete","Autocomplete","setAutocompleteCallback","formControlContext","combinedProps","combineContextAndProps","mergedRef","endIcon","startIcon","FormControlTemp","cur","isInSSRContext","isSSR","setIsSSR","createValue","_isReset","clearReset","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","AnimatedCall","jsFunction","_args","createAnimatedCall","onValueChangedListeners","nativeInstance","createMMKV","functionCache","getFunctionFromCache","onValuesAboutToChange","unstable_batchedUpdates","getBoolean","getString","getNumber","clearAll","recrypt","addOnValueChangedListener","onValueChanged","currObj","withStyleAnimation","styleAnimations","stillGoing","entriesToCheck","currentEntry","currentStyleAnimation","prevAnimation","prevVal","currentAnimation","animationsToCheck","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","rejectResponderTermination","touchableHandleStartShouldSetResponder","touchableLongPressCancelsPress","touchableHandleResponderGrant","dispatchID","delayMS","touchableGetHighlightDelayMS","_handleDelay","longDelayMS","touchableGetLongPressDelayMS","LONG_PRESS_THRESHOLD","_handleLongDelay","touchableHandleResponderRelease","touchableHandleResponderMove","positionOnActivate","dimensionsOnActivate","pressRectOffset","touchableGetPressRectOffset","pressExpandLeft","pressExpandTop","pressExpandRight","pressExpandBottom","touchableGetHitSlop","_getDistanceBetweenPoints","touchableHandleFocus","touchableHandleBlur","_remeasureMetricsOnActivation","_handleQueryLayout","globalX","globalY","Position","BoundingDimensions","curState","_performSideEffectsForTransition","_isHighlight","_savePressInLocation","bX","bY","curIsHighlight","newIsHighlight","isInitialTransition","isActiveTransition","touchableHandleLongPress","_startHighlight","_endHighlight","hasLongPressHandler","pressIsLongButStillCallOnPress","touchableHandlePress","_playTouchSound","playTouchSound","touchableHandleActivePressIn","touchableHandleActivePressOut","touchableGetPressOutDelayMS","touchableHandleKeyEvent","withoutDefaultFocusAndBlur","TouchableMixinWithoutDefaultFocusAndBlur","TOUCH_TARGET_DEBUG","renderDebugView","debugHitSlopStyle","hexColor","UnimplementedView","transitionProperty","actionable","MemoedTouchableOpacity","setDuration","_useState2","opacityOverride","setOpacityOverride","setOpacityTo","setOpacityActive","setOpacityInactive","isGrant","arrayIncludes","fromIndex","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","arrayMap","cacheHas","overArg","spreadableSymbol","isConcatSpreadable","getAllKeysIn","getSymbolsIn","stubArray","isFlattenable","baseFlatten","isStrict","basePickBy","basePick","valuesLength","outer","computed","valuesIndex","baseDifference","HybridContext","toggleColorMode","setAccessibleColors","objects","uniqueID","defaultOffset","textShadowOffset","nextStyles","boxShadowReducer","textShadow","textShadowReducer","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flexOrder","flexPositive","flexNegative","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","lineClamp","orphans","tabSize","widows","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","scaleZ","prefixes","prefixKey","PROPERTIES_FLIP","PROPERTIES_I18N","borderStartStyle","borderEndStyle","PROPERTIES_VALUE","float","additiveInverse","originalStyle","frozenProps","nextStyle","originalProp","convertedProp","convertedValue","flippedValue","invertedValue","UNINITIALIZED","ExitAnimationContext","exited","setExited","_exited","evalNode","JSReanimated","_val","rawStyles","dashedKey","previousStyle","transformStylesMap","getAnimatedStyles","animateValue","defaultTransitionConfig","prevVisible","animationState","entryTransition","exitTransition","startAnimation","setAnimationState","onTransitionComplete","animateState","ApplicationReleaseType","getInstallationTimeAsync","nativeApplicationVersion","nativeBuildVersion","applicationName","applicationId","androidId","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","setColorScheme","MutationCache","mutations","mutationId","mutationCache","defaultMutationOptions","getMutationDefaults","notify","getAll","findAll","resumePausedMutations","pausedMutations","bindMethods","updateResult","mutate","_this$currentMutation","currentMutation","removeObserver","onMutationUpdate","notifyOptions","getCurrentResult","currentResult","variables","mutateOptions","getMutationCache","addObserver","isLoading","isSuccess","isError","isIdle","onSettled","progressBackgroundColor","titleColor","cssFunction","SafeAreaView","prepareAnimation","lastAnimation","lastValue","callStart","runAnimations","animationsActive","allFinished","styleUpdater","newValues","oldValues","hasAnimations","isAnimationCancelled","isAnimationRunning","jestStyleUpdater","makeViewsRefSet","makeViewDescriptorsSet","adaptersArray","adaptersHash","remoteState","sharableViewDescriptors","rebuildsharableViewDescriptors","updaterFn","checkSharedValueUsage","currentKey","createExtraStyles","hasPressHandler","MemoedTouchableHighlight","onHideUnderlay","onShowUnderlay","extraStyles","setExtraStyles","showUnderlay","hideUnderlay","longPressGestureHandlerProps","flingGestureHandlerProps","Share","share","MemoedTouchableWithoutFeedback","elementProps","relativeKeyboardHeight","keyboardFrame","keyboardY","screenY","keyboardVerticalOffset","onKeyboardChange","behavior","alert","LogBox","ignoreLogs","ignoreAllLogs","uninstall","install","forceTouchGestureHandlerProps","ForceTouchFallback","Query","abortSignalConsumed","hadObservers","observers","getDefaultState","scheduleGc","_this$options$cacheTi","cacheTime","setDefaultOptions","clearGcTimeout","gcTimeout","optionalRemove","_this$options$isDataE","_this$options","prevData","isDataEqual","structuralSharing","dataUpdatedAt","setStateOptions","_this$retryer","retryer","isInvalidated","isStaleByTime","_this$retryer2","shouldFetchOnWindowFocus","refetch","_this$retryer3","shouldFetchOnReconnect","getObserversCount","invalidate","fetchOptions","_this$options$behavio","_context$fetchOptions","_abortController$abor","cancelRefetch","_this$retryer4","abortController","queryFnContext","pageParam","_this$options$behavio2","_context$fetchOptions2","fetchFn","onFetch","revertState","fetchMeta","onQueryUpdate","initialData","initialDataUpdatedAt","hasData","dataUpdateCount","errorUpdateCount","errorUpdatedAt","fetchFailureCount","_action$meta","_action$dataUpdatedAt","QueryCache","queries","queriesMap","_options$queryHash","defaultQueryOptions","getQueryDefaults","queryInMap","AnimatedCallFunc","_params","_previousCallID","beginContext","endContext","createAnimatedCallFunc","AnimatedFunction","createAnimatedFunction","toVal","findLastValidBreakpoint","timestampForTouch","getTouchIdentifier","recordTouchStart","touchRecord","startPageX","startPageY","startTimeStamp","previousTimeStamp","resetTouchRecord","createTouchRecord","recordTouchMove","printTouch","printTouchBank","recordTouchEnd","printed","topLevelType","touchTrackToCheck","activeRecord","uppercasePattern","toHyphenLower","processIDRefList","idRefList","listStyle","pointerEventsStyles","auto","providedStyle","_prop","dataProp","dataName","dataValue","_focusable","reactNativeStyle","needsCursor","finalClassList","_styleResolver$resolv","newFontFamily","newFontStyle","newFontWeight","fontToken","fontWeightNumber","Mutation","restored","onMutate","executeMutation","_this$options$retry","shouldThrowError","suspense","_useErrorBoundary","_this$_nativeModule","_this$_nativeModule2","_this$_nativeModule3","_this$_nativeModule4","MutableValue","setter","MUTABLE_ID","_setter","_triggerListener","__reanimatedModuleProxy","installTurboModule","InnerNativeModule","valueSetter","sensorId","eventHash","isNativeFunction","_wrapNativeSuper","_cache","Wrapper","resolvedColor","unimplementedViewStyles","colorString","skippedModels","hashedModelKeys","model","labels","limiters","channels","valpha","zeroArray","hashedKeys","percent","roundToPlace","getset","maxfn","saturationl","lightness","saturationv","chroma","wblack","keyword","rgbArray","alphaHex","lum","chan","lum1","luminosity","lum2","contrastRatio","contrast","hwb","degrees","mixinColor","weight","w1","w2","assertArray","roundTo","modifier","isDefined","isBlank","hasOwn","KeyStore","_keys","_keyMap","totalWeight","keyId","createKeyPath","createKeyId","MISSING_KEY_PROPERTY","INVALID_KEY_WEIGHT_VALUE","Config","isCaseSensitive","includeScore","shouldSort","sortFn","includeMatches","findAllMatches","minMatchCharLength","useExtendedSearch","getFn","deepGet","ignoreLocation","ignoreFieldNorm","fieldNormWeight","SPACE","FuseIndex","norm","mantissa","numTokens","isCreated","setIndexRecords","docs","records","_keysMap","docIndex","_addString","_addObject","keyIndex","subRecords","nestedArrIndex","subRecord","createIndex","myIndex","setKeys","setSources","computeScore$1","currentLocation","expectedLocation","accuracy","proximity","patternAlphabet","patternLen","textLen","currentThreshold","bestLocation","computeMatches","matchMask","lastBitArr","finalScore","binMax","binMin","binMid","finish","bitArr","charMatch","isMatch","indices","matchmask","convertMaskToIndices","createPatternAlphabet","char","BitapSearch","chunks","addChunk","startIndex","alphabet","allIndices","totalScore","hasMatches","BaseMatch","getMatch","multiRegex","singleRegex","FuzzyMatch","_bitapSearch","searchIn","IncludeMatch","searchers","searchersLen","SPACE_RE","MultiMatchSet","ExtendedSearch","queryItem","found","searcher","isMultiMatch","isSingleMatch","parseQuery","numMatches","qLen","pLen","registeredSearchers","createSearcher","searcherClass","LogicalOperator","KeyType","isExpression","convertToExplicit","isQueryPath","isPath","isLeaf","LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY","transformMatches","refIndex","transformScore","Fuse","_keyStore","setCollection","_docs","_myIndex","removeAt","_searchStringList","_searchObjectList","_searchLogical","EPSILON","transformers","expression","evaluate","_findMatches","getValueForItemAtKeyId","resultMap","expResults","parseIndex","holderStyle","animationStyle","slideComponent","setContainerOpacity","isKeyboardDismissable","overlayVisible","backdropVisible","setBottom","useKeyboardBottomInset","useControllableState","avoidKeyboard","useRNModalOnAndroid","finalRefVal","onAccessibilityEscape","aria-modal","ModalTemp","ModalMain","childrenArray","flattenChildren","flatChildren","spacingProp","divider","getSpacedChildren","questionOutlineIconPath","SVG","ChildPath","pathStroke","pathStrokeColor","fillColor","strokeHex","colorHex","isWebColor","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","_options2","dehydrateMutations","shouldDehydrateMutation","dehydrateMutation","dehydrateQueries","shouldDehydrateQuery","getQueryCache","dehydrateQuery","dehydratedState","dehydratedMutation","_options$defaultOptio","dehydratedQuery","_options$defaultOptio2","hName","jotai","RESET","asyncGeneratorStep","gen","_next","_throw","createMemoizeAtom","createAtom","cachedAtom","_deps","dep","getWeakCacheItem","createdAtom","_deps2","setWeakCacheItem","memoizeAtom$4","memoizeAtom$3","deepFreeze","memoizeAtom$2","isWritable","memoizeAtom$1","unwrapAtoms","atoms","wrapResults","_extends2","createJSONStorage","getStringStorage","setItem","removeItem","defaultStorage","localStorage","atomWithStorage","storage","baseAtom","delayInit","setAtom","unsub","_value2","storageEventCallback","hydratedMap","memoizeAtom","atomFamily","initializeAtom","areEqual","shouldRemove","newAtom","setShouldRemove","_step3","_iterator3","_step3$value","atomWithDefault","getDefault","EMPTY","overwrittenAtom","anAtom","overwritten","atomWithHash","serialize","deserialize","_subscribe","hashStorage","storedValue","URLSearchParams","searchParams","atomWithObservable","createObservable","observableResultAtom","_observable$Symbol$ob","_observable","settlePromise","observable","itself","dataAtom","dataListener","errorListener","_subscription","_set","atomWithReducer","atomWithReset","freezeAtom","freezeAtomCreator","origRead","loadable","loadableAtomCache","catchAtom","cached","loadableAtom","regeneratorRuntime","mark","_callee","_data","sent","t0","_x2","selectAtom","equalityFn","refAtom","splitAtom","arrAtom","mappingCache","getMapping","prevMapping","atomList","keyList","itemRefAtom","itemRef","nextItem","splittedAtom","atomToRemove","useAtomCallback","invoke","useHydrateAtoms","scopeContainer","hydratedSet","getHydratedSet","tuplesToRestore","useReducerAtom","_useAtom","useResetAtom","waitForAll","unwrappedAtoms","promises","providerProps","rootComponentName","consumerName","readableStyles","hairlineWidth","getResponsiveStylesImpl","queryRule","flattenQueryStyle","rangeStyle","minWidthStyle","maxWidthStyle","useDimensionsWithEnable","setDimensions","seed","murmurhash2_32_gc","supportsCSS3TextDecoration","mapTransform","backgroundClip","WebkitBackgroundClip","resolveTransform","longFormProperties","longForm","specificityPrecedence","INITIAL_PROP_SPECIFICITY","pseudoPropsMap","dependentOn","priority","_indeterminate","respondTo","_readOnly","_important","ignorebaseTheme","exisiting","upcoming","shouldResolvePseudoProp","specificityMap","simplifyProps","mergePsuedoProps","propertySpecity","currentSpecificity","colorModeResult","_Animation","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_config$stiffness","_config$damping","_config$mass","_overshootClamping","_restDisplacementThreshold","_restSpeedThreshold","_initialVelocity","_lastVelocity","_toValue","_delay","isInteraction","__iterations","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","SpringConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_this$_initialVelocit","__active","_startPosition","_lastPosition","_onUpdate","_lastTime","_frameTime","internalState","getInternalState","lastVelocity","_timeout","envelope","_envelope","_animationFrame","_easeInOut","_config$easing","_config$duration","_easing","_duration","numFrames","_fromValue","_startTime","viewAreaCoveragePercentThreshold","_timers","_viewableIndices","_viewableItems","computeViewableItems","scrollOffset","viewportHeight","getFrameMetrics","renderRange","itemVisiblePercentThreshold","viewAreaMode","viewablePercentThreshold","viewableIndices","firstVisible","_isViewable","createViewToken","waitForInteraction","minimumViewTime","_onUpdateSync","viewableIndicesToCheck","prevItems","nextItems","_viewable","itemLength","_isEntirelyVisible","visibleHeight","_getPixelsVisible","assets","assetId","batchToRemove","waitForInsertSync","waitForRemoveSync","getPooledFromElement","GestureStateManager","RootTagContext","AppContainer","WrapperComponent","innerView","appContainer","RootComponent","shouldHydrate","renderFn","getStyleElement","dangerouslySetInnerHTML","__html","wm","wms","wmms","plugins","crossFade","flexboxIE","flexboxOld","gradient","grid","imageSet","logical","sizing","prefixMap","animationDelay","animationDirection","animationFillMode","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","writingMode","flexFlow","transformOrigin","transformOriginX","transformOriginY","perspectiveOrigin","transformOriginZ","backdropFilter","fontKerning","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","wrapFlow","wrapThrough","wrapMargin","textSizeAdjust","borderImage","borderImageRepeat","borderImageSource","transitionDelay","transitionTimingFunction","prefixAll","createPrefixer","staticData","prefixedStyles","useResponsiveQuery","getStyledSystemPropsAndRestProps","stableHash","arrayLikeToArray","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","useMutation","mountedRef","obsRef","useErrorBoundary","mutateAsync","QueryObserver","trackedProps","previousSelectError","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","refetchOnReconnect","refetchOnWindowFocus","clearTimers","prevOptions","prevQuery","defaultQueryObserverOptions","updateQuery","shouldFetchOptionally","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","defaultedOptions","createResult","trackResult","trackedResult","trackProp","getNextResult","throwOnError","getCurrentQuery","refetchPage","fetchOptimistic","clearStaleTimeout","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","clearRefetchInterval","refetchIntervalId","refetchIntervalInBackground","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","isPlaceholderData","optimisticResults","fetchOnMount","fetchOptionally","keepPreviousData","_this$previousSelect","previousSelect","selectError","placeholderData","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsExclusions","includedProps","typedKey","isIncluded","isExcluded","defaultNotifyOptions","_this8","retryOnMount","shouldLoadOnMount","refetchOnMount","shouldRefetchOnMount","enteringAnimationForTag","removeConfig","startAnimationForTag","yogaValues","entryAniamtion","layoutAnimation","_stopObservingProgress","_startObservingProgress","backupColor","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","arrStacked","othStacked","stubFalse","baseIsTypedArray","getRandomValues","crypto","msCrypto","rnds8","rnds","byteToHex","buf","bth","cssKeywords","reverseKeywords","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","rdif","gdif","bdif","diffc","currentClosestKeyword","currentClosestDistance","t3","t1","smin","lmin","hi","vmin","sl","wh","bl","hr","saturation","ansi","mult","integer","grayscale","pure","mg","BrowserRouter","historyRef","UpdateEventType","reload","_emitter","releaseChannel","runtimeVersion","localAssets","isEmergencyLaunch","isUsingEmbeddedAssets","manifest","manifestString","createdAt","commitTime","isUsingDeveloperTool","developer","tool","manualUpdatesInstructions","ExponentConstants","appOwnership","reloadAsync","checkForUpdateAsync","fetchUpdateAsync","clearUpdateCacheExperimentalAsync","_sdkVersion","_emitEvent","newParams","getNextPageParam","pages","getPreviousPageParam","QueryClient","queryDefaults","mutationDefaults","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","isMutating","getQueryData","_this$queryCache$find","getQueriesData","queryKeyOrFilters","setQueryData","parsedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","_parseFilterArgs3","refetchFilters","refetchQueries","cancelQueries","_parseFilterArgs4","_parseFilterArgs4$","invalidateQueries","_filters$refetchActiv","_filters$refetchInact","_parseFilterArgs5","refetchActive","refetchInactive","_parseFilterArgs6","fetchQuery","prefetchQuery","fetchInfiniteQuery","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","pageParams","abortSignal","newPageParams","buildNewPages","page","fetchPage","manual","queryFnResult","_manual","_param","shouldFetchFirstPage","_param2","finalPromise","prefetchInfiniteQuery","cancelMutations","getDefaultOptions","setQueryDefaults","_this$queryDefaults$f","setMutationDefaults","_this$mutationDefault","_defaulted","useQuery","Observer","errorResetBoundary","useBaseQuery","domStorage","funcTag","genTag","reFlags","cloneableTags","addMapEntry","addSetEntry","arrayReduce","accumulator","initAccum","baseClone","isFull","initCloneArray","isFunc","copySymbols","baseAssign","cloneFunc","dataView","cloneDataView","cloneMap","regexp","cloneRegExp","cloneSet","initCloneByTag","arrayEach","subValue","baseHasIn","baseIteratee","isStrictComparable","matchesStrictComparable","hasFunc","hasPath","hasIn","UNORDERED_COMPARE_FLAG","baseMatchesProperty","matchData","getMatchData","noCustomizer","baseIsMatch","baseMatches","basePropertyDeep","pickBy","negate","useContrastText","suppressColorAccessibilityWarning","trueColor","themeColorsThresholdShades","bgThemeColorVariant","shadeThreshold","bgShade","getContrastThemeColor","trueBg","darkTextConstrast","getContrastRatio","lightTextConstrast","trueContrastColor","contrastColorToken","getAccessibleContrastColor","foreground","lumA","lumB","invalidShortforms","suggestion","useStableMemo","_isObject2","combinedValue","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","_interopRequireDefault","_isPrefixedValue2","_isPrefixedValue","grab","grabbing","alternativeProps","alternativeValues","flexShorthandMappings","msFlex","logTag","flexValues","WebkitBoxDirection","grad","_slicedToArray","_arr","_n","_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","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","propertyPrefixMap","outputValue","multipleValues","dashCaseProperty","_hyphenateProperty2","prefixMapping","prefixValue","webkitOutput","mozOutput","_capitalizeString2","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","responsivePropsExists","isResponsiveAnyProp","modifiedProps","setModified","CSSTransitions","MSTransition","OTransition","NativeSafeAreaProvider","onInsetsChange","getInset","createContextElement","getSupportedTransitionEvent","_supportedTransitionEvent","_supportedEnv","side","getSupportedEnv","TurboModuleRegistry","_config$deceleration","_deceleration","_velocity","ReactNoopUpdateQueue","isTouching","lastMomentumScrollBeginTime","lastMomentumScrollEndTime","observedScrollSinceBecomingResponder","becameResponderWhileAnimating","scrollResponderIsAnimating","currentlyFocusedTextInput","keyboardShouldPersistTaps","onScrollResponderKeyboardDismissed","nodeHandle","additionalOffset","preventNegativeScrollOffset","additionalScrollOffset","scrollResponderTextInputFocusError","scrollResponderInputMeasureAndScrollToKeyboard","keyboardScreenY","keyboardWillOpenTo","endCoordinates","scrollOffsetY","scrollResponderKeyboardWillShow","onKeyboardWillShow","scrollResponderKeyboardWillHide","onKeyboardWillHide","scrollResponderKeyboardDidShow","onKeyboardDidShow","scrollResponderKeyboardDidHide","onKeyboardDidHide","normalizeScrollEvent","_props$scrollEnabled","scrollEnabled","_props$scrollEventThr","showsHorizontalScrollIndicator","scrollState","isScrolling","scrollLastTick","scrollTimeout","createPreventableScrollHandler","handleScrollTick","hideScrollbar","handleScrollEnd","lastTick","eventThrottle","timeSinceLastTick","shouldEmitScrollEvent","handleScrollStart","scrollDisabled","_console","elementsThatOverlapOffsets","offsets","outLength","trailingOffset","newRangeCount","getFrameMetricsApprox","visibleBegin","visibleEnd","overscanLength","fillPreference","overscanBegin","overscanEnd","_elementsThatOverlapO","overscanFirst","overscanLast","newCellCount","maxNewCells","firstWillAddMore","firstShouldIncrement","lastWillAddMore","lastShouldIncrement","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","scrollSpeed","blankTop","firstFrame","blankBottom","bottomEdge","blankness","_taskHandle","timeoutHandle","_valueSetter","_renderRequested","_mapperRegistry","MapperRegistry","timeProvider","ReanimatedDataMock","maybeRequestRender","_timestampMs","_onRender","timestampMs","needRunOnRender","Mapper","__","sortedMappers","mappers","updatedSinceLastExecute","_module","updateOrder","mappersById","nodesLen","restNode","outi","outputsLen","resti","restLen","post","postCounter","dfs","postArray","MAPPER_ID","extractMutablesFromArray","markDirty","extractMutables","semver","patchIndex","tryParse","compareVersions","v1","v2","s1","s2","n1","n2","sp1","sp2","allowedOperators","operatorResMap","compare","validateOperator","createTextNode","family","J","vendor","race","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDerivedStateFromError","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","v4","uuid","ariaLabelledby","ariaLabel","labelElementType","labelProps","htmlFor","validationState","fieldProps","descriptionId","errorMessageId","errorMessageProps","fbemitter","LTS","LT","LL","LLL","LLLL","_await","direct","_async","_empty","_invokeIgnored","createAsyncStoragePersistor","_ref$key","_ref$throttleTime","throttleTime","_ref$serialize","_ref$deserialize","persistClient","asyncThrottle","persistedClient","restoreClient","cacheString","removeClient","_ref2$interval","_ref2$limit","running","lastArgs","persistQueryClient","persistor","_ref$maxAge","maxAge","_ref$buster","buster","hydrateOptions","dehydrateOptions","saveClient","clientState","_continue","recover","_catch","expired","busted","TRANSFORM_STYLE_PROPERTIES","wrapStyleTransforms","wrapped","DIRECTIONAL_FALLBACKS","Top","Bottom","Vertical","Horizontal","DIRECTIONAL_SUFFICES","getStyleValues","fallbacks","getDefaultStyleValue","compareNumbers","notNull","parsePosition","parsed","createAnimation","definition","positions","animationRegistry","registerAnimation","initializeRegistryWithDefinitions","EASING_FUNCTIONS","INTERPOLATION_STYLE_PROPERTIES","ZERO_CLAMPED_STYLE_PROPERTIES","getAnimationTarget","iteration","getAnimationOrigin","getCompiledAnimation","compiledAnimation","makeInterpolatedStyle","transitionToValue","transitionValue","onTransitionBegin","createAnimatableComponent","WrappedComponent","wrappedComponentName","Animatable","handleRef","transitionStyle","transitionValues","currentTransitionValues","initializeTransitionState","delayTimer","transitionKeys","styleValues","missingKeys","transitionState","onAnimationBegin","iterationDelay","endState","transitionTo","scheduledAnimation","iterationCount","currentIteration","fromValues","toValues","fromValuesFlat","toValuesFlat","getTransitionState","needsInterpolation","needsZeroClamping","transitionToValues","currentTransitionValue","oneOfType","oneOf","arrayOf","0.2","0.4","0.43","0.53","0.7","0.8","0.9","1","flash","0.25","0.5","0.75","jello","skewY","0.111","0.222","0.333","0.444","0.555","0.666","0.777","0.888","pulse","shake","0.1","0.3","0.6","swing","rubberBand","0.65","tada","wobble","0.15","0.45","bounceIn","bounceInUp","bounceInDown","bounceInRight","bounceInLeft","bounceOut","0.55","bounceOutUp","bounceOutDown","bounceOutRight","bounceOutLeft","makeFadeInTranslation","translationType","fadeInDown","fadeInUp","fadeInLeft","fadeInRight","fadeInDownBig","fadeInUpBig","fadeInLeftBig","fadeInRightBig","makeFadeOutTranslation","fadeOutDown","fadeOutUp","fadeOutLeft","fadeOutRight","fadeOutDownBig","fadeOutUpBig","fadeOutLeftBig","fadeOutRightBig","flipInX","flipInY","flipOutX","flipOutY","lightSpeedIn","lightSpeedOut","makeSlideInTranslation","slideInDown","slideInUp","slideInLeft","slideInRight","makeSlideOutTranslation","slideOutDown","slideOutUp","slideOutLeft","slideOutRight","makeZoomInTranslation","pivotPoint","zoomIn","zoomInDown","zoomInUp","zoomInLeft","zoomInRight","makeZoomOutTranslation","zoomOut","zoomOutDown","zoomOutUp","zoomOutLeft","zoomOutRight","ANIMATION_DEFINITIONS","createComponent","CoreView","CoreText","CoreImage","makeSlideTranslation","buildAnimations","updatedAnimationIn","updatedAnimationOut","animationIn","animationOut","makeAnimation","reversePercentage","animatable","backdrop","containerBox","extractAnimationFromProps","ReactNativeModal","showContent","deviceWidth","deviceHeight","isSwipeable","swipeDirection","pan","isTransitioning","inSwipeClosingState","currentSwipingDirection","panResponder","didUpdateDimensionsEmitter","interactionHandle","getDeviceHeight","getDeviceWidth","onBackButtonPress","shouldPropagateSwipe","propagateSwipe","buildPanResponder","animEvt","shouldSetPanResponder","panResponderThreshold","onSwipeStart","getSwipingDirection","createAnimationEventForSwipe","_dispatchInstances","isSwipeDirectionAllowed","newOpacityFactor","calcDistancePercentage","backdropRef","backdropOpacity","onSwipeMove","scrollHorizontal","scrollOffsetMax","getAccDistancePerDirection","swipeThreshold","onSwipeComplete","swipingDirection","onSwipe","onSwipeCancel","isDirectionIncluded","draggedDown","draggedUp","draggedLeft","draggedRight","handleDimensionsUpdate","backdropTransitionInTiming","contentRef","onModalWillShow","animationInTiming","onModalShow","backdropTransitionOutTiming","onModalWillHide","animationOutTiming","onModalHide","makeBackdrop","hasBackdrop","customBackdrop","backdropColor","useNativeDriverForBackdrop","onBackdropPress","hasCustomBackdrop","backdropComputedStyle","backdropWrapper","coverScreen","otherProps","containerProps","panPosition","hideModalContentWhileAnimating","containerView","supportedOrientations","statusBarTranslucent","isIOS","generatePrefixes","alwaysIncludeGoogle","citymapper","uber","lyft","transit","truckmap","waze","yandex","moovit","kakaomap","mapycz","osmand","gett","navermap","naverCallerName","dgis","liftago","petalmaps","generateTitles","titles","icons","appKeys","getAvailableApps","availableApps","app","isAppInstalled","getNotSupportedApps","apps","isSupportedApp","checkNotSupportedApps","notSupportedApps","MapsException","askAppChoice","dialogTitle","dialogMessage","cancelText","appsWhiteList","appTitles","appName","ActionSheetIOS","showActionSheetWithOptions","cancelButtonIndex","buttonIndex","checkOptions","googleForceLatLon","googlePlaceId","showLocation","useSourceDestiny","sourceLat","sourceLatitude","sourceLng","sourceLongitude","sourceLatLng","latitude","longitude","encodedTitle","getDirectionsModeAppleMaps","directionsMode","getDirectionsModeGoogleMaps","appleDirectionMode","googleDirectionMode","SCREEN_HEIGHT","Popup","_renderAppItem","loadApps","showHeader","customHeader","headerContainer","titleText","subtitleText","separatorStyle","itemContainer","_onAppPressed","itemText","cancelButtonContainer","onCancelPressed","cancelButtonText","customFooter","_renderCancelButton","onAppPressed","onBackButtonPressed","modalProps","_renderHeader","activityIndicatorContainer","_renderApps","_renderFooter","ExpoStatusBar","createOrReuseTransformNode","oldNode","inputTransform","outputTransform","hasAnimatedTransform","nodeID","sanitizeTransform","parents","extractAnimatedParentNodes","_transform","createOrReuseStyleNode","sanitizeStyle","sanitizeProps","_disconnectAnimatedView","_connectAnimatedView","defaultInstance","getDefaultInstance","createMMKVHook","mmkv","keyRef","changedKey","isAvailableAsync","shareAsync","StyledInput","handleFocus","focusState","setIsFocused","inputThemeProps","resolvedPlaceholderTextColor","resolvedSelectionColor","resolvedUnderlineColorAndroid","InputLeftElement","isFullWidth","underlineColorAndroid","InputRightElement","POSITIONS","transitionConfig","ToastContext","toastInfo","setToastInfo","setToast","removeToast","hideAll","visibleToasts","setVisibleToasts","hideToast","CustomToast","getPositions","hasToastOnOverlay","toast","ToastProvider","toastIndex","prevVisibleToasts","toastPosition","positionArray","toastData","newPositionArray","temp","positionToastArray","themeProps","accessibilityAnnouncement","useToast","closeAll","ToastRef","WarningIcon","WarningTwoIcon","stroke-width","InfoIcon","AlertContext","getIcon","AlertTemp","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","awrap","iter","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","delegateYield","accidentalStrictMode","globalThis","StrictMode","Profiler","Suspense","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","isPureReactComponent","escape","_status","ReactCurrentBatchConfig","IsSomeRendererActing","PureComponent","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","MessageChannel","port1","port2","installMessageChannelImplementation","html","onreadystatechange","installReadyStateChangeImplementation","prefixProperties","requiredPrefixes","capitalizedProperty","styleProperty","_capitalizeString","metaData","addIfNew","_hyphenateStyleName2","_hyphenateStyleName","aa","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","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","Qa","Ra","Sa","Ta","Va","_valueTracker","Ua","Wa","Xa","Ya","_wrapperState","initialChecked","Za","controlled","$a","ab","bb","eb","db","fb","gb","hb","ib","jb","kb","lb","nb","ob","MSApp","execUnsafeLocalFunction","namespaceURI","nodeValue","qb","gridArea","gridRowSpan","gridColumnSpan","rb","sb","tb","ub","menuitem","area","br","col","embed","keygen","wbr","vb","wb","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","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","qc","rc","blockedOn","domEventName","eventSystemFlags","targetContainers","sc","tc","vc","wc","lanePriority","unstable_runWithPriority","containerInfo","xc","yc","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","nd","od","charCode","qd","rd","_reactName","_targetInst","isPersistent","wd","xd","yd","td","ud","vd","Ad","screenX","getModifierState","zd","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Up","Down","Del","Win","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","27","32","33","34","35","36","37","38","39","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","Td","tangentialPressure","tiltX","tiltY","twist","isPrimary","Vd","Xd","Zd","wheelDelta","deltaZ","deltaMode","documentMode","qe","xe","ze","oninput","Ae","Be","Ee","Fe","He","Ie","Je","Ke","Le","HTMLIFrameElement","contentWindow","Oe","contentEditable","Qe","Re","Ue","anchorOffset","focusOffset","Ve","We","Xe","Ze","Yb","$e","af","bf","cf","df","Nb","ef","ff","gf","hf","je","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","getChildContext","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","cg","dg","eg","fg","gg","hg","ig","jg","kg","ng","og","pg","qg","rg","sg","childLanes","tg","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","shouldComponentUpdate","Mg","Ng","componentWillReceiveProps","Og","getSnapshotBeforeUpdate","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","ah","bh","dh","eh","fh","gh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ji","ki","li","mi","baseLanes","ni","oi","pi","componentWillUpdate","qi","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","V","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","_reactRootContainer","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","ck","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","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","unstable_observedBits","Vj","vk","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","supportsFiber","inject","flushSync","unstable_createPortal","unstable_renderSubtreeIntoContainer","unstable_forceFrameRate","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","_invariant","ReactComponent","injectedMixins","ReactClassInterface","statics","updateComponent","ReactClassStaticInterface","RESERVED_SPEC_KEYS","mixSpecIntoComponent","createMergedResultFunction","mixStaticSpecIntoComponent","autobind","validateMethodOverride","isAlreadyDefined","specPolicy","ReactClassMixin","spec","autoBindPairs","__reactAutoBindPairs","isReactClassMethod","createChainedFunction","mergeIntoWithNoDuplicateKeys","bindAutoBindMethod","IsMountedPreMixin","__isMounted","IsMountedPostMixin","ReactClassComponent","autoBindKey","bindAutoBindMethods","methodName","sham","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","typeOf","stackClear","stackDelete","stackGet","stackHas","stackSet","hashClear","hashDelete","hashGet","hashHas","hashSet","setCacheAdd","setCacheHas","objStacked","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","nsecs","tl","tmh","colorNames","swizzle","reverseNames","cs","hexDouble","hexAlpha","i2","hwba","isArrayish","conversions","fromModel","toModel","wrappedFn","arg0","conversion","wrapRounded","wrapRaw","deriveBFS","graph","models","buildGraph","adjacents","adjacent","wrapConversion","BaseEventEmitter","_currentSubscription","removeCurrentListener","__emitToSubscription","EventSubscription","ReactPropTypesSecret","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","instanceOf","objectOf","yearStart","relativeTime","future","past","yy","ordinal","saveRecoveryProps","recoveredProps","_consumeRecoveryProps","_getRecoveredProps","setRecoveryProps","setRecoveryPropsToSave","responsiveQueryContext","windowWidth","queryString","queriesHash","dataAttribute","getDataAttribute","newIdentifier","mediaRules","oldIdentifier","oldRule","newRule","mediaQueryRule","Overlay","unmountOnExit","useKeyboardDismissable","styleObj","keyboardDismissHandlers","keyboardDismissHandlerManager","cleanupFn","backHandler","useBackHandler","clonedIcon","CloseIcon","fillRule","Factory","StyledComponent","calculatedProps","localTheme","tokenizedFontSize","StyledAs","as","isDev","SafeAreaInsetsContext","SafeAreaFrameContext","SafeAreaProvider","others","parentInsets","parentFrame","initialMetrics","nextInsets","nextFrame","setFrame","setInsets","NO_INSETS_ERROR","safeArea","CheckIcon","CheckCircleIcon","StyledImage","finalSource","getSource","setSource","onImageLoadError","fallbackSource","setfallbackSourceFlag","setAlternate","RNImage","StyledScrollView","resolved_ContentContainerStyle","_contentContainerStyle","valueProp","getDiagonalLength","Popper","PopperContent","usePopperContext","setOverlayRef","restElements","arrowElement","actualPlacement","arrowHeight","arrowWidth","getContainerStyle","overlayStyle","PopperArrow","additionalStyles","getArrowStyles","triangleStyle","arrowStyles","diagonalLength","StyledNBSwitch","useToggleState","isChecked","onToggle","align","justify","grow","basis","shrink","extendTheme","sourceValue","overrideValue","override","finalOverrides","overrides","isFocusable","combinedStyles","visuallyHiddenProps","selectedValues","addValue","removeValue","existingValue","toggleValue","indeterminate","groupProps","CheckboxGroupContext","useCheckboxGroupState","useCheckboxGroupWeb","useCheckboxGroup","CheckboxComponent","mergedWrapperRef","wrapperRef","CheckTemp","checkboxGroupContext","groupItemInputProps","useCheckboxGroupItem","useCheckbox","FontDisplay","getFontFaceStyleSheet","getFontFaceRulesMatchingResource","fontFamilyName","CSSFontFaceRule","getFontFaceRules","fontDisplay","unloadAllAsync","ID","HTMLStyleElement","unloadAsync","deleteRule","loadAsync","resource","_createWebStyle","isFontLoadingListenerSupported","styleElement","AUTO","styleElementIE","isSafari","isEdge","isIE","isFirefox","getAssetForSource","localUri","displayFromFontSource","throwInvalidSourceError","loadSingleFontAsync","downloadAsync","loadPromises","fontFamilyOrFontMap","fontMap","loadFontInNamespaceAsync","NativeIconAPI","RNVectorIconsManager","RNVectorIconsModule","ensureNativeModuleAvailable","TEXT_PROP_NAMES","TOUCHABLE_PROP_NAMES","createIconButtonComponent","iconStyle","iconProps","touchableProps","colorStyle","blockStyle","createIconSet","glyphMap","fontFile","fontBasename","fontReference","windows","glyph","fromCodePoint","styleDefaults","styleOverrides","allowFontScaling","imageSourceCache","createIconSourceCache","resolveGlyph","getImageSource","getImageForFont","getImageSourceSync","getImageForFontSync","loadFont","file","loadFontWithFileName","hasIcon","getRawGlyphMap","getFontFamily","fontName","expoAssetId","RNVIconComponent","fontIsLoaded","ActionSheetContext","hideDragIndicator","disableOverlay","spinnerPlacement","spinnerElement","spinner","boxChildren","isLoadingText","Content","sheetHeight","safeAreaBottom","handleCloseCallback","ActionsheetTemp","ChevronDownIcon","StyledFlatList","SelectContext","selectedValue","_selectedItem","selectProps","flatListData","tempFix","setIsOpen","selectedItemArray","itemsList","selectedItem","rightIcon","dropdownIcon","commonInput","aria-hidden","aria-readonly","aria-label","onOpen","SelectTemp","PopoverContext","popoverContentId","headerId","bodyId","setHeaderMounted","setBodyMounted","headerMounted","bodyMounted","handleOpen","arrowDefaultColor","finalFocusRefCurrentVal","restChildren","PopoverTemp","Popover","ITEM_ATTR","MenuContext","closeOnSelect","MenuContent","menuProps","useFocusManager","useMenu","typeaheadProps","searchKey","foundValue","newItem","useMenuTypeahead","menuRef","triggerProps","useMenuTrigger","menuItemRef","menuItem","setTextContent","menuItemProps","nativebaseMenuItem","textValue","useMenuItem","MenuOptionContext","internalDefaultValue","internalValues","menuOptionProps","useMenuOptionItem","MenuTemp","originalWarn","originalError","withExpoRoot","AppRootComponent","errorRecovery","attachRecoveredProps","registerRootComponent","FileSystemSessionType","FileSystemUploadType","EncodingType","normalizeEndingSlash","documentDirectory","cacheDirectory","bundledAssets","bundleDirectory","deleteAsync","fileUri","StorageAccessFramework","_uuid","taskWasCanceled","networkTaskCancelAsync","getEventName","getCallback","baseReadAsStringAsync","httpMethod","sessionType","BACKGROUND","uploadType","BINARY_CONTENT","uploadTaskStartAsync","isTaskCancelled","_fileUri","resumeData","downloadResumableStartAsync","downloadResumablePauseAsync","pauseResult","savable","readAsStringAsync","baseWriteAsStringAsync","writeAsStringAsync","baseDeleteAsync","baseMoveAsync","moveAsync","baseCopyAsync","copyAsync","getUriForDirectoryInRoot","folderName","requestDirectoryPermissionsAsync","initialFileUrl","readDirectoryAsync","dirUri","readSAFDirectoryAsync","makeDirectoryAsync","parentUri","dirName","makeSAFDirectoryAsync","createFileAsync","mimeType","createSAFFileAsync","computedChildren","isAttached","ButtonTemp","isTextColorAccessible","escapeKeyListener","lastHandler","defaultInitialWindowMetricsBasedOnPlatform","NativeBaseProvider","propsTheme","disableContrastText","getClosestBreakpoint","initialWindowMetrics","InitializeToastRef","getBackgroundColor","intensity","tint","blurStyle","getBlurStyle"],"mappings":"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","file":"static/js/2.b09dec08.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","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","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;","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;","import AnimatedNode from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { AnimatedParam } from './AnimatedParam';\nimport invariant from 'invariant';\n\nclass AnimatedStartClock extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n invariant(\n clockNode instanceof AnimatedClock || clockNode instanceof AnimatedParam,\n `Reanimated: Animated.startClock argument should be of type AnimatedClock but got ${clockNode}`\n );\n super({ type: 'clockStart', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedStartClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n this._clockNode.start();\n return 0;\n }\n}\n\nexport function createAnimatedStartClock(clock) {\n return new AnimatedStartClock(clock);\n}\n","import AnimatedNode from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { AnimatedParam } from './AnimatedParam';\nimport invariant from 'invariant';\n\nclass AnimatedStopClock extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n invariant(\n clockNode instanceof AnimatedClock || clockNode instanceof AnimatedParam,\n `Reanimated: Animated.stopClock argument should be of type AnimatedClock but got ${clockNode}`\n );\n super({ type: 'clockStop', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedStopClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n this._clockNode.stop();\n return 0;\n }\n}\n\nexport function createAnimatedStopClock(clock) {\n return new AnimatedStopClock(clock);\n}\n","import AnimatedNode from './AnimatedNode';\n\nclass AnimatedClockTest extends AnimatedNode {\n _clockNode;\n\n constructor(clockNode) {\n super({ type: 'clockTest', clock: clockNode });\n this._clockNode = clockNode;\n }\n\n toString() {\n return `AnimatedClockTest, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._clockNode.isStarted() ? 1 : 0;\n }\n}\n\nexport function createAnimatedClockTest(clock) {\n return new AnimatedClockTest(clock);\n}\n","import invariant from 'invariant';\nimport { NativeModules } from 'react-native';\nimport { val } from '../val';\nimport { adapt, createAnimatedBlock as block } from './AnimatedBlock';\nimport { createAnimatedCall as call } from './AnimatedCall';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedDebug extends AnimatedNode {\n _message;\n _value;\n\n constructor(message, value) {\n invariant(\n typeof message === 'string',\n `Reanimated: Animated.debug node first argument should be of type string but got ${message}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.debug node second argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'debug', message, value }, [value]);\n this._message = message;\n this._value = value;\n }\n\n toString() {\n return `AnimatedDebug, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const value = val(this._value);\n console.log(this._message, value);\n return value;\n }\n}\n\nexport function createAnimatedDebug(message, value) {\n if (__DEV__) {\n // hack to detect if app is running in remote debugger\n // https://stackoverflow.com/questions/39022216\n const runningInRemoteDebugger = typeof atob !== 'undefined';\n\n // read the executionEnvironment off of expo-constants without explicitly\n // depending on the package\n const runningInExpoShell =\n NativeModules.NativeUnimoduleProxy?.modulesConstants?.ExponentConstants\n ?.executionEnvironment === 'storeClient';\n\n if (runningInRemoteDebugger || runningInExpoShell) {\n // When running in expo or remote debugger we use JS console.log to output variables\n // otherwise we output to the native console using native debug node\n return block([\n call([value], ([a]) => console.log(`${message} ${a}`)),\n value,\n ]);\n } else {\n return new AnimatedDebug(message, adapt(value));\n }\n }\n // Debugging is disabled in PROD\n return value;\n}\n","import invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\nimport AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nclass AnimatedConcat extends AnimatedNode {\n constructor(input) {\n invariant(\n input.every(\n (el) =>\n el instanceof AnimatedNode ||\n typeof el === 'number' ||\n typeof el === 'string'\n ),\n `Reanimated: Animated.concat node arguments should be of type AnimatedNode or String or Number. One or more of them are not of that type. Node: ${input}`\n );\n super({ type: 'concat', input }, input);\n this._input = input;\n }\n\n __onEvaluate() {\n return this._input.reduce((prev, current) => prev + val(current), '');\n }\n\n toString() {\n return `AnimatedConcat, id: ${this.__nodeID}`;\n }\n}\n\nexport function createAnimatedConcat(...args) {\n return new AnimatedConcat(args.map(adapt));\n}\n","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;","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 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;","import React from 'react';\nimport { always, block } from '../base';\n\n/**\n * @callback NodeFactory\n * Function to create a node or an array of nodes.\n * @returns {(Node[] | Node | null | undefined | Boolean)}\n */\n\n/**\n * React hook to run a node.\n * @param {NodeFactory} nodeFactory Function to build the node to run.\n * @param dependencies Array of dependencies. Refresh the node on changes.\n */\nexport default function useCode(nodeFactory, dependencies) {\n if (!(React.useEffect instanceof Function)) return;\n\n React.useEffect(() => {\n // check and correct 1st parameter\n if (!(nodeFactory instanceof Function)) {\n console.warn(\n 'useCode() first argument should be a function that returns an animation node.'\n );\n\n const node = nodeFactory;\n nodeFactory = () => node;\n }\n\n let node = nodeFactory();\n if (node) {\n // allow factory to return array\n if (node instanceof Array) node = block(node);\n\n const animatedAlways = always(node);\n animatedAlways.__attach();\n\n // return undo function\n return () => animatedAlways.__detach();\n }\n }, dependencies);\n}\n","import useCode from '../derived/useCode';\nimport AnimatedNode from './AnimatedNode';\n\nfunction assertNodesNotNull(code, children, exec) {\n if (!code) {\n const error = !children\n ? `Got \"${typeof children}\" type passed to children`\n : `Got \"${typeof exec}\" type passed to exec`;\n\n throw new Error(\n ` expects the 'exec' prop or children to be an animated node or a function returning an animated node. ${error}`\n );\n }\n}\n\nfunction Code({ exec, children, dependencies }) {\n const nodes = children || exec;\n\n let code = null;\n if (nodes instanceof AnimatedNode) {\n code = () => nodes;\n } else if (typeof nodes === 'function') {\n code = nodes;\n }\n\n assertNodesNotNull(code, children, exec);\n\n useCode(code, dependencies);\n return null;\n}\n\nexport default Code;\n","import {\n cond,\n sub,\n pow,\n divide,\n multiply,\n add,\n block,\n set,\n lessThan,\n proc,\n abs,\n} from '../base';\n\nconst VELOCITY_EPS = 5;\n\nfunction decay(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n const deltaTime = sub(clock, lastTime);\n\n // v0 = v / 1000\n // v = v0 * powf(deceleration, dt);\n // v = v * 1000;\n\n // x0 = x;\n // x = x0 + v0 * deceleration * (1 - powf(deceleration, dt)) / (1 - deceleration)\n const kv = pow(config.deceleration, deltaTime);\n const kx = divide(\n multiply(config.deceleration, sub(1, kv)),\n sub(1, config.deceleration)\n );\n const v0 = divide(state.velocity, 1000);\n const v = multiply(v0, kv, 1000);\n const x = add(state.position, multiply(v0, kx));\n return block([\n set(state.position, x),\n set(state.velocity, v),\n set(state.time, clock),\n cond(lessThan(abs(v), VELOCITY_EPS), set(state.finished, 1)),\n ]);\n}\n\nconst procDecay = proc(\n (clock, time, velocity, position, finished, deceleration) =>\n decay(clock, { time, velocity, position, finished }, { deceleration })\n);\n\nexport default function decayAnimation(\n clock,\n { time, velocity, position, finished },\n { deceleration }\n) {\n return procDecay(clock, time, velocity, position, finished, deceleration);\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n block,\n set,\n greaterOrEq,\n proc,\n} from '../base';\n\nconst internalTiming = proc(function (\n clock,\n time,\n frameTime,\n position,\n finished,\n toValue,\n duration,\n nextProgress,\n progress,\n newFrameTime\n) {\n const state = {\n time,\n finished,\n frameTime,\n position,\n };\n\n const config = {\n duration,\n toValue,\n };\n\n const distanceLeft = sub(config.toValue, state.position);\n const fullDistance = divide(distanceLeft, sub(1, progress));\n const startPosition = sub(config.toValue, fullDistance);\n const nextPosition = add(startPosition, multiply(fullDistance, nextProgress));\n\n return block([\n cond(\n greaterOrEq(newFrameTime, config.duration),\n [set(state.position, config.toValue), set(state.finished, 1)],\n set(state.position, nextPosition)\n ),\n set(state.frameTime, newFrameTime),\n set(state.time, clock),\n ]);\n});\n\nexport default function timing(clock, state, config) {\n if (config.duration === 0) {\n // when duration is zero we end the timing immediately\n return block([set(state.position, config.toValue), set(state.finished, 1)]);\n }\n const lastTime = cond(state.time, state.time, clock);\n const newFrameTime = add(state.frameTime, sub(clock, lastTime));\n const nextProgress = config.easing(divide(newFrameTime, config.duration));\n const progress = config.easing(divide(state.frameTime, config.duration));\n return internalTiming(\n clock,\n state.time,\n state.frameTime,\n state.position,\n state.finished,\n config.toValue,\n config.duration,\n nextProgress,\n progress,\n newFrameTime\n );\n}\n","import {\n cond,\n sub,\n divide,\n multiply,\n sqrt,\n add,\n block,\n set,\n exp,\n sin,\n cos,\n eq,\n or,\n neq,\n and,\n lessThan,\n greaterThan,\n proc,\n min,\n abs,\n} from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst MAX_STEPS_MS = 64;\n\nfunction spring(clock, state, config) {\n const lastTime = cond(state.time, state.time, clock);\n\n const deltaTime = min(sub(clock, lastTime), MAX_STEPS_MS);\n\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n\n const v0 = multiply(-1, state.velocity);\n const x0 = sub(config.toValue, state.position);\n\n const zeta = divide(c, multiply(2, sqrt(multiply(k, m)))); // damping ratio\n const omega0 = sqrt(divide(k, m)); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = multiply(omega0, sqrt(sub(1, multiply(zeta, zeta)))); // exponential decay\n\n const t = divide(deltaTime, 1000); // in seconds\n\n const sin1 = sin(multiply(omega1, t));\n const cos1 = cos(multiply(omega1, t));\n\n // under damped\n const underDampedEnvelope = exp(multiply(-1, zeta, omega0, t));\n const underDampedFrag1 = multiply(\n underDampedEnvelope,\n add(\n multiply(sin1, divide(add(v0, multiply(zeta, omega0, x0)), omega1)),\n multiply(x0, cos1)\n )\n );\n const underDampedPosition = sub(config.toValue, underDampedFrag1);\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity = sub(\n multiply(zeta, omega0, underDampedFrag1),\n multiply(\n underDampedEnvelope,\n sub(\n multiply(cos1, add(v0, multiply(zeta, omega0, x0))),\n multiply(omega1, x0, sin1)\n )\n )\n );\n\n // critically damped\n const criticallyDampedEnvelope = exp(multiply(-1, omega0, t));\n const criticallyDampedPosition = sub(\n config.toValue,\n multiply(\n criticallyDampedEnvelope,\n add(x0, multiply(add(v0, multiply(omega0, x0)), t))\n )\n );\n const criticallyDampedVelocity = multiply(\n criticallyDampedEnvelope,\n add(\n multiply(v0, sub(multiply(t, omega0), 1)),\n multiply(t, x0, omega0, omega0)\n )\n );\n\n // conditions for stopping the spring animations\n const prevPosition = state.prevPosition\n ? state.prevPosition\n : new AnimatedValue(0);\n\n const isOvershooting = cond(\n and(config.overshootClamping, neq(config.stiffness, 0)),\n cond(\n lessThan(prevPosition, config.toValue),\n greaterThan(state.position, config.toValue),\n lessThan(state.position, config.toValue)\n )\n );\n const isVelocity = lessThan(abs(state.velocity), config.restSpeedThreshold);\n const isDisplacement = or(\n eq(config.stiffness, 0),\n lessThan(\n abs(sub(config.toValue, state.position)),\n config.restDisplacementThreshold\n )\n );\n\n return block([\n set(prevPosition, state.position),\n cond(\n lessThan(zeta, 1),\n [\n set(state.position, underDampedPosition),\n set(state.velocity, underDampedVelocity),\n ],\n [\n set(state.position, criticallyDampedPosition),\n set(state.velocity, criticallyDampedVelocity),\n ]\n ),\n set(state.time, clock),\n cond(or(isOvershooting, and(isVelocity, isDisplacement)), [\n cond(neq(config.stiffness, 0), [\n set(state.velocity, 0),\n set(state.position, config.toValue),\n ]),\n set(state.finished, 1),\n ]),\n ]);\n}\n\nconst procSpring = proc(\n (\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n ) =>\n spring(\n clock,\n {\n finished,\n velocity,\n position,\n time,\n prevPosition,\n },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n )\n);\n\nexport default function springAnimation(\n clock,\n { finished, velocity, position, time, prevPosition },\n {\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restDisplacementThreshold,\n restSpeedThreshold,\n }\n) {\n return procSpring(\n finished,\n velocity,\n position,\n time,\n prevPosition,\n toValue,\n damping,\n mass,\n stiffness,\n overshootClamping,\n restSpeedThreshold,\n restDisplacementThreshold,\n clock\n );\n}\n","import AnimatedValue from '../core/InternalAnimatedValue';\n\nclass Animation {\n static springDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static decayDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n velocity: new AnimatedValue(0),\n time: new AnimatedValue(0),\n };\n }\n\n static timingDefaultState() {\n return {\n position: new AnimatedValue(0),\n finished: new AnimatedValue(0),\n time: new AnimatedValue(0),\n frameTime: new AnimatedValue(0),\n };\n }\n}\n\nexport default Animation;\n","import React from 'react';\nimport { View, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../ReanimatedModule';\n\nconst TransitioningContext = React.createContext();\n\nfunction configFromProps(type, props) {\n const config = { type };\n if ('durationMs' in props) {\n config.durationMs = props.durationMs;\n }\n if ('interpolation' in props) {\n config.interpolation = props.interpolation;\n }\n if ('type' in props) {\n config.animation = props.type;\n }\n if ('delayMs' in props) {\n config.delayMs = props.delayMs;\n }\n if ('propagation' in props) {\n config.propagation = props.propagation;\n }\n return config;\n}\n\n/**\n * The below wrapper is used to support legacy context API with Context.Consumer\n * render prop. We need it as we want to access `context` from within\n * `componentDidMount` callback. If we decided to drop support for older\n * react native we could rewrite it using hooks or `static contextType` API.\n */\nfunction wrapTransitioningContext(Comp) {\n return (props) => {\n return (\n \n {(context) => }\n \n );\n };\n}\n\nclass In extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('in', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Change extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('change', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Out extends React.Component {\n componentDidMount() {\n this.props.context.push(configFromProps('out', this.props));\n }\n\n render() {\n return this.props.children || null;\n }\n}\n\nclass Together extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nclass Sequence extends React.Component {\n transitions = [];\n componentDidMount() {\n const config = configFromProps('group', this.props);\n config.sequence = true;\n config.transitions = this.transitions;\n this.props.context.push(config);\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nfunction createTransitioningComponent(Component) {\n class Wrapped extends React.Component {\n propTypes = Component.propTypes;\n transitions = [];\n viewRef = React.createRef();\n\n componentDidMount() {\n if (this.props.animateMount) {\n this.animateNextTransition();\n }\n }\n\n setNativeProps(props) {\n this.viewRef.current.setNativeProps(props);\n }\n\n animateNextTransition() {\n const viewTag = findNodeHandle(this.viewRef.current);\n ReanimatedModule.animateNextTransition(viewTag, {\n transitions: this.transitions,\n });\n }\n\n render() {\n const { transition, ...rest } = this.props;\n return (\n \n \n {transition}\n \n \n \n );\n }\n }\n return Wrapped;\n}\n\nconst Transitioning = {\n View: createTransitioningComponent(View),\n};\n\nconst Transition = {\n Sequence: wrapTransitioningContext(Sequence),\n Together: wrapTransitioningContext(Together),\n In: wrapTransitioningContext(In),\n Out: wrapTransitioningContext(Out),\n Change: wrapTransitioningContext(Change),\n};\n\nexport { Transitioning, Transition, createTransitioningComponent };\n","import {\n cond,\n sub,\n divide,\n multiply,\n add,\n pow,\n lessOrEq,\n and,\n greaterThan,\n} from './../base';\nimport AnimatedValue from './../core/InternalAnimatedValue';\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 stiffnessFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 30), 3.62), 194);\n}\n\nfunction dampingFromOrigamiNode(oValue) {\n return add(multiply(sub(oValue, 8), 3), 25);\n}\n\nfunction makeConfigFromOrigamiTensionAndFriction(prevConfig) {\n const { tension, friction, ...rest } = prevConfig;\n return {\n ...rest,\n stiffness:\n typeof tension === 'number'\n ? stiffnessFromOrigamiValue(tension)\n : stiffnessFromOrigamiNode(tension),\n damping:\n typeof friction === 'number'\n ? dampingFromOrigamiValue(friction)\n : dampingFromOrigamiNode(friction),\n };\n}\n\nfunction makeConfigFromBouncinessAndSpeed(prevConfig) {\n const { bounciness, speed, ...rest } = prevConfig;\n if (typeof bounciness === 'number' && typeof speed === 'number') {\n return fromBouncinessAndSpeedNumbers(bounciness, speed, rest);\n }\n return fromBouncinessAndSpeedNodes(bounciness, speed, rest);\n}\n\nfunction fromBouncinessAndSpeedNodes(bounciness, speed, rest) {\n function normalize(value, startValue, endValue) {\n return divide(sub(value, startValue), sub(endValue, startValue));\n }\n\n function projectNormal(n, start, end) {\n return add(start, multiply(n, sub(end, start)));\n }\n\n function linearInterpolation(t, start, end) {\n return add(multiply(t, end), multiply(sub(1, t), start));\n }\n\n function quadraticOutInterpolation(t, start, end) {\n return linearInterpolation(sub(multiply(2, t), multiply(t, t)), start, end);\n }\n\n function b3Friction1(x) {\n return add(\n sub(multiply(0.0007, pow(x, 3)), multiply(0.031, pow(x, 2))),\n multiply(0.64, x),\n 1.28\n );\n }\n\n function b3Friction2(x) {\n return add(\n sub(multiply(0.000044, pow(x, 3)), multiply(0.006, pow(x, 2))),\n multiply(0.36, x),\n 2\n );\n }\n\n function b3Friction3(x) {\n return add(\n sub(multiply(0.00000045, pow(x, 3)), multiply(0.000332, pow(x, 2))),\n multiply(0.1078, x),\n 5.84\n );\n }\n\n function b3Nobounce(tension) {\n return cond(\n lessOrEq(tension, 18),\n b3Friction1(tension),\n cond(\n and(greaterThan(tension, 18), lessOrEq(tension, 44)),\n b3Friction2(tension),\n b3Friction3(tension)\n )\n );\n }\n\n let b = normalize(divide(bounciness, 1.7), 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(divide(speed, 1.7), 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiNode(bouncyTension),\n damping: dampingFromOrigamiNode(bouncyFriction),\n };\n}\n\nfunction fromBouncinessAndSpeedNumbers(bounciness, speed, rest) {\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 (\n 0.00000045 * Math.pow(x, 3) -\n 0.000332 * Math.pow(x, 2) +\n 0.1078 * x +\n 5.84\n );\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 let b = normalize(bounciness / 1.7, 0, 20);\n b = projectNormal(b, 0, 0.8);\n const s = normalize(speed / 1.7, 0, 20);\n const bouncyTension = projectNormal(s, 0.5, 200);\n const bouncyFriction = quadraticOutInterpolation(\n b,\n b3Nobounce(bouncyTension),\n 0.01\n );\n\n return {\n ...rest,\n stiffness: stiffnessFromOrigamiValue(bouncyTension),\n damping: dampingFromOrigamiValue(bouncyFriction),\n };\n}\n\nfunction makeDefaultConfig() {\n return {\n stiffness: new AnimatedValue(100),\n mass: new AnimatedValue(1),\n damping: new AnimatedValue(10),\n overshootClamping: false,\n restSpeedThreshold: 0.001,\n restDisplacementThreshold: 0.001,\n toValue: new AnimatedValue(0),\n };\n}\n\nexport default {\n makeDefaultConfig,\n makeConfigFromBouncinessAndSpeed,\n makeConfigFromOrigamiTensionAndFriction,\n};\n","import React from 'react';\nimport AnimatedValue from './core/AnimatedValue';\n\nexport default function useValue(initialValue) {\n const ref = React.useRef(null);\n if (ref.current === null) {\n ref.current = new AnimatedValue(initialValue);\n }\n return ref.current;\n}\n","import {\n always,\n block,\n call,\n clockRunning,\n cond,\n set,\n startClock,\n stopClock,\n} from '../base';\nimport Clock from '../core/AnimatedClock';\nimport { evaluateOnce } from '../derived/evaluateOnce';\n\nfunction createOldAnimationObject(node, animationStateDefaults, value, config) {\n const newClock = new Clock();\n const currentState = animationStateDefaults();\n let alwaysNode;\n let isStarted = false;\n let isDone = false;\n let wasStopped = false;\n let animationCallback;\n const animation = {\n start: (currentAnimationCallback) => {\n animationCallback = currentAnimationCallback;\n if (isStarted) {\n animationCallback && animationCallback({ finished: false });\n return;\n }\n if (isDone) {\n console.warn('Animation has been finished before');\n // inconsistent with React Native\n return;\n }\n\n if (!value.isNativelyInitialized()) {\n return;\n }\n\n isStarted = true;\n evaluateOnce(\n set(currentState.position, value),\n currentState.position,\n () => {\n alwaysNode = always(\n set(\n value,\n block([\n cond(clockRunning(newClock), 0, startClock(newClock)),\n node(newClock, currentState, config),\n cond(currentState.finished, [\n call([], () => {\n isStarted = false;\n if (!wasStopped) {\n isDone = true;\n }\n value.__detachAnimation(animation);\n isDone = true;\n if (!wasStopped) {\n wasStopped = false;\n }\n }),\n stopClock(newClock),\n ]),\n currentState.position,\n ])\n )\n );\n value.__attachAnimation(animation);\n alwaysNode.__addChild(value);\n }\n );\n },\n __detach: () => {\n animationCallback && animationCallback({ finished: isDone });\n animationCallback = null;\n value.__initialized && alwaysNode.__removeChild(value);\n },\n stop: () => {\n if (isDone) {\n console.warn(\n 'Calling stop has no effect as the animation has already completed'\n );\n return;\n }\n if (!isStarted) {\n console.warn(\n \"Calling stop has no effect as the animation hasn't been started\"\n );\n return;\n }\n wasStopped = true;\n evaluateOnce(set(currentState.finished, 1), currentState.finished);\n },\n __stopImmediately_testOnly: (result) => {\n animation.stop();\n isDone = result;\n value.__detachAnimation(animation);\n },\n };\n return animation;\n}\n\n/**\n * Depending on the arguments list we either return animation node or return an\n * animation object that is compatible with the original Animated API\n */\nexport default function backwardsCompatibleAnimWrapper(\n node,\n animationStateDefaults\n) {\n return (clock, state, config) => {\n if (config !== undefined) {\n return node(clock, state, config);\n }\n return createOldAnimationObject(node, animationStateDefaults, clock, state);\n };\n}\n","import { set, add, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procAcc = proc(function (v, acc) {\n return set(acc, add(acc, v));\n});\n\nexport default function acc(v) {\n const acc = new AnimatedValue(0);\n return procAcc(v, acc);\n}\n","import { Platform } from 'react-native';\n\nimport {\n add,\n cond,\n concat,\n lessThan,\n multiply,\n round,\n sub,\n proc,\n} from '../base';\nimport AnimatedNode from '../core/AnimatedNode';\n\nconst procColor = proc(function (r, g, b, a) {\n const color = add(\n multiply(a, 1 << 24),\n multiply(round(r), 1 << 16),\n multiply(round(g), 1 << 8),\n round(b)\n );\n\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return cond(\n lessThan(color, (1 << 31) >>> 0),\n color,\n sub(color, Math.pow(2, 32))\n );\n }\n return color;\n});\n\nexport default function color(r, g, b, a = 1) {\n if (Platform.OS === 'web') {\n // doesn't support bit shifting\n return concat('rgba(', r, ',', g, ',', b, ',', a, ')');\n }\n\n if (a instanceof AnimatedNode) {\n a = round(multiply(a, 255));\n } else {\n a = Math.round(a * 255);\n }\n\n return procColor(r, g, b, a);\n}\n","import { cond, block, defined, sub, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procDiff = proc(function (v, stash, prev) {\n return block([\n set(stash, cond(defined(prev), sub(v, prev), 0)),\n set(prev, v),\n stash,\n ]);\n});\n\nexport default function diff(v) {\n const stash = new AnimatedValue(0);\n const prev = new AnimatedValue();\n return procDiff(v, stash, prev);\n}\n","import { cond, defined, set, add, min, max } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\nimport diff from './diff';\n\nexport default function diffClamp(a, minVal, maxVal) {\n const value = new AnimatedValue();\n return set(\n value,\n min(max(add(cond(defined(value), value, a), diff(a)), minVal), maxVal)\n );\n}\n","import { processColor } from 'react-native';\nimport { round } from '../base';\nimport color from './color';\nimport interpolate, { Extrapolate } from './interpolate';\n\nfunction red(c) {\n return (c >> 16) & 255;\n}\nfunction green(c) {\n return (c >> 8) & 255;\n}\nfunction blue(c) {\n return c & 255;\n}\nfunction opacity(c) {\n return ((c >> 24) & 255) / 255;\n}\n\n/**\n * Use this if you want to interpolate an `Animated.Value` into color values.\n *\n * #### Why is this needed?\n *\n * Unfortunately, if you'll pass color values directly into the `outputRange` option\n * of `interpolate()` function, that won't really work (at least at the moment).\n * See https://github.com/software-mansion/react-native-reanimated/issues/181 .\n *\n * So, for now you can just use this helper instead.\n */\nexport default function interpolateColors(animationValue, options) {\n const { inputRange, outputColorRange } = options;\n const colors = outputColorRange.map(processColor);\n\n const r = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(red),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const g = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(green),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const b = round(\n interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(blue),\n extrapolate: Extrapolate.CLAMP,\n })\n );\n const a = interpolate(animationValue, {\n inputRange,\n outputRange: colors.map(opacity),\n extrapolate: Extrapolate.CLAMP,\n });\n\n return color(r, g, b, a);\n}\n","import { block, cond, defined, neq, not, set, proc } from '../base';\nimport AnimatedValue from '../core/InternalAnimatedValue';\n\nconst procOnChange = proc(function (value, action, prevValue) {\n return block([\n cond(not(defined(prevValue)), set(prevValue, value)),\n cond(neq(value, prevValue), [set(prevValue, value), action]),\n ]);\n});\n\nexport default function onChange(value, action) {\n const prevValue = new AnimatedValue();\n return procOnChange(value, action, prevValue);\n}\n","import EasingNode from './Easing';\nimport AnimatedClock from './core/AnimatedClock';\nimport AnimatedValue from './core/AnimatedValue';\nimport AnimatedNode from './core/AnimatedNode';\nimport AnimatedCode from './core/AnimatedCode';\nimport decay from './animations/decay';\nimport timing from './animations/timing';\nimport spring from './animations/spring';\nimport Animation from './animations/Animation';\nimport {\n Transition,\n Transitioning,\n createTransitioningComponent,\n} from './Transitioning';\nimport SpringUtils from './animations/SpringUtils';\nimport useValue from './useValue';\nimport backwardCompatibleAnimWrapper from './animations/backwardCompatibleAnimWrapper';\n\nconst decayWrapper = backwardCompatibleAnimWrapper(\n decay,\n Animation.decayDefaultState\n);\nconst timingWrapper = backwardCompatibleAnimWrapper(\n timing,\n Animation.timingDefaultState\n);\nconst springWrapper = backwardCompatibleAnimWrapper(\n spring,\n Animation.springDefaultState\n);\n\n// operations\nexport * from './base';\nexport * from './derived';\nexport {\n AnimatedCode as Code,\n // transitions\n EasingNode,\n Transitioning,\n Transition,\n createTransitioningComponent,\n // nodes\n AnimatedClock as Clock,\n AnimatedValue as Value,\n AnimatedNode as Node,\n // animations\n decayWrapper as decay,\n timingWrapper as timing,\n springWrapper as spring,\n SpringUtils,\n // hooks\n useValue,\n};\n","import { Image, ScrollView, Text, View } from 'react-native';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst WrappedComponents = {\n View: createAnimatedComponent(View),\n Text: createAnimatedComponent(Text),\n Image: createAnimatedComponent(Image),\n ScrollView: createAnimatedComponent(ScrollView),\n};\nexport default WrappedComponents;\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nimport { FlatList } from 'react-native';\nimport WrappedComponents from './WrappedComponents';\nimport createAnimatedComponent from '../../createAnimatedComponent';\nconst AnimatedFlatList = createAnimatedComponent(FlatList);\nconst createCellRenderer = (itemLayoutAnimation) => {\n const cellRenderer = (props) => {\n return (\n {props.children}\n );\n };\n return cellRenderer;\n};\nconst ReanimatedFlatlist = (_a) => {\n var { itemLayoutAnimation } = _a, restProps = __rest(_a, [\"itemLayoutAnimation\"]);\n const cellRenderer = React.useMemo(() => createCellRenderer(itemLayoutAnimation), []);\n return ();\n};\nexport default ReanimatedFlatlist;\n","import ReanimatedFlatlist from './FlatList';\nimport WrappedComponents from './WrappedComponents';\nconst ReanimatedComponents = Object.assign(Object.assign({}, WrappedComponents), { FlatList: ReanimatedFlatlist });\nexport default ReanimatedComponents;\n","import { useCallback } from 'react';\nimport { useAnimatedStyle } from './useAnimatedStyle';\n// TODO: we should make sure that when useAP is used we are not assigning styles\n// when you need styles to animated you should always use useAS\nexport const useAnimatedProps = useAnimatedStyle;\nexport function useWorkletCallback(fun, deps) {\n return useCallback(fun, deps !== null && deps !== void 0 ? deps : []);\n}\nexport { useEvent, useHandler } from './utils';\n","import { useEvent, useHandler } from './Hooks';\nexport var EventType;\n(function (EventType) {\n EventType[EventType[\"UNDETERMINED\"] = 0] = \"UNDETERMINED\";\n EventType[EventType[\"FAILED\"] = 1] = \"FAILED\";\n EventType[EventType[\"BEGAN\"] = 2] = \"BEGAN\";\n EventType[EventType[\"CANCELLED\"] = 3] = \"CANCELLED\";\n EventType[EventType[\"ACTIVE\"] = 4] = \"ACTIVE\";\n EventType[EventType[\"END\"] = 5] = \"END\";\n})(EventType || (EventType = {}));\nexport function useAnimatedGestureHandler(handlers, dependencies) {\n const { context, doDependenciesDiffer, useWeb } = useHandler(handlers, dependencies);\n const handler = (e) => {\n 'worklet';\n const event = useWeb ? e.nativeEvent : e;\n if (event.state === EventType.BEGAN && handlers.onStart) {\n handlers.onStart(event, context);\n }\n if (event.state === EventType.ACTIVE && handlers.onActive) {\n handlers.onActive(event, context);\n }\n if (event.oldState === EventType.ACTIVE &&\n event.state === EventType.END &&\n handlers.onEnd) {\n handlers.onEnd(event, context);\n }\n if (event.oldState === EventType.BEGAN &&\n event.state === EventType.FAILED &&\n handlers.onFail) {\n handlers.onFail(event, context);\n }\n if (event.oldState === EventType.ACTIVE &&\n event.state === EventType.CANCELLED &&\n handlers.onCancel) {\n handlers.onCancel(event, context);\n }\n if ((event.oldState === EventType.BEGAN ||\n event.oldState === EventType.ACTIVE) &&\n event.state !== EventType.BEGAN &&\n event.state !== EventType.ACTIVE &&\n handlers.onFinish) {\n handlers.onFinish(event, context, event.state === EventType.CANCELLED || event.state === EventType.FAILED);\n }\n };\n if (useWeb) {\n return handler;\n }\n return useEvent(handler, ['onGestureHandlerStateChange', 'onGestureHandlerEvent'], doDependenciesDiffer);\n}\n","import { useEffect } from 'react';\nimport { startMapper, stopMapper } from '../core';\nimport { useSharedValue } from './useSharedValue';\n/**\n * @param prepare - worklet used for data preparation for the second parameter\n * @param react - worklet which takes data prepared by the one in the first parameter and performs certain actions\n * the first worklet defines the inputs, in other words on which shared values change will it be called.\n * the second one can modify any shared values but those which are mentioned in the first worklet. Beware of that, because this may result in endless loop and high cpu usage.\n */\nexport function useAnimatedReaction(prepare, react, dependencies) {\n var _a, _b;\n const previous = useSharedValue(null);\n if (dependencies === undefined) {\n dependencies = [\n Object.values((_a = prepare._closure) !== null && _a !== void 0 ? _a : {}),\n Object.values((_b = react._closure) !== null && _b !== void 0 ? _b : {}),\n prepare.__workletHash,\n react.__workletHash,\n ];\n }\n else {\n dependencies.push(prepare.__workletHash, react.__workletHash);\n }\n useEffect(() => {\n var _a;\n const fun = () => {\n 'worklet';\n const input = prepare();\n react(input, previous.value);\n previous.value = input;\n };\n const mapperId = startMapper(fun, Object.values((_a = prepare._closure) !== null && _a !== void 0 ? _a : {}), []);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n}\n","import { findNodeHandle } from 'react-native';\nimport { shouldBeUseWeb } from './PlatformChecker';\nexport function getTag(view) {\n return findNodeHandle(view);\n}\nconst isNativeIndefined = shouldBeUseWeb();\nexport function measure(animatedRef) {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n console.warn('[reanimated.measure] method cannot be used for web or Chrome Debugger');\n return {\n x: NaN,\n y: NaN,\n width: NaN,\n height: NaN,\n pageX: NaN,\n pageY: NaN,\n };\n }\n const viewTag = animatedRef();\n const result = _measure(viewTag);\n if (result.x === -1234567) {\n throw new Error(`The view with tag ${viewTag} could not be measured`);\n }\n return result;\n}\nexport function scrollTo(animatedRef, x, y, animated) {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n return;\n }\n const viewTag = animatedRef();\n _scrollTo(viewTag, x, y, animated);\n}\nexport function setGestureState(handlerTag, newState) {\n 'worklet';\n if (!_WORKLET || isNativeIndefined) {\n console.warn('[Reanimated] You can not use setGestureState in non-worklet function.');\n return;\n }\n _setGestureState(handlerTag, newState);\n}\n","import { useRef } from 'react';\nimport { getTag } from '../NativeMethods';\nimport { useSharedValue } from './useSharedValue';\nexport function useAnimatedRef() {\n const tag = useSharedValue(-1);\n const ref = useRef();\n if (!ref.current) {\n const fun = ((component) => {\n 'worklet';\n // enters when ref is set by attaching to a component\n if (component) {\n tag.value = getTag(component);\n fun.current = component;\n }\n return tag.value;\n });\n Object.defineProperty(fun, 'current', {\n value: null,\n writable: true,\n enumerable: false,\n });\n ref.current = fun;\n }\n return ref.current;\n}\n","import { useEvent, useHandler } from './Hooks';\nexport function useAnimatedScrollHandler(handlers, dependencies) {\n // case when handlers is a function\n const scrollHandlers = typeof handlers === 'function' ? { onScroll: handlers } : handlers;\n const { context, doDependenciesDiffer } = useHandler(scrollHandlers, dependencies);\n // build event subscription array\n const subscribeForEvents = ['onScroll'];\n if (scrollHandlers.onBeginDrag !== undefined) {\n subscribeForEvents.push('onScrollBeginDrag');\n }\n if (scrollHandlers.onEndDrag !== undefined) {\n subscribeForEvents.push('onScrollEndDrag');\n }\n if (scrollHandlers.onMomentumBegin !== undefined) {\n subscribeForEvents.push('onMomentumScrollBegin');\n }\n if (scrollHandlers.onMomentumEnd !== undefined) {\n subscribeForEvents.push('onMomentumScrollEnd');\n }\n return useEvent((event) => {\n 'worklet';\n const { onScroll, onBeginDrag, onEndDrag, onMomentumBegin, onMomentumEnd, } = scrollHandlers;\n if (onScroll && event.eventName.endsWith('onScroll')) {\n onScroll(event, context);\n }\n else if (onBeginDrag && event.eventName.endsWith('onScrollBeginDrag')) {\n onBeginDrag(event, context);\n }\n else if (onEndDrag && event.eventName.endsWith('onScrollEndDrag')) {\n onEndDrag(event, context);\n }\n else if (onMomentumBegin &&\n event.eventName.endsWith('onMomentumScrollBegin')) {\n onMomentumBegin(event, context);\n }\n else if (onMomentumEnd &&\n event.eventName.endsWith('onMomentumScrollEnd')) {\n onMomentumEnd(event, context);\n }\n }, subscribeForEvents, doDependenciesDiffer);\n}\n","import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nexport function useDerivedValue(processor, dependencies) {\n var _a;\n const initRef = useRef(null);\n const inputs = Object.values((_a = processor._closure) !== null && _a !== void 0 ? _a : {});\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n }\n else {\n dependencies.push(processor.__workletHash);\n }\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue = initRef.current;\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n return sharedValue;\n}\n","import { useEffect, useRef } from 'react';\nimport { makeMutable } from '../core';\nimport NativeReanimated from '../NativeReanimated';\nexport var SensorType;\n(function (SensorType) {\n SensorType[SensorType[\"ACCELEROMETER\"] = 1] = \"ACCELEROMETER\";\n SensorType[SensorType[\"GYROSCOPE\"] = 2] = \"GYROSCOPE\";\n SensorType[SensorType[\"GRAVITY\"] = 3] = \"GRAVITY\";\n SensorType[SensorType[\"MAGNETIC_FIELD\"] = 4] = \"MAGNETIC_FIELD\";\n SensorType[SensorType[\"ROTATION\"] = 5] = \"ROTATION\";\n})(SensorType || (SensorType = {}));\nexport function useAnimatedSensor(sensorType, userConfig) {\n const ref = useRef({\n sensor: null,\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n },\n });\n if (ref.current.sensor === null) {\n ref.current.config = Object.assign({ interval: 10 }, userConfig);\n let sensorData;\n if (sensorType === SensorType.ROTATION) {\n sensorData = {\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n };\n }\n else {\n sensorData = {\n x: 0,\n y: 0,\n z: 0,\n };\n }\n ref.current.sensor = makeMutable(sensorData);\n }\n useEffect(() => {\n ref.current.config = Object.assign({ interval: 10 }, userConfig);\n const id = NativeReanimated.registerSensor(sensorType, ref.current.config.interval, ref.current.sensor);\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => NativeReanimated.unregisterSensor(id);\n ref.current.isAvailable = true;\n }\n else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n return ref.current;\n}\n","// @ts-ignore JS file\nimport interpolateNode from '../reanimated1/derived/interpolate';\nexport var Extrapolation;\n(function (Extrapolation) {\n Extrapolation[\"IDENTITY\"] = \"identity\";\n Extrapolation[\"CLAMP\"] = \"clamp\";\n Extrapolation[\"EXTEND\"] = \"extend\";\n})(Extrapolation || (Extrapolation = {}));\nfunction isNode(x) {\n 'worklet';\n return x.__nodeId !== undefined;\n}\nfunction getVal(type, coef, val, leftEdgeOutput, rightEdgeOutput, x) {\n 'worklet';\n switch (type) {\n case Extrapolation.IDENTITY:\n return x;\n case Extrapolation.CLAMP:\n if (coef * val < coef * leftEdgeOutput) {\n return leftEdgeOutput;\n }\n return rightEdgeOutput;\n case Extrapolation.EXTEND:\n default:\n return val;\n }\n}\nfunction isExtrapolate(value) {\n 'worklet';\n return (value === Extrapolation.EXTEND ||\n value === Extrapolation.CLAMP ||\n value === Extrapolation.IDENTITY);\n}\n// validates extrapolations type\n// if type is correct, converts it to ExtrapolationConfig\nfunction validateType(type) {\n 'worklet';\n // initialize extrapolationConfig with default extrapolation\n const extrapolationConfig = {\n extrapolateLeft: Extrapolation.EXTEND,\n extrapolateRight: Extrapolation.EXTEND,\n };\n if (!type) {\n return extrapolationConfig;\n }\n if (typeof type === 'string') {\n if (!isExtrapolate(type)) {\n throw new Error(`Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], \"clamp\")`);\n }\n extrapolationConfig.extrapolateLeft = type;\n extrapolationConfig.extrapolateRight = type;\n return extrapolationConfig;\n }\n // otherwise type is extrapolation config object\n if ((type.extrapolateLeft && !isExtrapolate(type.extrapolateLeft)) ||\n (type.extrapolateRight && !isExtrapolate(type.extrapolateRight))) {\n throw new Error(`Reanimated: not supported value for \"interpolate\" \\nSupported values: [\"extend\", \"clamp\", \"identity\", Extrapolatation.CLAMP, Extrapolatation.EXTEND, Extrapolatation.IDENTITY]\\n Valid example:\n interpolate(value, [inputRange], [outputRange], {\n extrapolateLeft: Extrapolation.CLAMP,\n extrapolateRight: Extrapolation.IDENTITY\n }})`);\n }\n Object.assign(extrapolationConfig, type);\n return extrapolationConfig;\n}\nfunction internalInterpolate(x, narrowedInput, extrapolationConfig) {\n 'worklet';\n const { leftEdgeInput, rightEdgeInput, leftEdgeOutput, rightEdgeOutput } = narrowedInput;\n if (rightEdgeInput - leftEdgeInput === 0)\n return leftEdgeOutput;\n const progress = (x - leftEdgeInput) / (rightEdgeInput - leftEdgeInput);\n const val = leftEdgeOutput + progress * (rightEdgeOutput - leftEdgeOutput);\n const coef = rightEdgeOutput >= leftEdgeOutput ? 1 : -1;\n if (coef * val < coef * leftEdgeOutput) {\n return getVal(extrapolationConfig.extrapolateLeft, coef, val, leftEdgeOutput, rightEdgeOutput, x);\n }\n else if (coef * val > coef * rightEdgeOutput) {\n return getVal(extrapolationConfig.extrapolateRight, coef, val, leftEdgeOutput, rightEdgeOutput, x);\n }\n return val;\n}\n// TODO: support default values in worklets:\n// e.g. function interpolate(x, input, output, type = Extrapolatation.CLAMP)\nexport function interpolate(x, input, output, type) {\n 'worklet';\n if (input.length < 2 || output.length < 2) {\n throw Error('Interpolation input and output should contain at least two values.');\n }\n const extrapolationConfig = validateType(type);\n if (isNode(x)) {\n console.warn(`interpolate() was renamed to interpolateNode() in Reanimated 2. Please use interpolateNode() instead`);\n return interpolateNode(x, {\n inputRange: input,\n outputRange: output,\n extrapolateLeft: extrapolationConfig.extrapolateLeft,\n extrapolateRight: extrapolationConfig.extrapolateRight,\n });\n }\n const length = input.length;\n const narrowedInput = {\n leftEdgeInput: input[0],\n rightEdgeInput: input[1],\n leftEdgeOutput: output[0],\n rightEdgeOutput: output[1],\n };\n if (length > 2) {\n if (x > input[length - 1]) {\n narrowedInput.leftEdgeInput = input[length - 2];\n narrowedInput.rightEdgeInput = input[length - 1];\n narrowedInput.leftEdgeOutput = output[length - 2];\n narrowedInput.rightEdgeOutput = output[length - 1];\n }\n else {\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput.leftEdgeInput = input[i - 1];\n narrowedInput.rightEdgeInput = input[i];\n narrowedInput.leftEdgeOutput = output[i - 1];\n narrowedInput.rightEdgeOutput = output[i];\n break;\n }\n }\n }\n }\n return internalInterpolate(x, narrowedInput, extrapolationConfig);\n}\n","import { hsvToColor, RGBtoHSV, rgbaColor, processColor, red, green, blue, opacity, } from './Colors';\nimport { makeMutable } from './core';\nimport { interpolate } from './interpolation';\n// @ts-ignore JS file\nimport { Extrapolate } from '../reanimated1/derived';\nimport { useSharedValue } from './hook/useSharedValue';\nconst interpolateColorsHSV = (value, inputRange, colors) => {\n 'worklet';\n const h = interpolate(value, inputRange, colors.h, Extrapolate.CLAMP);\n const s = interpolate(value, inputRange, colors.s, Extrapolate.CLAMP);\n const v = interpolate(value, inputRange, colors.v, Extrapolate.CLAMP);\n return hsvToColor(h, s, v);\n};\nconst interpolateColorsRGB = (value, inputRange, colors) => {\n 'worklet';\n const r = interpolate(value, inputRange, colors.r, Extrapolate.CLAMP);\n const g = interpolate(value, inputRange, colors.g, Extrapolate.CLAMP);\n const b = interpolate(value, inputRange, colors.b, Extrapolate.CLAMP);\n const a = interpolate(value, inputRange, colors.a, Extrapolate.CLAMP);\n return rgbaColor(r, g, b, a);\n};\nconst getInterpolateRGB = (colors) => {\n 'worklet';\n const r = [];\n const g = [];\n const b = [];\n const a = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = processColor(color);\n // explicit check in case if processedColor is 0\n if (processedColor !== null && processedColor !== undefined) {\n r.push(red(processedColor));\n g.push(green(processedColor));\n b.push(blue(processedColor));\n a.push(opacity(processedColor));\n }\n }\n return { r, g, b, a };\n};\nconst getInterpolateHSV = (colors) => {\n 'worklet';\n const h = [];\n const s = [];\n const v = [];\n for (let i = 0; i < colors.length; ++i) {\n const color = colors[i];\n const processedColor = RGBtoHSV(processColor(color));\n if (processedColor) {\n h.push(processedColor.h);\n s.push(processedColor.s);\n v.push(processedColor.v);\n }\n }\n return { h, s, v };\n};\nexport const interpolateColor = (value, inputRange, outputRange, colorSpace = 'RGB') => {\n 'worklet';\n if (colorSpace === 'HSV') {\n return interpolateColorsHSV(value, inputRange, getInterpolateHSV(outputRange));\n }\n else if (colorSpace === 'RGB') {\n return interpolateColorsRGB(value, inputRange, getInterpolateRGB(outputRange));\n }\n throw new Error(`Invalid color space provided: ${colorSpace}. Supported values are: ['RGB', 'HSV']`);\n};\nexport var ColorSpace;\n(function (ColorSpace) {\n ColorSpace[ColorSpace[\"RGB\"] = 0] = \"RGB\";\n ColorSpace[ColorSpace[\"HSV\"] = 1] = \"HSV\";\n})(ColorSpace || (ColorSpace = {}));\nexport function useInterpolateConfig(inputRange, outputRange, colorSpace = ColorSpace.RGB) {\n return useSharedValue({\n inputRange,\n outputRange,\n colorSpace,\n cache: makeMutable(null),\n });\n}\nexport const interpolateSharableColor = (value, interpolateConfig) => {\n 'worklet';\n let colors = interpolateConfig.value.cache.value;\n if (interpolateConfig.value.colorSpace === ColorSpace.RGB) {\n if (!colors) {\n colors = getInterpolateRGB(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsRGB(value, interpolateConfig.value.inputRange, colors);\n }\n else if (interpolateConfig.value.colorSpace === ColorSpace.HSV) {\n if (!colors) {\n colors = getInterpolateHSV(interpolateConfig.value.outputRange);\n interpolateConfig.value.cache.value = colors;\n }\n return interpolateColorsHSV(value, interpolateConfig.value.inputRange, colors);\n }\n throw new Error(`Invalid color space provided: ${interpolateConfig.value.colorSpace}. Supported values are: ['RGB', 'HSV']`);\n};\n","import { addWhitelistedNativeProps } from '../ConfigHelper';\nexport function createAnimatedPropAdapter(adapter, nativeProps) {\n const nativePropsToAdd = {};\n // eslint-disable-next-line no-unused-expressions\n nativeProps === null || nativeProps === void 0 ? void 0 : nativeProps.forEach((prop) => {\n nativePropsToAdd[prop] = true;\n });\n addWhitelistedNativeProps(nativePropsToAdd);\n return adapter;\n}\n// ADAPTERS\nexport const SVGAdapter = createAnimatedPropAdapter((props) => {\n 'worklet';\n var _a, _b;\n const keys = Object.keys(props);\n // transform\n if (keys.includes('transform')) {\n if (Array.isArray(props.transform)) {\n // case of array with 6 values => https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/elements/Shape.tsx#L200\n if (props.transform.length !== 6) {\n throw new Error(`invalid transform length of ${props.transform.length}, should be 6`);\n }\n const transform = props.transform;\n const x = (_a = props.x) !== null && _a !== void 0 ? _a : 0;\n const y = (_b = props.y) !== null && _b !== void 0 ? _b : 0;\n props.transform = [\n { translateX: transform[0] * x + transform[2] * y + transform[4] },\n { translateY: transform[1] * x + transform[3] * y + transform[5] },\n ];\n }\n else if (typeof props.transform === 'string') {\n // case of string 'translate(translateX translateY)'\n // todo: handle other cases of transform string like here https://github.com/react-native-svg/react-native-svg/blob/b2e2c355204ff4b10973d3afce1495f7e4167ff7/src/lib/extract/extractTransform.ts#L184\n const transform = props.transform;\n const arr = transform\n .replace('translate(', '')\n .replace(')', '')\n .split(' ');\n props.transform = [\n { translateX: parseFloat(arr[0]) },\n { translateY: parseFloat(arr[1]) },\n ];\n }\n }\n // todo: other props\n});\nexport const TextInputAdapter = createAnimatedPropAdapter((props) => {\n 'worklet';\n const keys = Object.keys(props);\n // convert text to value like RN does here: https://github.com/facebook/react-native/blob/f2c6279ca497b34d5a2bfbb6f2d33dc7a7bea02a/Libraries/Components/TextInput/TextInput.js#L878\n if (keys.includes('value')) {\n props.text = props.value;\n delete props.value;\n }\n}, ['text']);\n","import { withDelay } from '../../animation';\nexport class BaseAnimationBuilder {\n constructor() {\n this.randomizeDelay = false;\n this.build = () => {\n throw Error('Unimplemented method in child class.');\n };\n }\n static duration(durationMs) {\n const instance = this.createInstance();\n return instance.duration(durationMs);\n }\n duration(durationMs) {\n this.durationV = durationMs;\n return this;\n }\n static delay(delayMs) {\n const instance = this.createInstance();\n return instance.delay(delayMs);\n }\n delay(delayMs) {\n this.delayV = delayMs;\n return this;\n }\n static withCallback(callback) {\n const instance = this.createInstance();\n return instance.withCallback(callback);\n }\n withCallback(callback) {\n this.callbackV = callback;\n return this;\n }\n // 300ms is the default animation duration. If any animation has different default has to override this method.\n static getDuration() {\n return 300;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 300;\n }\n static randomDelay() {\n const instance = this.createInstance();\n return instance.randomDelay();\n }\n randomDelay() {\n this.randomizeDelay = true;\n return this;\n }\n // when randomizeDelay is set to true, randomize delay between 0 and provided value (or 1000ms if delay is not provided)\n getDelay() {\n var _a, _b;\n return this.randomizeDelay\n ? Math.random() * ((_a = this.delayV) !== null && _a !== void 0 ? _a : 1000)\n : (_b = this.delayV) !== null && _b !== void 0 ? _b : 0;\n }\n getDelayFunction() {\n const isDelayProvided = this.randomizeDelay || this.delayV;\n return isDelayProvided\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n static build() {\n const instance = this.createInstance();\n return instance.build();\n }\n}\n","import { withTiming, withSpring } from '../../animation';\nimport { BaseAnimationBuilder } from './BaseAnimationBuilder';\nexport class ComplexAnimationBuilder extends BaseAnimationBuilder {\n static easing(easingFunction) {\n const instance = this.createInstance();\n return instance.easing(easingFunction);\n }\n easing(easingFunction) {\n this.easingV = easingFunction;\n return this;\n }\n static rotate(degree) {\n const instance = this.createInstance();\n return instance.rotate(degree);\n }\n rotate(degree) {\n this.rotateV = degree;\n return this;\n }\n static springify() {\n const instance = this.createInstance();\n return instance.springify();\n }\n springify() {\n this.type = withSpring;\n return this;\n }\n static damping(damping) {\n const instance = this.createInstance();\n return instance.damping(damping);\n }\n damping(damping) {\n this.dampingV = damping;\n return this;\n }\n static mass(mass) {\n const instance = this.createInstance();\n return instance.mass(mass);\n }\n mass(mass) {\n this.massV = mass;\n return this;\n }\n static stiffness(stiffness) {\n const instance = this.createInstance();\n return instance.stiffness(stiffness);\n }\n stiffness(stiffness) {\n this.stiffnessV = stiffness;\n return this;\n }\n static overshootClamping(overshootClamping) {\n const instance = this.createInstance();\n return instance.overshootClamping(overshootClamping);\n }\n overshootClamping(overshootClamping) {\n this.overshootClampingV = overshootClamping;\n return this;\n }\n static restDisplacementThreshold(restDisplacementThreshold) {\n const instance = this.createInstance();\n return instance.restDisplacementThreshold(restDisplacementThreshold);\n }\n restDisplacementThreshold(restDisplacementThreshold) {\n this.restDisplacementThresholdV = restDisplacementThreshold;\n return this;\n }\n static restSpeedThreshold(restSpeedThreshold) {\n const instance = this.createInstance();\n return instance.restSpeedThreshold(restSpeedThreshold);\n }\n restSpeedThreshold(restSpeedThreshold) {\n this.restSpeedThresholdV = restSpeedThreshold;\n return this;\n }\n static withInitialValues(values) {\n const instance = this.createInstance();\n return instance.withInitialValues(values);\n }\n withInitialValues(values) {\n this.initialValues = values;\n return this;\n }\n getAnimationAndConfig() {\n const duration = this.durationV;\n const easing = this.easingV;\n const rotate = this.rotateV;\n const type = this.type ? this.type : withTiming;\n const damping = this.dampingV;\n const mass = this.massV;\n const stiffness = this.stiffnessV;\n const overshootClamping = this.overshootClampingV;\n const restDisplacementThreshold = this.restDisplacementThresholdV;\n const restSpeedThreshold = this.restSpeedThresholdV;\n const animation = type;\n const config = {};\n if (type === withTiming) {\n if (easing) {\n config.easing = easing;\n }\n if (duration) {\n config.duration = duration;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n }\n else {\n if (damping) {\n config.damping = damping;\n }\n if (mass) {\n config.mass = mass;\n }\n if (stiffness) {\n config.stiffness = stiffness;\n }\n if (overshootClamping) {\n config.overshootClamping = overshootClamping;\n }\n if (restDisplacementThreshold) {\n config.restDisplacementThreshold = restDisplacementThreshold;\n }\n if (restSpeedThreshold) {\n config.restSpeedThreshold = restSpeedThreshold;\n }\n if (rotate) {\n config.rotate = rotate;\n }\n }\n return [animation, config];\n }\n}\n","import { Easing } from '../../Easing';\nimport { withDelay, withSequence, withTiming } from '../../animation';\nexport class Keyframe {\n /*\n Keyframe definition should be passed in the constructor as the map\n which keys are between range 0 - 100 (%) and correspond to the point in the animation progress.\n */\n constructor(definitions) {\n this.build = () => {\n const delay = this.delayV;\n const delayFunction = this.getDelayFunction();\n const { keyframes, initialValues } = this.parseDefinitions();\n const callback = this.callbackV;\n return (_targetValues) => {\n 'worklet';\n const animations = {};\n /*\n For each style property, an animations sequence is created that corresponds with its key points.\n Transform style properties require special handling because of their nested structure.\n */\n const addAnimation = (key) => {\n var _a;\n const keyframePoints = keyframes[key];\n // in case if property was only passed as initial value\n if (keyframePoints.length === 0)\n return;\n const animation = delayFunction(delay, keyframePoints.length === 1\n ? withTiming(keyframePoints[0].value, {\n duration: keyframePoints[0].duration,\n easing: keyframePoints[0].easing\n ? keyframePoints[0].easing\n : Easing.linear,\n })\n : withSequence.apply(this, keyframePoints.map((keyframePoint) => withTiming(keyframePoint.value, {\n duration: keyframePoint.duration,\n easing: keyframePoint.easing\n ? keyframePoint.easing\n : Easing.linear,\n }))));\n if (key.includes('transform')) {\n if (!('transform' in animations)) {\n animations.transform = [];\n }\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [key.split(':')[1]]: animation,\n });\n }\n else {\n animations[key] = animation;\n }\n };\n Object.keys(initialValues).forEach((key) => {\n if (key.includes('transform')) {\n initialValues[key].forEach((transformProp, index) => {\n Object.keys(transformProp).forEach((transformPropKey) => {\n addAnimation(index.toString() + '_transform:' + transformPropKey);\n });\n });\n }\n else {\n addAnimation(key);\n }\n });\n return {\n animations: animations,\n initialValues: initialValues,\n callback: callback,\n };\n };\n };\n this.definitions = definitions;\n }\n parseDefinitions() {\n /*\n Each style property contain an array with all their key points:\n value, duration of transition to that value, and optional easing function (defaults to Linear)\n */\n const parsedKeyframes = {};\n /*\n Parsing keyframes 'from' and 'to'.\n */\n if (this.definitions.from) {\n if (this.definitions['0']) {\n throw Error(\"You cannot provide both keyframe 0 and 'from' as they both specified initial values\");\n }\n this.definitions['0'] = this.definitions.from;\n delete this.definitions.from;\n }\n if (this.definitions.to) {\n if (this.definitions['100']) {\n throw Error(\"You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.\");\n }\n this.definitions['100'] = this.definitions.to;\n delete this.definitions.to;\n }\n /*\n One of the assumptions is that keyframe 0 is required to properly set initial values.\n Every other keyframe should contain properties from the set provided as initial values.\n */\n if (!this.definitions['0']) {\n throw Error(\"Please provide 0, or 'from' keyframe with initial state of your object.\");\n }\n const initialValues = this.definitions['0'];\n /*\n Initialize parsedKeyframes for properties provided in initial keyframe\n */\n Object.keys(initialValues).forEach((styleProp) => {\n var _a;\n if (styleProp === 'transform') {\n (_a = initialValues[styleProp]) === null || _a === void 0 ? void 0 : _a.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp) => {\n parsedKeyframes[index.toString() + '_transform:' + transformProp] =\n [];\n });\n });\n }\n else {\n parsedKeyframes[styleProp] = [];\n }\n });\n const duration = this.durationV ? this.durationV : 500;\n const animationKeyPoints = Array.from(Object.keys(this.definitions));\n const getAnimationDuration = (key, currentKeyPoint) => {\n const maxDuration = (currentKeyPoint / 100) * duration;\n const currentDuration = parsedKeyframes[key].reduce((acc, value) => acc + value.duration, 0);\n return maxDuration - currentDuration;\n };\n /*\n Other keyframes can't contain properties that were not specified in initial keyframe.\n */\n const addKeyPoint = ({ key, value, currentKeyPoint, easing, }) => {\n if (!(key in parsedKeyframes)) {\n throw Error(\"Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')\");\n }\n parsedKeyframes[key].push({\n duration: getAnimationDuration(key, currentKeyPoint),\n value: value,\n easing: easing,\n });\n };\n animationKeyPoints\n .filter((value) => parseInt(value) !== 0)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((keyPoint) => {\n if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {\n throw Error('Keyframe should be in between range 0 - 100.');\n }\n const keyframe = this.definitions[keyPoint];\n const easing = keyframe.easing;\n delete keyframe.easing;\n const addKeyPointWith = (key, value) => addKeyPoint({\n key,\n value,\n currentKeyPoint: parseInt(keyPoint),\n easing,\n });\n Object.keys(keyframe).forEach((key) => {\n var _a;\n if (key === 'transform') {\n (_a = keyframe[key]) === null || _a === void 0 ? void 0 : _a.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp) => {\n addKeyPointWith(index.toString() + '_transform:' + transformProp, transformStyle[transformProp]);\n });\n });\n }\n else {\n addKeyPointWith(key, keyframe[key]);\n }\n });\n });\n return { initialValues: initialValues, keyframes: parsedKeyframes };\n }\n duration(durationMs) {\n this.durationV = durationMs;\n return this;\n }\n delay(delayMs) {\n this.delayV = delayMs;\n return this;\n }\n withCallback(callback) {\n this.callbackV = callback;\n return this;\n }\n getDelayFunction() {\n const delay = this.delayV;\n return delay\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class FlipInXUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '90deg' },\n { translateY: -targetValues.targetHeight },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: 500 },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInXUp();\n }\n}\nexport class FlipInYLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '-90deg' },\n { translateX: -targetValues.targetWidth },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInYLeft();\n }\n}\nexport class FlipInXDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '-90deg' },\n { translateY: targetValues.targetHeight },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInXDown();\n }\n}\nexport class FlipInYRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '90deg' },\n { translateX: targetValues.targetWidth },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInYRight();\n }\n}\nexport class FlipInEasyX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateX: '90deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInEasyX();\n }\n}\nexport class FlipInEasyY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateY: '90deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipInEasyY();\n }\n}\nexport class FlipOutXUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n {\n translateY: delayFunction(delay, animation(-targetValues.currentHeight, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutXUp();\n }\n}\nexport class FlipOutYLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-targetValues.currentWidth, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutYLeft();\n }\n}\nexport class FlipOutXDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateX: '0deg' },\n { translateY: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('-90deg', config)) },\n {\n translateY: delayFunction(delay, animation(targetValues.currentHeight, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutXDown();\n }\n}\nexport class FlipOutYRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (targetValues) => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [\n { perspective: 500 },\n { rotateY: '0deg' },\n { translateX: 0 },\n ] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(targetValues.currentWidth, config)),\n },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutYRight();\n }\n}\nexport class FlipOutEasyX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateX: '0deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateX: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutEasyX();\n }\n}\nexport class FlipOutEasyY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n initialValues: Object.assign({ transform: [{ perspective: 500 }, { rotateY: '0deg' }] }, initialValues),\n animations: {\n transform: [\n { perspective: delayFunction(delay, animation(500, config)) },\n { rotateY: delayFunction(delay, animation('90deg', config)) },\n ],\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FlipOutEasyY();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class StretchInX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchInX();\n }\n}\nexport class StretchInY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchInY();\n }\n}\nexport class StretchOutX extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleX: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleX: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchOutX();\n }\n}\nexport class StretchOutY extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scaleY: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scaleY: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new StretchOutY();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class FadeIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n },\n initialValues: Object.assign({ opacity: 0 }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeIn();\n }\n}\nexport class FadeInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: 25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInRight();\n }\n}\nexport class FadeInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: -25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInLeft();\n }\n}\nexport class FadeInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateY: -25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInUp();\n }\n}\nexport class FadeInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateY: 25 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeInDown();\n }\n}\nexport class FadeOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return (_) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n },\n initialValues: Object.assign({ opacity: 1 }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOut();\n }\n}\nexport class FadeOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutRight();\n }\n}\nexport class FadeOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateX: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutLeft();\n }\n}\nexport class FadeOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(-25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutUp();\n }\n}\nexport class FadeOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n const delay = this.getDelay();\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { translateY: delayFunction(delay, animation(25, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadeOutDown();\n }\n}\n","import { Dimensions } from 'react-native';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nconst { width, height } = Dimensions.get('window');\nexport class SlideInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n },\n initialValues: Object.assign({ originX: values.targetOriginX + width }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInRight();\n }\n}\nexport class SlideInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n },\n initialValues: Object.assign({ originX: values.targetOriginX - width }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInLeft();\n }\n}\nexport class SlideOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(Math.max(values.currentOriginX + width, width), config)),\n },\n initialValues: Object.assign({ originX: values.currentOriginX }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutRight();\n }\n}\nexport class SlideOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originX: delayFunction(delay, animation(Math.min(values.currentOriginX - width, -width), config)),\n },\n initialValues: Object.assign({ originX: values.currentOriginX }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutLeft();\n }\n}\nexport class SlideInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n },\n initialValues: Object.assign({ originY: -height }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInUp();\n }\n}\nexport class SlideInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n },\n initialValues: Object.assign({ originY: values.targetOriginY + height }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideInDown();\n }\n}\nexport class SlideOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(Math.min(values.currentOriginY - height, -height), config)),\n },\n initialValues: Object.assign({ originY: values.currentOriginY }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutUp();\n }\n}\nexport class SlideOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n originY: delayFunction(delay, animation(Math.max(values.currentOriginY + height, height), config)),\n },\n initialValues: Object.assign({ originY: values.currentOriginY }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SlideOutDown();\n }\n}\n","import { Dimensions } from 'react-native';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nconst { width, height } = Dimensions.get('window');\nexport class ZoomIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(1, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomIn();\n }\n}\nexport class ZoomInRotate extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(1, config)) },\n { rotate: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }, { rotate: rotate }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInRotate();\n }\n}\nexport class ZoomInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: -width }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInLeft();\n }\n}\nexport class ZoomInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: width }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInRight();\n }\n}\nexport class ZoomInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -height }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInUp();\n }\n}\nexport class ZoomInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: height }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInDown();\n }\n}\nexport class ZoomInEasyUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -values.targetHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInEasyUp();\n }\n}\nexport class ZoomInEasyDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(0, config)) },\n { scale: delayFunction(delay, animation(1, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: values.targetHeight }, { scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomInEasyDown();\n }\n}\nexport class ZoomOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [{ scale: delayFunction(delay, animation(0, config)) }],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOut();\n }\n}\nexport class ZoomOutRotate extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const rotate = this.rotateV ? this.rotateV : '0.3';\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { scale: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation(rotate, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }, { rotate: '0' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutRotate();\n }\n}\nexport class ZoomOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(-width, config)) },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutLeft();\n }\n}\nexport class ZoomOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(width, config)) },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutRight();\n }\n}\nexport class ZoomOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(-height, config)) },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutUp();\n }\n}\nexport class ZoomOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateY: delayFunction(delay, animation(height, config)) },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutDown();\n }\n}\nexport class ZoomOutEasyUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(-values.currentHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutEasyUp();\n }\n}\nexport class ZoomOutEasyDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, animation(values.currentHeight, config)),\n },\n { scale: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }, { scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new ZoomOutEasyDown();\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { Dimensions } from 'react-native';\nimport { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\nconst { width, height } = Dimensions.get('window');\nexport class BounceIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(delay, withSequence(withTiming(1.2, { duration: duration * 0.55 }), withTiming(0.9, { duration: duration * 0.15 }), withTiming(1.1, { duration: duration * 0.15 }), withTiming(1, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceIn();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(-20, { duration: duration * 0.55 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [\n {\n translateY: height,\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInDown();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(20, { duration: duration * 0.55 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: -height }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInUp();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(20, { duration: duration * 0.55 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: -width }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInLeft();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(-20, { duration: duration * 0.55 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: width }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceInRight();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n scale: delayFunction(delay, withSequence(withTiming(1.1, { duration: duration * 0.15 }), withTiming(0.9, { duration: duration * 0.15 }), withTiming(1.2, { duration: duration * 0.15 }), withTiming(0, { duration: duration * 0.55 }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ scale: 1 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOut();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutDown extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-20, { duration: duration * 0.15 }), withTiming(height, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutDown();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutUp extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateY: delayFunction(delay, withSequence(withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(20, { duration: duration * 0.15 }), withTiming(-height, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutUp();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(10, { duration: duration * 0.15 }), withTiming(-10, { duration: duration * 0.15 }), withTiming(20, { duration: duration * 0.15 }), withTiming(-width, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutLeft();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\nexport class BounceOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n {\n translateX: delayFunction(delay, withSequence(withTiming(-10, { duration: duration * 0.15 }), withTiming(10, { duration: duration * 0.15 }), withTiming(-20, { duration: duration * 0.15 }), withTiming(width, {\n duration: duration * 0.55,\n }))),\n },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new BounceOutRight();\n }\n static getDuration() {\n return 600;\n }\n getDuration() {\n var _a;\n return (_a = this.durationV) !== null && _a !== void 0 ? _a : 600;\n }\n}\n","import { Dimensions } from 'react-native';\nimport { withSequence, withTiming } from '../../animation';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nconst { width } = Dimensions.get('window');\nexport class LightSpeedInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(delay, animation(0, Object.assign(Object.assign({}, config), { duration: duration * 0.7 }))),\n },\n {\n skewX: delayFunction(delay, withSequence(withTiming('10deg', { duration: duration * 0.7 }), withTiming('-5deg', { duration: duration * 0.15 }), withTiming('0deg', { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: width }, { skewX: '-45deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedInRight();\n }\n}\nexport class LightSpeedInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const duration = this.getDuration();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, withTiming(1, { duration: duration })),\n transform: [\n {\n translateX: delayFunction(delay, animation(0, Object.assign(Object.assign({}, config), { duration: duration * 0.7 }))),\n },\n {\n skewX: delayFunction(delay, withSequence(withTiming('-10deg', { duration: duration * 0.7 }), withTiming('5deg', { duration: duration * 0.15 }), withTiming('0deg', { duration: duration * 0.15 }))),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [{ translateX: -width }, { skewX: '45deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedInLeft();\n }\n}\nexport class LightSpeedOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(delay, animation(width, config)),\n },\n {\n skewX: delayFunction(delay, animation('-45deg', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }, { skewX: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedOutRight();\n }\n}\nexport class LightSpeedOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n translateX: delayFunction(delay, animation(-width, config)),\n },\n {\n skewX: delayFunction(delay, animation('45deg', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ translateX: 0 }, { skewX: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LightSpeedOutLeft();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class PinwheelIn extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(1, config)),\n },\n {\n rotate: delayFunction(delay, animation('0', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n {\n scale: 0,\n },\n {\n rotate: '5',\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new PinwheelIn();\n }\n}\nexport class PinwheelOut extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (_values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n {\n scale: delayFunction(delay, animation(0, config)),\n },\n {\n rotate: delayFunction(delay, animation('5', config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [\n {\n scale: 1,\n },\n {\n rotate: '0',\n },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new PinwheelOut();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder';\nexport class RotateInDownLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '-90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInDownLeft();\n }\n}\nexport class RotateInDownRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: -(values.targetWidth / 2 - values.targetHeight / 2) },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInDownRight();\n }\n}\nexport class RotateInUpLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '90deg' },\n { translateX: values.targetWidth / 2 - values.targetHeight / 2 },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInUpLeft();\n }\n}\nexport class RotateInUpRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(1, config)),\n transform: [\n { rotate: delayFunction(delay, animation('0deg', config)) },\n { translateX: delayFunction(delay, animation(0, config)) },\n { translateY: delayFunction(delay, animation(0, config)) },\n ],\n },\n initialValues: Object.assign({ opacity: 0, transform: [\n { rotate: '-90deg' },\n { translateX: -(values.targetWidth / 2 - values.targetHeight / 2) },\n { translateY: values.targetWidth / 2 - values.targetHeight / 2 },\n ] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateInUpRight();\n }\n}\nexport class RotateOutDownLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n {\n translateY: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutDownLeft();\n }\n}\nexport class RotateOutDownRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n {\n translateY: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutDownRight();\n }\n}\nexport class RotateOutUpLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('-90deg', config)) },\n {\n translateX: delayFunction(delay, animation(values.currentWidth / 2 - values.currentHeight / 2, config)),\n },\n {\n translateY: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutUpLeft();\n }\n}\nexport class RotateOutUpRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return (values) => {\n 'worklet';\n return {\n animations: {\n opacity: delayFunction(delay, animation(0, config)),\n transform: [\n { rotate: delayFunction(delay, animation('90deg', config)) },\n {\n translateX: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n {\n translateY: delayFunction(delay, animation(-(values.currentWidth / 2 - values.currentHeight / 2), config)),\n },\n ],\n },\n initialValues: Object.assign({ opacity: 1, transform: [{ rotate: '0deg' }, { translateX: 0 }, { translateY: 0 }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RotateOutUpRight();\n }\n}\n","import { Dimensions } from 'react-native';\nimport { ComplexAnimationBuilder } from '../animationBuilder';\nconst { width } = Dimensions.get('window');\nexport class RollInLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0), config) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: -width }, { rotate: '-180deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollInLeft();\n }\n}\nexport class RollInRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(0, config)) },\n { rotate: delayFunction(delay, animation('0deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: width }, { rotate: '180deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollInRight();\n }\n}\nexport class RollOutLeft extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(-width, config)) },\n { rotate: delayFunction(delay, animation('-180deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { rotate: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollOutLeft();\n }\n}\nexport class RollOutRight extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const delay = this.getDelay();\n const callback = this.callbackV;\n const initialValues = this.initialValues;\n return () => {\n 'worklet';\n return {\n animations: {\n transform: [\n { translateX: delayFunction(delay, animation(width, config)) },\n { rotate: delayFunction(delay, animation('180deg', config)) },\n ],\n },\n initialValues: Object.assign({ transform: [{ translateX: 0 }, { rotate: '0deg' }] }, initialValues),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new RollOutRight();\n }\n}\n","import { ComplexAnimationBuilder } from '../animationBuilder/ComplexAnimationBuilder';\nexport class LinearTransition extends ComplexAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const [animation, config] = this.getAnimationAndConfig();\n const callback = this.callbackV;\n const delay = this.getDelay();\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, animation(values.targetOriginX, config)),\n originY: delayFunction(delay, animation(values.targetOriginY, config)),\n width: delayFunction(delay, animation(values.targetWidth, config)),\n height: delayFunction(delay, animation(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new LinearTransition();\n }\n}\nexport const Layout = LinearTransition;\n","import { withSequence, withTiming } from '../../animation';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class FadingTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = (_a = this.durationV) !== null && _a !== void 0 ? _a : 500;\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n opacity: 1,\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n opacity: delayFunction(delay, withSequence(withTiming(0, { duration: duration }), withTiming(1, { duration: duration }))),\n originX: delayFunction(delay + duration, withTiming(values.targetOriginX, { duration: 50 })),\n originY: delayFunction(delay + duration, withTiming(values.targetOriginY, { duration: 50 })),\n width: delayFunction(delay + duration, withTiming(values.targetWidth, { duration: 50 })),\n height: delayFunction(delay + duration, withTiming(values.targetHeight, { duration: 50 })),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new FadingTransition();\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class SequencedTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.reversed = false;\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const sequenceDuration = ((_a = this.durationV) !== null && _a !== void 0 ? _a : 500) / 2;\n const config = { duration: sequenceDuration };\n const reverse = this.reversed;\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withSequence(withTiming(reverse ? values.currentOriginX : values.targetOriginX, config), withTiming(values.targetOriginX, config))),\n originY: delayFunction(delay, withSequence(withTiming(reverse ? values.targetOriginY : values.currentOriginY, config), withTiming(values.targetOriginY, config))),\n width: delayFunction(delay, withSequence(withTiming(reverse ? values.currentWidth : values.targetWidth, config), withTiming(values.targetWidth, config))),\n height: delayFunction(delay, withSequence(withTiming(reverse ? values.targetHeight : values.currentHeight, config), withTiming(values.targetHeight, config))),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new SequencedTransition();\n }\n static reverse() {\n const instance = SequencedTransition.createInstance();\n return instance.reverse();\n }\n reverse() {\n this.reversed = !this.reversed;\n return this;\n }\n}\n","import { withSequence, withTiming } from '../../animation';\nimport { Easing } from '../../Easing';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nexport class JumpingTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = ((_a = this.durationV) !== null && _a !== void 0 ? _a : 300) / 2;\n const config = { duration: duration * 2 };\n return (values) => {\n 'worklet';\n const d = Math.max(Math.abs(values.targetOriginX - values.currentOriginX), Math.abs(values.targetOriginY - values.currentOriginY));\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withTiming(values.targetOriginX, config)),\n originY: delayFunction(delay, withSequence(withTiming(Math.min(values.targetOriginY, values.currentOriginY) - d, {\n duration,\n easing: Easing.out(Easing.exp),\n }), withTiming(values.targetOriginY, Object.assign(Object.assign({}, config), { duration, easing: Easing.bounce })))),\n width: delayFunction(delay, withTiming(values.targetWidth, config)),\n height: delayFunction(delay, withTiming(values.targetHeight, config)),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new JumpingTransition();\n }\n}\n","import { BaseAnimationBuilder } from '../animationBuilder';\nimport { Easing } from '../../Easing';\nimport { withTiming } from '../../animation';\nexport class CurvedTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.easingXV = Easing.in(Easing.ease);\n this.easingYV = Easing.out(Easing.ease);\n this.easingWidthV = Easing.in(Easing.exp);\n this.easingHeightV = Easing.out(Easing.exp);\n this.build = () => {\n var _a;\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = (_a = this.durationV) !== null && _a !== void 0 ? _a : 300;\n const easing = {\n easingX: this.easingXV,\n easingY: this.easingYV,\n easingWidth: this.easingWidthV,\n easingHeight: this.easingHeightV,\n };\n return (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(delay, withTiming(values.targetOriginX, {\n duration,\n easing: easing.easingX,\n })),\n originY: delayFunction(delay, withTiming(values.targetOriginY, {\n duration,\n easing: easing.easingY,\n })),\n width: delayFunction(delay, withTiming(values.targetWidth, {\n duration,\n easing: easing.easingWidth,\n })),\n height: delayFunction(delay, withTiming(values.targetHeight, {\n duration,\n easing: easing.easingHeight,\n })),\n },\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new CurvedTransition();\n }\n static easingX(easing) {\n const instance = this.createInstance();\n return instance.easingX(easing);\n }\n easingX(easing) {\n this.easingXV = easing;\n return this;\n }\n static easingY(easing) {\n const instance = this.createInstance();\n return instance.easingY(easing);\n }\n easingY(easing) {\n this.easingYV = easing;\n return this;\n }\n static easingWidth(easing) {\n const instance = this.createInstance();\n return instance.easingWidth(easing);\n }\n easingWidth(easing) {\n this.easingWidthV = easing;\n return this;\n }\n static easingHeight(easing) {\n const instance = this.createInstance();\n return instance.easingHeight(easing);\n }\n easingHeight(easing) {\n this.easingHeightV = easing;\n return this;\n }\n}\n","import { BaseAnimationBuilder } from '../animationBuilder';\nimport { withSequence, withTiming } from '../../animation';\nimport { FadeIn, FadeOut } from '../defaultAnimations/Fade';\nexport class EntryExitTransition extends BaseAnimationBuilder {\n constructor() {\n super(...arguments);\n this.enteringV = FadeIn;\n this.exitingV = FadeOut;\n this.build = () => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const enteringAnimation = this.enteringV.build();\n const exitingAnimation = this.exitingV.build();\n const exitingDuration = this.exitingV.getDuration();\n return (values) => {\n 'worklet';\n var _a, _b, _c, _d;\n const enteringValues = enteringAnimation(values);\n const exitingValues = exitingAnimation(values);\n const animations = {\n transform: [],\n };\n for (const prop of Object.keys(exitingValues.animations)) {\n if (prop === 'transform') {\n (_a = exitingValues.animations[prop]) === null || _a === void 0 ? void 0 : _a.forEach((value, index) => {\n var _a;\n for (const transformProp of Object.keys(value)) {\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [transformProp]: delayFunction(delay, withSequence(value[transformProp], withTiming(exitingValues.initialValues.transform\n ? exitingValues.initialValues.transform[index][transformProp]\n : 0, { duration: 0 }))),\n });\n }\n });\n }\n else {\n const sequence = enteringValues.animations[prop] !== undefined\n ? [\n exitingValues.animations[prop],\n withTiming(enteringValues.initialValues[prop], {\n duration: 0,\n }),\n enteringValues.animations[prop],\n ]\n : [\n exitingValues.animations[prop],\n withTiming(Object.keys(values).includes(prop)\n ? values[prop]\n : exitingValues.initialValues[prop], { duration: 0 }),\n ];\n animations[prop] = delayFunction(delay, withSequence(...sequence));\n }\n }\n for (const prop of Object.keys(enteringValues.animations)) {\n if (prop === 'transform') {\n (_b = enteringValues.animations[prop]) === null || _b === void 0 ? void 0 : _b.forEach((value, index) => {\n var _a;\n for (const transformProp of Object.keys(value)) {\n (_a = animations.transform) === null || _a === void 0 ? void 0 : _a.push({\n [transformProp]: delayFunction(delay + exitingDuration, withSequence(withTiming(enteringValues.initialValues.transform\n ? enteringValues.initialValues.transform[index][transformProp]\n : 0, { duration: exitingDuration }), value[transformProp])),\n });\n }\n });\n }\n else if (animations[prop] !== undefined) {\n // it was already added in the previous loop\n continue;\n }\n else {\n animations[prop] = delayFunction(delay, withSequence(withTiming(enteringValues.initialValues[prop], { duration: 0 }), enteringValues.animations[prop]));\n }\n }\n const mergedTransform = ((_c = exitingValues.initialValues.transform) !== null && _c !== void 0 ? _c : []).concat(((_d = enteringValues.animations.transform) !== null && _d !== void 0 ? _d : []).map((value) => {\n const objectKeys = Object.keys(value);\n if ((objectKeys === null || objectKeys === void 0 ? void 0 : objectKeys.length) < 1) {\n console.error(`[Reanimated]: \\${value} is not a valid Transform object`);\n return value;\n }\n const transformProp = objectKeys[0];\n const current = value[transformProp].current;\n if (typeof current === 'string') {\n if (current.includes('deg'))\n return {\n [transformProp]: '0deg',\n };\n else\n return {\n [transformProp]: '0',\n };\n }\n else if (transformProp.includes('translate')) {\n return { [transformProp]: 0 };\n }\n else {\n return { [transformProp]: 1 };\n }\n return value;\n }));\n return {\n initialValues: Object.assign(Object.assign({}, exitingValues.initialValues), { originX: values.currentOriginX, originY: values.currentOriginY, width: values.currentWidth, height: values.currentHeight, transform: mergedTransform }),\n animations: Object.assign({ originX: delayFunction(delay + exitingDuration, withTiming(values.targetOriginX, { duration: exitingDuration })), originY: delayFunction(delay + exitingDuration, withTiming(values.targetOriginY, { duration: exitingDuration })), width: delayFunction(delay + exitingDuration, withTiming(values.targetWidth, { duration: exitingDuration })), height: delayFunction(delay + exitingDuration, withTiming(values.targetHeight, { duration: exitingDuration })) }, animations),\n callback: callback,\n };\n };\n };\n }\n static createInstance() {\n return new EntryExitTransition();\n }\n static entering(animation) {\n const instance = this.createInstance();\n return instance.entering(animation);\n }\n entering(animation) {\n this.enteringV = animation;\n return this;\n }\n static exiting(animation) {\n const instance = this.createInstance();\n return instance.exiting(animation);\n }\n exiting(animation) {\n this.exitingV = animation;\n return this;\n }\n}\nexport function combineTransition(exiting, entering) {\n return EntryExitTransition.entering(entering).exiting(exiting);\n}\n","import { measure } from './NativeMethods';\nexport function getRelativeCoords(parentRef, x, y) {\n 'worklet';\n const parentCoords = measure(parentRef);\n return {\n x: x - parentCoords.x,\n y: y - parentCoords.y,\n };\n}\n","import createAnimatedComponent from './createAnimatedComponent';\nimport {\n addWhitelistedNativeProps,\n addWhitelistedUIProps,\n} from './ConfigHelper';\nimport * as reanimated1 from './reanimated1';\nimport ReanimatedComponents from './reanimated2/component';\n\nconst Animated = {\n // components\n ...ReanimatedComponents,\n createAnimatedComponent,\n // configuration\n addWhitelistedNativeProps,\n addWhitelistedUIProps,\n // reanimated 1\n ...reanimated1,\n};\n\nexport * from './reanimated2';\nexport * from './reanimated1';\nexport default Animated;\n","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;","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;","module.exports = require(\"regenerator-runtime\");\n","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;","import { defineAnimation } from './util';\nexport function withSpring(toValue, userConfig, callback) {\n 'worklet';\n return defineAnimation(toValue, () => {\n 'worklet';\n // TODO: figure out why we can't use spread or Object.assign here\n // when user config is \"frozen object\" we can't enumerate it (perhaps\n // something is wrong with the object prototype).\n const config = {\n damping: 10,\n mass: 1,\n stiffness: 100,\n overshootClamping: false,\n restDisplacementThreshold: 0.01,\n restSpeedThreshold: 2,\n velocity: 0,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach((key) => (config[key] = userConfig[key]));\n }\n function spring(animation, now) {\n const { toValue, lastTimestamp, current, velocity } = animation;\n const deltaTime = Math.min(now - lastTimestamp, 64);\n animation.lastTimestamp = now;\n const c = config.damping;\n const m = config.mass;\n const k = config.stiffness;\n const v0 = -velocity;\n const x0 = toValue - current;\n const zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n const omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n const omega1 = omega0 * Math.sqrt(1 - Math.pow(zeta, 2)); // exponential decay\n const t = deltaTime / 1000;\n const sin1 = Math.sin(omega1 * t);\n const cos1 = Math.cos(omega1 * t);\n // under damped\n const underDampedEnvelope = Math.exp(-zeta * omega0 * t);\n const underDampedFrag1 = underDampedEnvelope *\n (sin1 * ((v0 + zeta * omega0 * x0) / omega1) + x0 * cos1);\n const underDampedPosition = toValue - underDampedFrag1;\n // This looks crazy -- it's actually just the derivative of the oscillation function\n const underDampedVelocity = zeta * omega0 * underDampedFrag1 -\n underDampedEnvelope *\n (cos1 * (v0 + zeta * omega0 * x0) - omega1 * x0 * sin1);\n // critically damped\n const criticallyDampedEnvelope = Math.exp(-omega0 * t);\n const criticallyDampedPosition = toValue - criticallyDampedEnvelope * (x0 + (v0 + omega0 * x0) * t);\n const criticallyDampedVelocity = criticallyDampedEnvelope *\n (v0 * (t * omega0 - 1) + t * x0 * omega0 * omega0);\n const isOvershooting = () => {\n if (config.overshootClamping && config.stiffness !== 0) {\n return current < toValue\n ? animation.current > toValue\n : animation.current < toValue;\n }\n else {\n return false;\n }\n };\n const isVelocity = Math.abs(velocity) < config.restSpeedThreshold;\n const isDisplacement = config.stiffness === 0 ||\n Math.abs(toValue - current) < config.restDisplacementThreshold;\n if (zeta < 1) {\n animation.current = underDampedPosition;\n animation.velocity = underDampedVelocity;\n }\n else {\n animation.current = criticallyDampedPosition;\n animation.velocity = criticallyDampedVelocity;\n }\n if (isOvershooting() || (isVelocity && isDisplacement)) {\n if (config.stiffness !== 0) {\n animation.velocity = 0;\n animation.current = toValue;\n }\n // clear lastTimestamp to avoid using stale value by the next spring animation that starts after this one\n animation.lastTimestamp = 0;\n return true;\n }\n return false;\n }\n function onStart(animation, value, now, previousAnimation) {\n animation.current = value;\n if (previousAnimation) {\n animation.velocity =\n previousAnimation.velocity || animation.velocity || 0;\n animation.lastTimestamp = previousAnimation.lastTimestamp || now;\n }\n else {\n animation.lastTimestamp = now;\n }\n }\n return {\n onFrame: spring,\n onStart,\n toValue,\n velocity: config.velocity || 0,\n current: toValue,\n callback,\n lastTimestamp: 0,\n };\n });\n}\n","import { defineAnimation } from './util';\nimport { Platform } from 'react-native';\nexport function withDecay(userConfig, callback) {\n 'worklet';\n return defineAnimation(0, () => {\n 'worklet';\n var _a;\n const config = {\n deceleration: 0.998,\n velocityFactor: Platform.OS !== 'web' ? 1 : 1000,\n velocity: 0,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach((key) => (config[key] = userConfig[key]));\n }\n const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;\n const SLOPE_FACTOR = 0.1;\n function decay(animation, now) {\n const { lastTimestamp, startTimestamp, initialVelocity, current, velocity, } = animation;\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v = velocity *\n Math.exp(-(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR);\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000; // /1000 because time is in ms not in s\n animation.velocity = v;\n animation.lastTimestamp = now;\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n }\n else if (initialVelocity > 0 &&\n animation.current >= config.clamp[1]) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n return Math.abs(v) < VELOCITY_EPS;\n }\n function validateConfig() {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(`config.clamp must be an array but is ${typeof config.clamp}`);\n }\n if (config.clamp.length !== 2) {\n throw Error(`clamp array must contain 2 items but is given ${config.clamp.length}`);\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(`config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`);\n }\n }\n function onStart(animation, value, now) {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: (_a = config.velocity) !== null && _a !== void 0 ? _a : 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n };\n });\n}\n","import { defineAnimation } from './util';\nexport function withDelay(delayMs, _nextAnimation) {\n 'worklet';\n return defineAnimation(_nextAnimation, () => {\n 'worklet';\n const nextAnimation = typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n function delay(animation, now) {\n const { startTime, started, previousAnimation } = animation;\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(nextAnimation, animation.current, now, previousAnimation);\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n }\n else if (previousAnimation) {\n const finished = previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n function onStart(animation, value, now, previousAnimation) {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n }\n else {\n animation.previousAnimation = previousAnimation;\n }\n }\n const callback = (finished) => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function delay(delayMs, _nextAnimation) {\n 'worklet';\n console.warn('Method `delay` is deprecated. Please use `withDelay` instead');\n return withDelay(delayMs, _nextAnimation);\n}\n","import { defineAnimation } from './util';\nexport function withRepeat(_nextAnimation, numberOfReps = 2, reverse = false, callback) {\n 'worklet';\n return defineAnimation(_nextAnimation, () => {\n 'worklet';\n const nextAnimation = typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n function repeat(animation, now) {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n const startValue = reverse\n ? nextAnimation.current\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(nextAnimation, startValue, now, nextAnimation.previousAnimation);\n return false;\n }\n return false;\n }\n const repCallback = (finished) => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n function onStart(animation, value, now, previousAnimation) {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n };\n });\n}\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function repeat(_nextAnimation, numberOfReps = 2, reverse = false, callback) {\n 'worklet';\n console.warn('Method `repeat` is deprecated. Please use `withRepeat` instead');\n return withRepeat(_nextAnimation, numberOfReps, reverse, callback);\n}\nexport function loop(nextAnimation, numberOfLoops = 1) {\n 'worklet';\n console.warn('Method `loop` is deprecated. Please use `withRepeat` instead');\n return repeat(nextAnimation, Math.round(numberOfLoops * 2), true);\n}\n","import { defineAnimation } from './util';\nexport function withSequence(..._animations) {\n 'worklet';\n return defineAnimation(_animations[0], () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n const callback = (finished) => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n function sequence(animation, now) {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n function onStart(animation, value, now, previousAnimation) {\n if (animations.length === 1) {\n throw Error('withSequence() animation require more than one animation as argument');\n }\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[animations.length - 1];\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n };\n });\n}\n/**\n * @deprecated Kept for backward compatibility. Will be removed soon.\n */\nexport function sequence(..._animations) {\n 'worklet';\n console.warn('Method `sequence` is deprecated. Please use `withSequence` instead');\n return withSequence(..._animations);\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 */\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;","/**\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 _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;","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;","// import { useWindowDimensions } from 'react-native';\n// import { isResponsiveAnyProp } from '../theme/tools';\n\n// @ts-ignore eslint-disable-next-line\nexport function useHasResponsiveProps(props: any) {\n if (props) {\n //\n }\n return false;\n // const windowDimensions = useWindowDimensions();\n\n // if (!windowDimensions.width || !windowDimensions.height) {\n // const responsivePropsExists = isResponsiveAnyProp(props);\n // if (responsivePropsExists) {\n // return true;\n // }\n // }\n // return false;\n}\n","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;","// TODO use State from RNModule\n\nexport const State = {\n UNDETERMINED: 0,\n FAILED: 1,\n BEGAN: 2,\n CANCELLED: 3,\n ACTIVE: 4,\n END: 5,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type State = typeof State[keyof typeof State];\n","/**\n * React Router v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parsePath, createMemoryHistory, Action } from 'history';\nexport { Action as NavigationType, createPath, parsePath } from 'history';\nimport { createContext, useContext, useMemo, useRef, useEffect, useCallback, createElement, useState, useLayoutEffect, Children, isValidElement, Fragment } from 'react';\n\nconst NavigationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nfunction invariant(cond, message) {\n if (!cond) throw new Error(message);\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nfunction generatePath(path, params) {\n if (params === void 0) {\n params = {};\n }\n\n return path.replace(/:(\\w+)/g, (_, key) => {\n !(params[key] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Missing \\\":\" + key + \"\\\" param\") : invariant(false) : void 0;\n return params[key];\n }).replace(/\\/*\\*$/, _ => params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\"));\n}\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n routes.forEach((route, index) => {\n let meta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n !meta.relativePath.startsWith(parentPath) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\") : invariant(false) : void 0;\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n !(route.index !== true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\")) : invariant(false) : void 0;\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n });\n return branches;\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\n\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\")) : void 0;\n let paramNames = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\")) : void 0;\n return value;\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\n\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(toArg, routePathnames, locationPathname) {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname; // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n let from;\n\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original to value had one.\n\n if (toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\") && !path.pathname.endsWith(\"/\")) {\n path.pathname += \"/\";\n }\n\n return path;\n}\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\n\nfunction useHref(to) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to);\n let joinedPathname = pathname;\n\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname = pathname === \"/\" ? basename + (endsWithSlash ? \"/\" : \"\") : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\n\nfunction useInRouterContext() {\n return useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\n\nfunction useNavigationType() {\n return useContext(LocationContext).navigationType;\n}\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = useContext(NavigationContext);\n let {\n matches\n } = useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(matches.map(match => match.pathnameBase));\n let activeRef = useRef(false);\n useEffect(() => {\n activeRef.current = true;\n });\n let navigate = useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname);\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\n\nfunction useOutletContext() {\n return useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\n\nfunction useOutlet(context) {\n let outlet = useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\n\nfunction useParams() {\n let {\n matches\n } = useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\n\nfunction useResolvedPath(to) {\n let {\n matches\n } = useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(matches.map(match => match.pathnameBase));\n return useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname), [to, routePathnamesJson, locationPathname]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n matches: parentMatches\n } = useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n return _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, match.pathnameBase])\n })), parentMatches);\n}\nfunction _renderMatches(matches, parentMatches) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) return null;\n return matches.reduceRight((outlet, match, index) => {\n return /*#__PURE__*/createElement(RouteContext.Provider, {\n children: match.route.element !== undefined ? match.route.element : outlet,\n value: {\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }\n });\n }, null);\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nfunction MemoryRouter(_ref) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex\n } = _ref;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nfunction Navigate(_ref2) {\n let {\n to,\n replace,\n state\n } = _ref2;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \" may be used only in the context of a component.\") : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!useContext(NavigationContext).static, \" must not be used on the initial render in a . \" + \"This is a no-op, but you should modify your code so the is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let navigate = useNavigate();\n useEffect(() => {\n navigate(to, {\n replace,\n state\n });\n });\n return null;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"A is only ever to be used as the child of element, \" + \"never rendered directly. Please wrap your in a .\") : invariant(false) ;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nfunction Router(_ref3) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false\n } = _ref3;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot render a inside another .\" + \" You should never have more than one in your app.\") : invariant(false) : void 0;\n let basename = normalizePathname(basenameProp);\n let navigationContext = useMemo(() => ({\n basename,\n navigator,\n static: staticProp\n }), [basename, navigator, staticProp]);\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let location = useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n process.env.NODE_ENV !== \"production\" ? warning(location != null, \" is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the won't render anything.\") : void 0;\n\n if (location == null) {\n return null;\n }\n\n return /*#__PURE__*/createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/createElement(LocationContext.Provider, {\n children: children,\n value: {\n location,\n navigationType\n }\n }));\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nfunction Routes(_ref4) {\n let {\n children,\n location\n } = _ref4;\n return useRoutes(createRoutesFromChildren(children), location);\n} ///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\n\nfunction createRoutesFromChildren(children) {\n let routes = [];\n Children.forEach(children, element => {\n if (! /*#__PURE__*/isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children));\n return;\n }\n\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a component. All component children of must be a or \") : invariant(false) : void 0;\n let route = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n return routes;\n}\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\n\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nexport { MemoryRouter, Navigate, Outlet, Route, Router, Routes, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, createRoutesFromChildren, generatePath, matchPath, matchRoutes, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes };\n//# sourceMappingURL=index.js.map\n","import ReanimatedModule from '../../ReanimatedModule';\nimport { Platform } from 'react-native';\n\nconst UPDATED_NODES = [];\n\nlet loopID = 1;\nlet propUpdatesEnqueued = null;\nlet nodeCount = 0;\nlet callID = '';\n\nexport function getCallID() {\n return callID;\n}\n\nexport function setCallID(nextCallID) {\n callID = nextCallID;\n}\n\nfunction sanitizeConfig(config) {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos' ||\n ['undefined', 'string', 'function', 'boolean', 'number'].includes(\n typeof config\n )\n ) {\n return config;\n } else if (Array.isArray(config)) {\n return config.map(sanitizeConfig);\n } else if (config instanceof AnimatedNode) {\n return config.__nodeID;\n } else if (typeof config === 'object') {\n const output = {};\n for (const property in config) {\n if (property in config) {\n output[property] = sanitizeConfig(config[property]);\n }\n }\n return output;\n }\n // unhandled\n return config;\n}\n\nfunction runPropUpdates() {\n const visitedNodes = new Set();\n const findAndUpdateNodes = (node) => {\n if (!node) {\n console.warn('findAndUpdateNodes was passed a nullish node');\n return;\n }\n\n if (visitedNodes.has(node)) {\n return;\n } else {\n visitedNodes.add(node);\n }\n if (typeof node.update === 'function') {\n node.update();\n } else {\n const nodes = node.__getChildren();\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n findAndUpdateNodes(nodes[i]);\n }\n }\n }\n };\n for (let i = 0; i < UPDATED_NODES.length; i++) {\n const node = UPDATED_NODES[i];\n findAndUpdateNodes(node);\n }\n UPDATED_NODES.length = 0; // clear array\n propUpdatesEnqueued = null;\n loopID += 1;\n}\n\nconst scheduleUpdates =\n Platform.OS === 'web' ? requestAnimationFrame : setImmediate;\n\nexport default class AnimatedNode {\n __nodeID;\n __lastLoopID = { '': -1 };\n __memoizedValue = { '': null };\n __children = [];\n\n constructor(nodeConfig, inputNodes) {\n this.__nodeID = ++nodeCount;\n this.__nodeConfig = sanitizeConfig(nodeConfig);\n this.__initialized = false;\n this.__inputNodes =\n inputNodes && inputNodes.filter((node) => node instanceof AnimatedNode);\n }\n\n toString() {\n return `AnimatedNode, id: ${this.__nodeID}`;\n }\n\n __attach() {\n this.__nativeInitialize();\n\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__addChild(this);\n }\n }\n }\n\n __detach() {\n const nodes = this.__inputNodes;\n\n if (nodes) {\n for (let i = 0, l = nodes.length; i < l; i++) {\n nodes[i].__removeChild(this);\n }\n }\n\n this.__nativeTearDown();\n }\n\n __getValue() {\n if (!(callID in this.__lastLoopID) || this.__lastLoopID[callID] < loopID) {\n this.__lastLoopID[callID] = loopID;\n const result = this.__onEvaluate();\n this.__memoizedValue[callID] = result;\n return result;\n }\n return this.__memoizedValue[callID];\n }\n\n __forceUpdateCache(newValue) {\n this.__memoizedValue[callID] = newValue;\n this.__markUpdated();\n }\n\n __dangerouslyRescheduleEvaluate() {\n this.__lastLoopID[callID] = -1;\n this.__markUpdated();\n }\n\n __markUpdated() {\n UPDATED_NODES.push(this);\n if (!propUpdatesEnqueued) {\n propUpdatesEnqueued = scheduleUpdates(runPropUpdates);\n }\n }\n\n __nativeInitialize() {\n if (!this.__initialized) {\n ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });\n this.__initialized = true;\n }\n }\n\n __nativeTearDown() {\n if (this.__initialized) {\n ReanimatedModule.dropNode(this.__nodeID);\n this.__initialized = false;\n }\n }\n\n isNativelyInitialized() {\n return this.__initialized;\n }\n\n __onEvaluate() {\n throw new Error('Missing implementation of onEvaluate');\n }\n\n __getProps() {\n return this.__getValue();\n }\n\n __getChildren() {\n return this.__children;\n }\n\n __addChild(child) {\n if (this.__children.length === 0) {\n this.__attach();\n }\n this.__children.push(child);\n child.__nativeInitialize();\n\n if (ReanimatedModule.connectNodes) {\n ReanimatedModule.connectNodes(this.__nodeID, child.__nodeID);\n } else {\n child.__dangerouslyRescheduleEvaluate();\n }\n }\n\n __removeChild(child) {\n const index = this.__children.indexOf(child);\n if (index === -1) {\n console.warn(\"Trying to remove a child that doesn't exist\");\n return;\n }\n\n if (ReanimatedModule.disconnectNodes) {\n ReanimatedModule.disconnectNodes(this.__nodeID, child.__nodeID);\n }\n\n this.__children.splice(index, 1);\n if (this.__children.length === 0) {\n this.__detach();\n }\n }\n\n _connectAnimatedView(nativeViewTag) {\n if (ReanimatedModule.connectNodeToView) {\n ReanimatedModule.connectNodeToView(this.__nodeID, nativeViewTag);\n } else {\n this.__dangerouslyRescheduleEvaluate();\n }\n }\n\n _disconnectAnimatedView(nativeViewTag) {\n ReanimatedModule.disconnectNodeFromView(this.__nodeID, nativeViewTag);\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\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) 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;","import get from 'lodash.get';\nimport isNil from 'lodash.isnil';\nimport mergeWith from 'lodash.mergewith';\nimport cloneDeep from 'lodash.clonedeep';\nimport { themePropertyMap } from './../../theme/base';\nimport {\n getClosestBreakpoint,\n findLastValidBreakpoint,\n hasValidBreakpointFormat,\n extractInObject,\n} from './../../theme/tools';\nimport { useContrastText } from '../useContrastText';\n\n/*\n Extract props from theme props and omit those from props\n*/\n/**\n *\n * @param props Props passed by the user\n * @param theme Theme object\n * @param colorModeProps `colorMode` object\n * @param componentTheme Theme for specific components\n * @param currentBreakpoint Current breakpoint values\n * @returns Extracting props from defaultProps while overriding the props that are already present\n */\nexport function extractProps(\n props: any,\n theme: any,\n {},\n componentTheme: any,\n currentBreakpoint: number\n) {\n let newProps: any = {};\n for (let property in props) {\n // If the property exists in themePropertyMap then get its value\n if (themePropertyMap[property]) {\n let propValues = extractPropertyFromFunction(\n property,\n props,\n theme,\n componentTheme\n );\n if (typeof propValues === 'string' || typeof propValues === 'number') {\n newProps[property] = propValues;\n } else if (!isNil(propValues)) {\n for (let nestedProp in propValues) {\n newProps[nestedProp] = get(\n theme,\n `${themePropertyMap[nestedProp]}.${propValues[nestedProp]}`,\n propValues[nestedProp]\n );\n }\n } else if (property === 'shadow') {\n let shadowProps = theme[themePropertyMap[property]][props[property]];\n if (!isNil(shadowProps)) {\n newProps = { ...newProps, ...shadowProps };\n }\n } else {\n newProps[property] = resolveValueWithBreakpoint(\n props[property],\n theme.breakpoints,\n currentBreakpoint,\n property\n );\n }\n } else {\n newProps[property] = resolveValueWithBreakpoint(\n props[property],\n theme.breakpoints,\n currentBreakpoint,\n property\n );\n }\n }\n return cloneDeep(newProps);\n}\n\n/*\nRemove props from defaultProps that are already present in props\n*/\nfunction filterDefaultProps(props: any, defaultProps: any) {\n let [, resultProps] = extractInObject(defaultProps, Object.keys(props));\n return resultProps;\n}\n\n/**\n * If property is functional in componentTheme, get its returned object\n *\n * @param property : name of the prop\n * @param props : all props\n * @param theme : provided theme without components\n * @param componentTheme : component specific theme\n * @returns\n */\nexport const extractPropertyFromFunction = (\n property: string,\n props: any,\n theme: any,\n componentTheme: any\n) => {\n let propValues;\n // Check if the entry in the theme is a function then calling it with all theme and props as params\n if (\n componentTheme &&\n typeof componentTheme[themePropertyMap[property]] === 'function'\n ) {\n let funcProps = componentTheme[themePropertyMap[property]]({\n theme,\n ...props,\n });\n // Check if returned object from componentTheme is a nested object\n let isNested: boolean = Object.keys(funcProps).some(function (key) {\n return funcProps[key] && typeof funcProps[key] === 'object';\n });\n // If the returned value is nested object then find the property value in it, otherwise return the whole object\n propValues = isNested\n ? { ...get(funcProps, `${props[property]}`) }\n : { ...funcProps };\n } else {\n // If the entry is any value other than function then return the whole object or value\n propValues = get(\n componentTheme,\n `${themePropertyMap[property]}.${props[property]}`\n );\n }\n return propValues;\n};\n\n/*\nMerge _props and apply contrastText color if not passed by theme or user\n*/\nexport function mergeUnderscoreProps(newProps: any, props: any) {\n const _props = Object.keys(newProps).filter((propName) =>\n propName.startsWith('_')\n );\n _props.forEach((propName: string) => {\n // Adding color based on bg contrast if no color is given\n const bg = newProps.bg ?? newProps.backgroundColor;\n const textColor = bg\n ? {\n color: useContrastText(\n bg,\n newProps[propName]?.color ?? props[propName]?.color\n ),\n }\n : {};\n // Overriding calculated props with user added props\n newProps[propName] = {\n ...textColor,\n ...newProps[propName],\n ...props[propName],\n };\n });\n return newProps;\n}\n\n/**\n *\n * Checks the property and resolves it if it has breakpoints\n * @param values : value from props\n * @param currentBreakpoint : current value for which breakpoint will be calculated\n * @param property : property name\n * @returns\n */\nexport const resolveValueWithBreakpoint = (\n values: any,\n breakpointTheme: any,\n currentBreakpoint: number,\n property: any\n) => {\n if (hasValidBreakpointFormat(values, breakpointTheme, property)) {\n // Check the last valid breakpoint value from all values\n // If current breakpoint is `md` and we have `base` then `lg`, then last value will be taken(`base` in this case)\n return findLastValidBreakpoint(values, breakpointTheme, currentBreakpoint);\n } else {\n return values;\n }\n};\n\n/**\n * Takes all prop related data and returns the props that needs to be applied to the component\n *\n * @param theme Theme object\n * @param colorModeProps Color mode information\n * @param componentTheme Theme object for the specific component\n * @param props Props passed by the user\n * @param windowWidth Width of the current window\n * @returns props to be applied\n */\nexport function calculateProps(\n theme: any,\n colorModeProps: any,\n componentTheme: any,\n props: any,\n windowWidth: any\n) {\n let currentBreakpoint = getClosestBreakpoint(theme.breakpoints, windowWidth);\n if (!props) {\n props = {};\n }\n\n let newProps: any;\n if (componentTheme) {\n // Extracting props from defaultProps\n newProps = extractProps(\n filterDefaultProps(props, componentTheme.defaultProps),\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // Extracting props from base style\n let componentBaseStyle =\n typeof componentTheme.baseStyle !== 'function'\n ? componentTheme.baseStyle\n : componentTheme.baseStyle({\n theme,\n ...newProps,\n ...props,\n ...colorModeProps,\n });\n newProps = mergeWith(\n newProps,\n componentBaseStyle,\n // @ts-ignore\n (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n }\n );\n\n const variant =\n props.variant || get(componentTheme, 'defaultProps.variant');\n // Extracting props from variant\n if (\n variant &&\n componentTheme.variants &&\n componentTheme.variants[variant]\n ) {\n const colorScheme =\n props.colorScheme || get(componentTheme, 'defaultProps.colorScheme');\n let variantProps = componentTheme.variants[variant]({\n ...props,\n ...newProps,\n colorScheme,\n theme,\n ...colorModeProps,\n });\n variantProps = extractProps(\n variantProps,\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // added this to handle order of props\n newProps = mergeWith(\n newProps,\n variantProps,\n // @ts-ignore\n (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n }\n );\n delete newProps.variant;\n delete newProps.colorScheme;\n }\n }\n // Extracting props from normal props\n let extractedProps = extractProps(\n props,\n theme,\n colorModeProps,\n componentTheme,\n currentBreakpoint\n );\n // added this to handle order of props\n // @ts-ignore\n newProps = mergeWith(newProps, extractedProps, (objValue, srcValue, key) => {\n if (!isNil(objValue)) {\n delete newProps[key];\n }\n });\n newProps = mergeUnderscoreProps(newProps, props);\n return newProps;\n}\n","export * from './MMKV';\nexport * from './hooks';\n","import ButtonMain from './Button';\nimport ButtonGroup from './ButtonGroup';\nimport type { IButtonComponentType } from './types';\n\nconst ButtonTemp: any = ButtonMain;\nButtonTemp.Group = ButtonGroup;\n\n// To add typings\nconst Button = ButtonTemp as IButtonComponentType;\n\nexport { Button };\nexport type { IButtonGroupProps, IButtonProps } from './types';\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","import { createContext } from 'react';\nimport type { PanGestureHandlerGestureEvent } from 'react-native-gesture-handler';\n\nexport interface BottomSheetGestureHandlersContextType {\n contentPanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n handlePanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n scrollablePanGestureHandler: (event: PanGestureHandlerGestureEvent) => void;\n}\n\nexport const BottomSheetGestureHandlersContext =\n createContext(null);\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","import NativeModulesProxy from '../NativeModulesProxy';\nexport default NativeModulesProxy.ExpoModulesCoreErrorManager;\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","export * from './Updates';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React from 'react';\n\n// During SSR, React emits a warning when calling useLayoutEffect.\n// Since neither useLayoutEffect nor useEffect run on the server,\n// we can suppress this by replace it with a noop on the server.\nexport const useLayoutEffect = typeof window !== 'undefined'\n ? React.useLayoutEffect\n : () => {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useSSRSafeId} from '@react-aria/ssr';\nimport {useValueEffect} from './';\n\nlet idsUpdaterMap: Map void> = new Map();\n\n/**\n * If a default is not provided, generate an id.\n * @param defaultId - Default component id.\n */\nexport function useId(defaultId?: string): string {\n let isRendering = useRef(true);\n isRendering.current = true;\n let [value, setValue] = useState(defaultId);\n let nextId = useRef(null);\n\n let res = useSSRSafeId(value);\n\n // don't memo this, we want it new each render so that the Effects always run\n let updateValue = (val) => {\n if (!isRendering.current) {\n setValue(val);\n } else {\n nextId.current = val;\n }\n };\n\n idsUpdaterMap.set(res, updateValue);\n\n useLayoutEffect(() => {\n isRendering.current = false;\n }, [updateValue]);\n\n useLayoutEffect(() => {\n let r = res;\n return () => {\n idsUpdaterMap.delete(r);\n };\n }, [res]);\n\n useEffect(() => {\n let newId = nextId.current;\n if (newId) {\n setValue(newId);\n nextId.current = null;\n }\n }, [setValue, updateValue]);\n return res;\n}\n\n/**\n * Merges two ids.\n * Different ids will trigger a side-effect and re-render components hooked up with `useId`.\n */\nexport function mergeIds(idA: string, idB: string): string {\n if (idA === idB) {\n return idA;\n }\n\n let setIdA = idsUpdaterMap.get(idA);\n if (setIdA) {\n setIdA(idB);\n return idB;\n }\n\n let setIdB = idsUpdaterMap.get(idB);\n if (setIdB) {\n setIdB(idA);\n return idA;\n }\n\n return idB;\n}\n\n/**\n * Used to generate an id, and after render, check if that id is rendered so we know\n * if we can use it in places such as labelledby.\n * @param depArray - When to recalculate if the id is in the DOM.\n */\nexport function useSlotId(depArray: ReadonlyArray = []): string {\n let id = useId();\n let [resolvedId, setResolvedId] = useValueEffect(id);\n let updateId = useCallback(() => {\n setResolvedId(function *() {\n yield id;\n\n yield document.getElementById(id) ? id : null;\n });\n }, [id, setResolvedId]);\n\n useLayoutEffect(updateId, [id, updateId, ...depArray]);\n\n return resolvedId;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Calls all functions in the order they were chained with the same arguments.\n */\nexport function chain(...callbacks: any[]): (...args: any[]) => void {\n return (...args: any[]) => {\n for (let callback of callbacks) {\n if (typeof callback === 'function') {\n callback(...args);\n }\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {chain} from './chain';\nimport clsx from 'clsx';\nimport {mergeIds} from './useId';\n\ninterface Props {\n [key: string]: any\n}\n\n// taken from: https://stackoverflow.com/questions/51603250/typescript-3-parameter-list-intersection-type/51604379#51604379\ntype TupleTypes = { [P in keyof T]: T[P] } extends { [key: number]: infer V } ? V : never;\n// eslint-disable-next-line no-undef, @typescript-eslint/no-unused-vars\ntype UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;\n\n/**\n * Merges multiple props objects together. Event handlers are chained,\n * classNames are combined, and ids are deduplicated - different ids\n * will trigger a side-effect and re-render components hooked up with `useId`.\n * For all other props, the last prop object overrides all previous ones.\n * @param args - Multiple sets of props to merge together.\n */\nexport function mergeProps(...args: T): UnionToIntersection> {\n // Start with a base clone of the first argument. This is a lot faster than starting\n // with an empty object and adding properties as we go.\n let result: Props = {...args[0]};\n for (let i = 1; i < args.length; i++) {\n let props = args[i];\n for (let key in props) {\n let a = result[key];\n let b = props[key];\n\n // Chain events\n if (\n typeof a === 'function' &&\n typeof b === 'function' &&\n // This is a lot faster than a regex.\n key[0] === 'o' &&\n key[1] === 'n' &&\n key.charCodeAt(2) >= /* 'A' */ 65 &&\n key.charCodeAt(2) <= /* 'Z' */ 90\n ) {\n result[key] = chain(a, b);\n\n // Merge classnames, sometimes classNames are empty string which eval to false, so we just need to do a type check\n } else if (\n (key === 'className' || key === 'UNSAFE_className') &&\n typeof a === 'string' &&\n typeof b === 'string'\n ) {\n result[key] = clsx(a, b);\n } else if (key === 'id' && a && b) {\n result.id = mergeIds(a, b);\n // Override others\n } else {\n result[key] = b !== undefined ? b : a;\n }\n }\n }\n\n return result as UnionToIntersection>;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\n\nconst DOMPropNames = new Set([\n 'id'\n]);\n\nconst labelablePropNames = new Set([\n 'aria-label',\n 'aria-labelledby',\n 'aria-describedby',\n 'aria-details'\n]);\n\ninterface Options {\n /**\n * If labelling associated aria properties should be included in the filter.\n */\n labelable?: boolean,\n /**\n * A Set of other property names that should be included in the filter.\n */\n propNames?: Set\n}\n\nconst propRe = /^(data-.*)$/;\n\n/**\n * Filters out all props that aren't valid DOM props or defined via override prop obj.\n * @param props - The component props to be filtered.\n * @param opts - Props to override.\n */\nexport function filterDOMProps(props: DOMProps & AriaLabelingProps, opts: Options = {}): DOMProps & AriaLabelingProps {\n let {labelable, propNames} = opts;\n let filteredProps: HTMLAttributes = {};\n\n for (const prop in props) {\n if (\n Object.prototype.hasOwnProperty.call(props, prop) && (\n DOMPropNames.has(prop) ||\n (labelable && labelablePropNames.has(prop)) ||\n propNames?.has(prop) ||\n propRe.test(prop)\n )\n ) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// This is a polyfill for element.focus({preventScroll: true});\n// Currently necessary for Safari and old Edge:\n// https://caniuse.com/#feat=mdn-api_htmlelement_focus_preventscroll_option\n// See https://bugs.webkit.org/show_bug.cgi?id=178583\n//\n\n// Original licensing for the following methods can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/calvellido/focus-options-polyfill\n\ninterface ScrollableElement {\n element: HTMLElement,\n scrollTop: number,\n scrollLeft: number\n}\n\nexport function focusWithoutScrolling(element: HTMLElement) {\n if (supportsPreventScroll()) {\n element.focus({preventScroll: true});\n } else {\n let scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\n\nlet supportsPreventScrollCached: boolean = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n // Ignore\n }\n }\n\n return supportsPreventScrollCached;\n}\n\nfunction getScrollableElements(element: HTMLElement): ScrollableElement[] {\n var parent = element.parentNode;\n var scrollableElements: ScrollableElement[] = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (\n parent.offsetHeight < parent.scrollHeight ||\n parent.offsetWidth < parent.scrollWidth\n ) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction restoreScrollPosition(scrollableElements: ScrollableElement[]) {\n for (let {element, scrollTop, scrollLeft} of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getOffset(element, reverse, orientation = 'horizontal') {\n let rect = element.getBoundingClientRect();\n if (reverse) {\n return orientation === 'horizontal' ? rect.right : rect.bottom;\n }\n return orientation === 'horizontal' ? rect.left : rect.top;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We store a global list of elements that are currently transitioning,\n// mapped to a set of CSS properties that are transitioning for that element.\n// This is necessary rather than a simple count of transitions because of browser\n// bugs, e.g. Chrome sometimes fires both transitionend and transitioncancel rather\n// than one or the other. So we need to track what's actually transitioning so that\n// we can ignore these duplicate events.\nlet transitionsByElement = new Map>();\n\n// A list of callbacks to call once there are no transitioning elements.\nlet transitionCallbacks = new Set<() => void>();\n\nfunction setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n let onTransitionStart = (e: TransitionEvent) => {\n // Add the transitioning property to the list for this element.\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = new Set();\n transitionsByElement.set(e.target, transitions);\n\n // The transitioncancel event must be registered on the element itself, rather than as a global\n // event. This enables us to handle when the node is deleted from the document while it is transitioning.\n // In that case, the cancel event would have nowhere to bubble to so we need to handle it directly.\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n let onTransitionEnd = (e: TransitionEvent) => {\n // Remove property from list of transitioning properties.\n let properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n // If empty, remove transitioncancel event, and remove the element from the list of transitioning elements.\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n transitionsByElement.delete(e.target);\n }\n\n // If no transitioning elements, call all of the queued callbacks.\n if (transitionsByElement.size === 0) {\n for (let cb of transitionCallbacks) {\n cb();\n }\n\n transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn: () => void) {\n // Wait one frame to see if an animation starts, e.g. a transition on mount.\n requestAnimationFrame(() => {\n // If no transitions are running, call the function immediately.\n // Otherwise, add it to a list of callbacks to run at the end of the animation.\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {getOffset} from './getOffset';\nimport {Orientation} from '@react-types/shared';\nimport React, {HTMLAttributes, MutableRefObject, useRef} from 'react';\n\ninterface UseDrag1DProps {\n containerRef: MutableRefObject,\n reverse?: boolean,\n orientation?: Orientation,\n onHover?: (hovered: boolean) => void,\n onDrag?: (dragging: boolean) => void,\n onPositionChange?: (position: number) => void,\n onIncrement?: () => void,\n onDecrement?: () => void,\n onIncrementToMax?: () => void,\n onDecrementToMin?: () => void,\n onCollapseToggle?: () => void\n}\n\n// Keep track of elements that we are currently handling dragging for via useDrag1D.\n// If there's an ancestor and a descendant both using useDrag1D(), and the user starts\n// dragging the descendant, we don't want useDrag1D events to fire for the ancestor.\nconst draggingElements: HTMLElement[] = [];\n\n// created for splitview, this should be reusable for things like sliders/dials\n// It also handles keyboard events on the target allowing for increment/decrement by a given stepsize as well as minifying/maximizing and toggling between minified and previous size\n// It can also take a 'reverse' param to say if we should measure from the right/bottom instead of the top/left\n// It can also handle either a vertical or horizontal movement, but not both at the same time\n\nexport function useDrag1D(props: UseDrag1DProps): HTMLAttributes {\n console.warn('useDrag1D is deprecated, please use `useMove` instead https://react-spectrum.adobe.com/react-aria/useMove.html');\n let {containerRef, reverse, orientation, onHover, onDrag, onPositionChange, onIncrement, onDecrement, onIncrementToMax, onDecrementToMin, onCollapseToggle} = props;\n let getPosition = (e) => orientation === 'horizontal' ? e.clientX : e.clientY;\n let getNextOffset = (e: MouseEvent) => {\n let containerOffset = getOffset(containerRef.current, reverse, orientation);\n let mouseOffset = getPosition(e);\n let nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n let dragging = useRef(false);\n let prevPosition = useRef(0);\n\n // Keep track of the current handlers in a ref so that the events can access them.\n let handlers = useRef({onPositionChange, onDrag});\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n\n let onMouseDragged = (e: MouseEvent) => {\n e.preventDefault();\n let nextOffset = getNextOffset(e);\n if (!dragging.current) {\n dragging.current = true;\n if (handlers.current.onDrag) {\n handlers.current.onDrag(true);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n }\n if (prevPosition.current === nextOffset) {\n return;\n }\n prevPosition.current = nextOffset;\n if (onPositionChange) {\n onPositionChange(nextOffset);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n dragging.current = false;\n let nextOffset = getNextOffset(e);\n if (handlers.current.onDrag) {\n handlers.current.onDrag(false);\n }\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n\n draggingElements.splice(draggingElements.indexOf(target), 1);\n window.removeEventListener('mouseup', onMouseUp, false);\n window.removeEventListener('mousemove', onMouseDragged, false);\n };\n\n let onMouseDown = (e: React.MouseEvent) => {\n const target = e.currentTarget;\n // If we're already handling dragging on a descendant with useDrag1D, then\n // we don't want to handle the drag motion on this target as well.\n if (draggingElements.some(elt => target.contains(elt))) {\n return;\n }\n draggingElements.push(target);\n window.addEventListener('mousemove', onMouseDragged, false);\n window.addEventListener('mouseup', onMouseUp, false);\n };\n\n let onMouseEnter = () => {\n if (onHover) {\n onHover(true);\n }\n };\n\n let onMouseOut = () => {\n if (onHover) {\n onHover(false);\n }\n };\n\n let onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n break;\n case 'Right':\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Down':\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n if (onDecrementToMin) {\n onDecrementToMin();\n }\n break;\n case 'End':\n e.preventDefault();\n if (onIncrementToMax) {\n onIncrementToMax();\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (onCollapseToggle) {\n onCollapseToggle();\n }\n break;\n }\n };\n\n return {onMouseDown, onMouseEnter, onMouseOut, onKeyDown};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useEffect, useRef} from 'react';\n\ninterface GlobalListeners {\n addGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void,\n addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void,\n removeGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void,\n removeAllGlobalListeners(): void\n}\n\nexport function useGlobalListeners(): GlobalListeners {\n let globalListeners = useRef(new Map());\n let addGlobalListener = useCallback((eventTarget, type, listener, options) => {\n // Make sure we remove the listener after it is called with the `once` option.\n let fn = options?.once ? (...args) => {\n globalListeners.current.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.current.set(listener, {type, eventTarget, fn, options});\n eventTarget.addEventListener(type, listener, options);\n }, []);\n let removeGlobalListener = useCallback((eventTarget, type, listener, options) => {\n let fn = globalListeners.current.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.current.delete(listener);\n }, []);\n let removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n }, [removeGlobalListener]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return removeAllGlobalListeners;\n }, [removeAllGlobalListeners]);\n\n return {addGlobalListener, removeGlobalListener, removeAllGlobalListeners};\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps} from '@react-types/shared';\nimport {useId} from './useId';\n\n/**\n * Merges aria-label and aria-labelledby into aria-labelledby when both exist.\n * @param props - Aria label props.\n * @param defaultLabel - Default value for aria-label when not present.\n */\nexport function useLabels(props: DOMProps & AriaLabelingProps, defaultLabel?: string): DOMProps & AriaLabelingProps {\n let {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n } = props;\n\n // If there is both an aria-label and aria-labelledby,\n // combine them by pointing to the element itself.\n id = useId(id);\n if (labelledBy && label) {\n let ids = new Set([...labelledBy.trim().split(/\\s+/), id]);\n labelledBy = [...ids].join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n // If no labels are provided, use the default\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, useRef} from 'react';\nimport {useLayoutEffect} from './';\n\n/**\n * Offers an object ref for a given callback ref or an object ref. Especially\n * helfpul when passing forwarded refs (created using `React.forwardRef`) to\n * React Aria Hooks.\n *\n * @param forwardedRef The original ref intended to be used.\n * @returns An object ref that updates the given ref.\n * @see https://reactjs.org/docs/forwarding-refs.html\n */\nexport function useObjectRef(forwardedRef?: ((instance: T | null) => void) | MutableRefObject | null): MutableRefObject {\n const objRef = useRef();\n\n /**\n * We're using `useLayoutEffect` here instead of `useEffect` because we want\n * to make sure that the `ref` value is up to date before other places in the\n * the execution cycle try to read it.\n */\n useLayoutEffect(() => {\n if (!forwardedRef) {\n return;\n }\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(objRef.current);\n } else {\n forwardedRef.current = objRef.current;\n }\n }, [forwardedRef]);\n\n return objRef;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {EffectCallback, useEffect, useRef} from 'react';\n\n// Like useEffect, but only called for updates after the initial render.\nexport function useUpdateEffect(effect: EffectCallback, dependencies: any[]) {\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencies);\n}\n","import {RefObject, useEffect} from 'react';\n\nfunction hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\ntype useResizeObserverOptionsType = {\n ref: RefObject,\n onResize: () => void\n}\n\nexport function useResizeObserver(options: useResizeObserverOptionsType) {\n const {ref, onResize} = options;\n\n useEffect(() => {\n let element = ref?.current;\n if (!element) {\n return;\n }\n\n if (!hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n\n const resizeObserverInstance = new window.ResizeObserver((entries) => {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n\n return () => {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n\n }, [onResize, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {MutableRefObject, RefObject} from 'react';\nimport {useLayoutEffect} from './';\n\ninterface ContextValue {\n ref?: MutableRefObject\n}\n\n// Syncs ref from context with ref passed to hook\nexport function useSyncRef(context: ContextValue, ref: RefObject) {\n useLayoutEffect(() => {\n if (context && context.ref && ref) {\n context.ref.current = ref.current;\n return () => {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport function getScrollParent(node: Element): Element {\n while (node && !isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction isScrollable(node: Element): boolean {\n let style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useEffect, useState} from 'react';\n\ninterface ViewportSize {\n width: number,\n height: number\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nexport function useViewportSize(): ViewportSize {\n let [size, setSize] = useState(() => getViewportSize());\n\n useEffect(() => {\n // Use visualViewport api to track available height even on iOS virtual keyboard opening\n let onResize = () => {\n setSize(size => {\n let newSize = getViewportSize();\n if (newSize.width === size.width && newSize.height === size.height) {\n return size;\n }\n return newSize;\n });\n };\n\n if (!visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n visualViewport.addEventListener('resize', onResize);\n }\n\n return () => {\n if (!visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n\n return size;\n}\n\nfunction getViewportSize(): ViewportSize {\n return {\n width: visualViewport?.width || window.innerWidth,\n height: visualViewport?.height || window.innerHeight\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps} from '@react-types/shared';\nimport {useLayoutEffect} from './useLayoutEffect';\nimport {useState} from 'react';\n\nlet descriptionId = 0;\nconst descriptionNodes = new Map();\n\nexport function useDescription(description: string): AriaLabelingProps {\n let [id, setId] = useState(null);\n\n useLayoutEffect(() => {\n if (!description) {\n return;\n }\n\n let desc = descriptionNodes.get(description);\n if (!desc) {\n let id = `react-aria-description-${descriptionId++}`;\n setId(id);\n\n let node = document.createElement('div');\n node.id = id;\n node.style.display = 'none';\n node.textContent = description;\n document.body.appendChild(node);\n desc = {refCount: 0, element: node};\n descriptionNodes.set(description, desc);\n } else {\n setId(desc.element.id);\n }\n\n desc.refCount++;\n return () => {\n if (--desc.refCount === 0) {\n desc.element.remove();\n descriptionNodes.delete(description);\n }\n };\n }, [description]);\n\n return {\n 'aria-describedby': description ? id : undefined\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction testUserAgent(re: RegExp) {\n if (typeof window === 'undefined' || window.navigator == null) {\n return false;\n }\n return (\n window.navigator['userAgentData']?.brands.some((brand: {brand: string, version: string}) => re.test(brand.brand))\n ) ||\n re.test(window.navigator.userAgent);\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test((window.navigator['userAgentData'] || window.navigator).platform)\n : false;\n}\n\nexport function isMac() {\n return testPlatform(/^Mac/i);\n}\n\nexport function isIPhone() {\n return testPlatform(/^iPhone/i);\n}\n\nexport function isIPad() {\n return testPlatform(/^iPad/i) ||\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n (isMac() && navigator.maxTouchPoints > 1);\n}\n\nexport function isIOS() {\n return isIPhone() || isIPad();\n}\n\nexport function isAppleDevice() {\n return isMac() || isIOS();\n}\n\nexport function isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\n\nexport function isChrome() {\n return testUserAgent(/Chrome/i);\n}\n\nexport function isAndroid() {\n return testUserAgent(/Android/i);\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect, useRef} from 'react';\n\nexport function useEvent(\n ref: RefObject,\n event: K,\n handler: (this: Document, ev: GlobalEventHandlersEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n) {\n let handlerRef = useRef(handler);\n handlerRef.current = handler;\n\n let isDisabled = handler == null;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let element = ref.current;\n let handler = (e: GlobalEventHandlersEventMap[K]) => handlerRef.current.call(this, e);\n\n element.addEventListener(event, handler, options);\n return () => {\n element.removeEventListener(event, handler, options);\n };\n }, [ref, event, options, isDisabled]);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Dispatch, useCallback, useRef, useState} from 'react';\nimport {useLayoutEffect} from './';\n\ntype SetValueAction = (prev: S) => Generator;\n\n// This hook works like `useState`, but when setting the value, you pass a generator function\n// that can yield multiple values. Each yielded value updates the state and waits for the next\n// layout effect, then continues the generator. This allows sequential updates to state to be\n// written linearly.\nexport function useValueEffect(defaultValue: S | (() => S)): [S, Dispatch>] {\n let [value, setValue] = useState(defaultValue);\n let valueRef = useRef(value);\n let effect = useRef(null);\n\n valueRef.current = value;\n\n // Store the function in a ref so we can always access the current version\n // which has the proper `value` in scope.\n let nextRef = useRef(null);\n nextRef.current = () => {\n // Run the generator to the next yield.\n let newValue = effect.current.next();\n\n // If the generator is done, reset the effect.\n if (newValue.done) {\n effect.current = null;\n return;\n }\n\n // If the value is the same as the current value,\n // then continue to the next yield. Otherwise,\n // set the value in state and wait for the next layout effect.\n if (value === newValue.value) {\n nextRef.current();\n } else {\n setValue(newValue.value);\n }\n };\n\n useLayoutEffect(() => {\n // If there is an effect currently running, continue to the next yield.\n if (effect.current) {\n nextRef.current();\n }\n });\n\n let queue = useCallback(fn => {\n effect.current = fn(valueRef.current);\n nextRef.current();\n }, [effect, nextRef]);\n\n return [value, queue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Scrolls `scrollView` so that `element` is visible.\n * Similar to `element.scrollIntoView({block: 'nearest'})` (not supported in Edge),\n * but doesn't affect parents above `scrollView`.\n */\nexport function scrollIntoView(scrollView: HTMLElement, element: HTMLElement) {\n let offsetX = relativeOffset(scrollView, element, 'left');\n let offsetY = relativeOffset(scrollView, element, 'top');\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n let maxX = x + scrollView.offsetWidth;\n let maxY = y + scrollView.offsetHeight;\n\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\n\n/**\n * Computes the offset left or top from child to ancestor by accumulating\n * offsetLeft or offsetTop through intervening offsetParents.\n */\nfunction relativeOffset(ancestor: HTMLElement, child: HTMLElement, axis: 'left'|'top') {\n const prop = axis === 'left' ? 'offsetLeft' : 'offsetTop';\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n // Stop once we have found the ancestor we are interested in.\n break;\n } else if (child.offsetParent.contains(ancestor)) {\n // If the ancestor is not `position:relative`, then we stop at\n // _its_ offset parent, and we subtract off _its_ offset, so that\n // we end up with the proper offset from child to ancestor.\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent as HTMLElement;\n }\n return sum;\n}\n","export default function _extends() {\n _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 };\n\n return _extends.apply(this, arguments);\n}","/* global _WORKLET _getCurrentTime _frameTimestamp _eventTimestamp, _setGlobalConsole */\nimport NativeReanimatedModule from './NativeReanimated';\nimport { Platform } from 'react-native';\nimport { nativeShouldBeMock, shouldBeUseWeb, isWeb } from './PlatformChecker';\nif (global._setGlobalConsole === undefined) {\n // it can happen when Reanimated plugin wasn't added, but the user uses the only API from version 1\n global._setGlobalConsole = () => {\n // noop\n };\n}\nconst testWorklet = () => {\n 'worklet';\n};\nexport const checkPluginState = (throwError = true) => {\n if (!testWorklet.__workletHash && !shouldBeUseWeb()) {\n if (throwError) {\n throw new Error(\"Reanimated 2 failed to create a worklet, maybe you forgot to add Reanimated's babel plugin?\");\n }\n return false;\n }\n return true;\n};\nexport const isConfigured = (throwError = false) => {\n return checkPluginState(throwError);\n};\nexport const isConfiguredCheck = () => {\n if (!isConfigured(true)) {\n throw new Error('If you want to use Reanimated 2 then go through our installation steps https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation');\n }\n};\nfunction pushFrame(frame) {\n NativeReanimatedModule.pushFrame(frame);\n}\nexport function requestFrame(frame) {\n 'worklet';\n if (NativeReanimatedModule.native) {\n requestAnimationFrame(frame);\n }\n else {\n pushFrame(frame);\n }\n}\nglobal._WORKLET = false;\nglobal._log = function (s) {\n console.log(s);\n};\nexport function runOnUI(worklet) {\n return makeShareable(worklet);\n}\nexport function makeShareable(value) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeShareable(value);\n}\nexport function getViewProp(viewTag, propName) {\n return new Promise((resolve, reject) => {\n return NativeReanimatedModule.getViewProp(viewTag, propName, (result) => {\n if (typeof result === 'string' && result.substr(0, 6) === 'error:') {\n reject(result);\n }\n else {\n resolve(result);\n }\n });\n });\n}\nlet _getTimestamp;\nif (nativeShouldBeMock()) {\n _getTimestamp = () => {\n return NativeReanimatedModule.getTimestamp();\n };\n}\nelse {\n _getTimestamp = () => {\n 'worklet';\n if (_frameTimestamp) {\n return _frameTimestamp;\n }\n if (_eventTimestamp) {\n return _eventTimestamp;\n }\n return _getCurrentTime();\n };\n}\nexport function getTimestamp() {\n 'worklet';\n if (Platform.OS === 'web') {\n return NativeReanimatedModule.getTimestamp();\n }\n return _getTimestamp();\n}\nfunction workletValueSetter(value) {\n 'worklet';\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n value.onFrame !== undefined)) {\n const animation = typeof value === 'function'\n ? value()\n : value;\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n // this happens when the animation's target value(stored in animation.current until animation.onStart is called) is set to the same value as a current one(this._value)\n // built in animations that are not higher order(withTiming, withSpring) hold target value in .current\n if (this._value === animation.current && !animation.isHigherOrder) {\n animation.callback && animation.callback(true);\n return;\n }\n // animated set\n const initializeAnimation = (timestamp) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n initializeAnimation(getTimestamp());\n const step = (timestamp) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.finished = true;\n animation.timestamp = timestamp;\n this._value = animation.current;\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n }\n else {\n requestAnimationFrame(step);\n }\n };\n this._animation = animation;\n if (_frameTimestamp) {\n // frame\n step(_frameTimestamp);\n }\n else {\n requestAnimationFrame(step);\n }\n }\n else {\n // prevent setting again to the same value\n // and triggering the mappers that treat this value as an input\n if (this._value === value) {\n return;\n }\n this._value = value;\n }\n}\n// We cannot use pushFrame\n// so we use own implementation for js\nfunction workletValueSetterJS(value) {\n const previousAnimation = this._animation;\n if (previousAnimation) {\n previousAnimation.cancelled = true;\n this._animation = null;\n }\n if (typeof value === 'function' ||\n (value !== null &&\n typeof value === 'object' &&\n value.onFrame)) {\n // animated set\n const animation = typeof value === 'function'\n ? value()\n : value;\n let initializeAnimation = (timestamp) => {\n animation.onStart(animation, this.value, timestamp, previousAnimation);\n };\n const step = (timestamp) => {\n if (animation.cancelled) {\n animation.callback && animation.callback(false /* finished */);\n return;\n }\n if (initializeAnimation) {\n initializeAnimation(timestamp);\n initializeAnimation = null; // prevent closure from keeping ref to previous animation\n }\n const finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n this._setValue && this._setValue(animation.current);\n if (finished) {\n animation.callback && animation.callback(true /* finished */);\n }\n else {\n requestFrame(step);\n }\n };\n this._animation = animation;\n requestFrame(step);\n }\n else {\n this._setValue && this._setValue(value);\n }\n}\nexport function makeMutable(value) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeMutable(value);\n}\nexport function makeRemote(object = {}) {\n isConfiguredCheck();\n return NativeReanimatedModule.makeRemote(object);\n}\nexport function startMapper(mapper, inputs = [], outputs = [], updater = () => {\n // noop\n}, viewDescriptors = []) {\n isConfiguredCheck();\n return NativeReanimatedModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);\n}\nexport function stopMapper(mapperId) {\n NativeReanimatedModule.stopMapper(mapperId);\n}\nexport function runOnJS(fun) {\n 'worklet';\n if (!_WORKLET) {\n return fun;\n }\n if (!fun.__callAsync) {\n throw new Error(\"Attempting to call runOnJS with an object that is not a host function. Using runOnJS is only possible with methods that are defined on the main React-Native Javascript thread and that aren't marked as worklets\");\n }\n else {\n return fun.__callAsync;\n }\n}\nNativeReanimatedModule.installCoreFunctions(NativeReanimatedModule.native\n ? workletValueSetter\n : workletValueSetterJS);\nif (!isWeb() && isConfigured()) {\n const capturableConsole = console;\n runOnUI(() => {\n 'worklet';\n const console = {\n debug: runOnJS(capturableConsole.debug),\n log: runOnJS(capturableConsole.log),\n warn: runOnJS(capturableConsole.warn),\n error: runOnJS(capturableConsole.error),\n info: runOnJS(capturableConsole.info),\n };\n _setGlobalConsole(console);\n if (global.performance == null) {\n global.performance = {\n now: global._chronoNow,\n }; // due to conflict with lib.dom.d.ts -> Performance\n }\n })();\n}\nlet featuresConfig = {\n enableLayoutAnimations: false,\n setByUser: false,\n};\nexport function enableLayoutAnimations(flag, isCallByUser = true) {\n if (isCallByUser) {\n featuresConfig = {\n enableLayoutAnimations: flag,\n setByUser: true,\n };\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n else if (!featuresConfig.setByUser &&\n featuresConfig.enableLayoutAnimations !== flag) {\n featuresConfig.enableLayoutAnimations = flag;\n NativeReanimatedModule.enableLayoutAnimations(flag);\n }\n}\nexport function configureProps(uiProps, nativeProps) {\n if (!nativeShouldBeMock()) {\n NativeReanimatedModule.configureProps(uiProps, nativeProps);\n }\n}\nexport function jestResetJsReanimatedModule() {\n NativeReanimatedModule.jestResetModule();\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\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;","/**\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};","/**\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) 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 var _this = this;\n\n listeners[type] = listeners[type] || [];\n listeners[type].push(handler);\n return {\n remove: function remove() {\n _this.removeEventListener(type, handler);\n }\n };\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}","/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nconst PERCENTAGE = NUMBER + '%';\nfunction call(...args) {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers = {};\nconst uiCachedMatchers = !isConfigured() ? {} : makeRemote({});\nfunction getMatchers() {\n 'worklet';\n const cachedMatchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\n cachedMatchers.hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\n cachedMatchers.hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\nfunction hue2rgb(p, q, t) {\n 'worklet';\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}\nfunction hslToRgb(h, s, l) {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n return ((Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8));\n}\nfunction parse255(str) {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\nfunction parse360(str) {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\nfunction parse1(str) {\n 'worklet';\n const num = Number.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}\nfunction parsePercentage(str) {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\nconst names = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\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 });\nfunction normalizeColor(color) {\n 'worklet';\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n if (typeof color !== 'string') {\n return null;\n }\n const matchers = getMatchers();\n let match;\n // Ordered based on occurrences on Facebook codebase\n if ((match = (_a = matchers === null || matchers === void 0 ? void 0 : matchers.hex6) === null || _a === void 0 ? void 0 : _a.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n if (names[color] !== undefined) {\n return names[color];\n }\n if ((match = (_b = matchers === null || matchers === void 0 ? void 0 : matchers.rgb) === null || _b === void 0 ? void 0 : _b.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0);\n }\n if ((match = (_c = matchers === null || matchers === void 0 ? void 0 : matchers.rgba) === null || _c === void 0 ? void 0 : _c.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0);\n }\n if ((match = (_d = matchers === null || matchers === void 0 ? void 0 : matchers.hex3) === null || _d === void 0 ? void 0 : _d.exec(color))) {\n return (Number.parseInt(match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16) >>> 0);\n }\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = (_e = matchers === null || matchers === void 0 ? void 0 : matchers.hex8) === null || _e === void 0 ? void 0 : _e.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n if ((match = (_f = matchers === null || matchers === void 0 ? void 0 : matchers.hex4) === null || _f === void 0 ? void 0 : _f.exec(color))) {\n return (Number.parseInt(match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16) >>> 0);\n }\n if ((match = (_g = matchers === null || matchers === void 0 ? void 0 : matchers.hsl) === null || _g === void 0 ? void 0 : _g.exec(color))) {\n return ((hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0);\n }\n if ((match = (_h = matchers === null || matchers === void 0 ? void 0 : matchers.hsla) === null || _h === void 0 ? void 0 : _h.exec(color))) {\n return ((hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0);\n }\n return null;\n}\nexport const opacity = (c) => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\nexport const red = (c) => {\n 'worklet';\n return (c >> 16) & 255;\n};\nexport const green = (c) => {\n 'worklet';\n return (c >> 8) & 255;\n};\nexport const blue = (c) => {\n 'worklet';\n return c & 255;\n};\nexport const rgbaColor = (r, g, b, alpha = 1) => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n const c = Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\nexport function RGBtoHSV(r, g, b) {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n let h;\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\nfunction HSVtoRGB(h, s, v) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\nexport const hsvToColor = (h, s, v) => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b);\n};\nexport function processColorInitially(color) {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n let normalizedColor = normalizeColor(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\nexport function isColor(value) {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\nexport function processColor(color) {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n return normalizedColor;\n}\nexport function convertToHSVA(color) {\n 'worklet';\n const processedColor = processColorInitially(color); // argb;\n const a = (processedColor >>> 24) / 255;\n const r = (processedColor << 8) >>> 24;\n const g = (processedColor << 16) >>> 24;\n const b = (processedColor << 24) >>> 24;\n const { h, s, v } = RGBtoHSV(r, g, b);\n return [h, s, v, a];\n}\nexport function toRGBA(HSVA) {\n 'worklet';\n const { r, g, b } = HSVtoRGB(HSVA[0], HSVA[1], HSVA[2]);\n return `rgba(${r}, ${g}, ${b}, ${HSVA[3]})`;\n}\n","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\n\nfunction _extends() {\n _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 };\n\n return _extends.apply(this, arguments);\n}\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\nfunction _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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar SUSPENSE_PROMISE = Symbol();\nvar isSuspensePromise = function isSuspensePromise(promise) {\n return !!promise[SUSPENSE_PROMISE];\n};\nvar isSuspensePromiseAlreadyCancelled = function isSuspensePromiseAlreadyCancelled(suspensePromise) {\n return !suspensePromise[SUSPENSE_PROMISE].c;\n};\nvar cancelSuspensePromise = function cancelSuspensePromise(suspensePromise) {\n var _suspensePromise$SUSP, _suspensePromise$SUSP2;\n\n (_suspensePromise$SUSP = (_suspensePromise$SUSP2 = suspensePromise[SUSPENSE_PROMISE]).c) == null ? void 0 : _suspensePromise$SUSP.call(_suspensePromise$SUSP2);\n};\nvar isEqualSuspensePromise = function isEqualSuspensePromise(oldSuspensePromise, newSuspensePromise) {\n var oldOriginalPromise = oldSuspensePromise[SUSPENSE_PROMISE].o;\n var newOriginalPromise = newSuspensePromise[SUSPENSE_PROMISE].o;\n return oldOriginalPromise === newOriginalPromise || oldSuspensePromise === newOriginalPromise || isSuspensePromise(oldOriginalPromise) && isEqualSuspensePromise(oldOriginalPromise, newSuspensePromise);\n};\nvar createSuspensePromise = function createSuspensePromise(promise) {\n var objectToAttach = {\n o: promise,\n c: null\n };\n var suspensePromise = new Promise(function (resolve) {\n objectToAttach.c = function () {\n objectToAttach.c = null;\n resolve();\n };\n\n promise.then(objectToAttach.c, objectToAttach.c);\n });\n suspensePromise[SUSPENSE_PROMISE] = objectToAttach;\n return suspensePromise;\n};\n\nvar hasInitialValue = function hasInitialValue(atom) {\n return 'init' in atom;\n};\n\nvar READ_ATOM = 'r';\nvar WRITE_ATOM = 'w';\nvar COMMIT_ATOM = 'c';\nvar SUBSCRIBE_ATOM = 's';\nvar RESTORE_ATOMS = 'h';\nvar DEV_SUBSCRIBE_STATE = 'n';\nvar DEV_GET_MOUNTED_ATOMS = 'l';\nvar DEV_GET_ATOM_STATE = 'a';\nvar DEV_GET_MOUNTED = 'm';\nvar createStore = function createStore(initialValues) {\n var _ref4;\n\n var committedAtomStateMap = new WeakMap();\n var mountedMap = new WeakMap();\n var pendingMap = new Map();\n var stateListeners;\n var mountedAtoms;\n\n if (process.env.NODE_ENV !== \"production\") {\n stateListeners = new Set();\n mountedAtoms = new Set();\n }\n\n if (initialValues) {\n for (var _iterator = _createForOfIteratorHelperLoose(initialValues), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n atom = _step$value[0],\n value = _step$value[1];\n var atomState = {\n v: value,\n r: 0,\n d: new Map()\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n Object.freeze(atomState);\n\n if (!hasInitialValue(atom)) {\n console.warn('Found initial value for derived atom which can cause unexpected behavior', atom);\n }\n }\n\n committedAtomStateMap.set(atom, atomState);\n }\n }\n\n var suspensePromiseCacheMap = new WeakMap();\n\n var addSuspensePromiseToCache = function addSuspensePromiseToCache(version, atom, suspensePromise) {\n var cache = suspensePromiseCacheMap.get(atom);\n\n if (!cache) {\n cache = new Map();\n suspensePromiseCacheMap.set(atom, cache);\n }\n\n suspensePromise.then(function () {\n if (cache.get(version) === suspensePromise) {\n cache.delete(version);\n\n if (!cache.size) {\n suspensePromiseCacheMap.delete(atom);\n }\n }\n });\n cache.set(version, suspensePromise);\n };\n\n var cancelAllSuspensePromiseInCache = function cancelAllSuspensePromiseInCache(atom) {\n var versionSet = new Set();\n var cache = suspensePromiseCacheMap.get(atom);\n\n if (cache) {\n suspensePromiseCacheMap.delete(atom);\n cache.forEach(function (suspensePromise, version) {\n cancelSuspensePromise(suspensePromise);\n versionSet.add(version);\n });\n }\n\n return versionSet;\n };\n\n var versionedAtomStateMapMap = new WeakMap();\n\n var getVersionedAtomStateMap = function getVersionedAtomStateMap(version) {\n var versionedAtomStateMap = versionedAtomStateMapMap.get(version);\n\n if (!versionedAtomStateMap) {\n versionedAtomStateMap = new Map();\n versionedAtomStateMapMap.set(version, versionedAtomStateMap);\n }\n\n return versionedAtomStateMap;\n };\n\n var getAtomState = function getAtomState(version, atom) {\n if (version) {\n var versionedAtomStateMap = getVersionedAtomStateMap(version);\n\n var _atomState = versionedAtomStateMap.get(atom);\n\n if (!_atomState) {\n _atomState = getAtomState(version.p, atom);\n\n if (_atomState) {\n if ('p' in _atomState) {\n _atomState.p.then(function () {\n return versionedAtomStateMap.delete(atom);\n });\n }\n\n versionedAtomStateMap.set(atom, _atomState);\n }\n }\n\n return _atomState;\n }\n\n return committedAtomStateMap.get(atom);\n };\n\n var setAtomState = function setAtomState(version, atom, atomState) {\n if (process.env.NODE_ENV !== \"production\") {\n Object.freeze(atomState);\n }\n\n if (version) {\n var versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.set(atom, atomState);\n } else {\n var prevAtomState = committedAtomStateMap.get(atom);\n committedAtomStateMap.set(atom, atomState);\n\n if (!pendingMap.has(atom)) {\n pendingMap.set(atom, prevAtomState);\n }\n }\n };\n\n var createReadDependencies = function createReadDependencies(version, prevReadDependencies, dependencies) {\n if (prevReadDependencies === void 0) {\n prevReadDependencies = new Map();\n }\n\n if (!dependencies) {\n return prevReadDependencies;\n }\n\n var readDependencies = new Map();\n var changed = false;\n dependencies.forEach(function (atom) {\n var _getAtomState;\n\n var revision = ((_getAtomState = getAtomState(version, atom)) == null ? void 0 : _getAtomState.r) || 0;\n readDependencies.set(atom, revision);\n\n if (prevReadDependencies.get(atom) !== revision) {\n changed = true;\n }\n });\n\n if (prevReadDependencies.size === readDependencies.size && !changed) {\n return prevReadDependencies;\n }\n\n return readDependencies;\n };\n\n var setAtomValue = function setAtomValue(version, atom, value, dependencies, suspensePromise) {\n var atomState = getAtomState(version, atom);\n\n if (atomState) {\n if (suspensePromise && (!('p' in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n\n if ('p' in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n\n var nextAtomState = {\n v: value,\n r: (atomState == null ? void 0 : atomState.r) || 0,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n\n if (!atomState || !('v' in atomState) || !Object.is(atomState.v, value)) {\n ++nextAtomState.r;\n\n if (nextAtomState.d.has(atom)) {\n nextAtomState.d = new Map(nextAtomState.d).set(atom, nextAtomState.r);\n }\n } else if (nextAtomState.d !== atomState.d && (nextAtomState.d.size !== atomState.d.size || !Array.from(nextAtomState.d.keys()).every(function (a) {\n return atomState.d.has(a);\n }))) {\n Promise.resolve().then(function () {\n flushPending(version);\n });\n }\n\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n\n var setAtomReadError = function setAtomReadError(version, atom, error, dependencies, suspensePromise) {\n var atomState = getAtomState(version, atom);\n\n if (atomState) {\n if (suspensePromise && (!('p' in atomState) || !isEqualSuspensePromise(atomState.p, suspensePromise))) {\n return atomState;\n }\n\n if ('p' in atomState) {\n cancelSuspensePromise(atomState.p);\n }\n }\n\n var nextAtomState = {\n e: error,\n r: (atomState == null ? void 0 : atomState.r) || 0,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n\n var setAtomSuspensePromise = function setAtomSuspensePromise(version, atom, suspensePromise, dependencies) {\n var atomState = getAtomState(version, atom);\n\n if (atomState && 'p' in atomState) {\n if (isEqualSuspensePromise(atomState.p, suspensePromise)) {\n return atomState;\n }\n\n cancelSuspensePromise(atomState.p);\n }\n\n addSuspensePromiseToCache(version, atom, suspensePromise);\n var nextAtomState = {\n p: suspensePromise,\n r: (atomState == null ? void 0 : atomState.r) || 0,\n d: createReadDependencies(version, atomState == null ? void 0 : atomState.d, dependencies)\n };\n setAtomState(version, atom, nextAtomState);\n return nextAtomState;\n };\n\n var setAtomPromiseOrValue = function setAtomPromiseOrValue(version, atom, promiseOrValue, dependencies) {\n if (promiseOrValue instanceof Promise) {\n var suspensePromise = createSuspensePromise(promiseOrValue.then(function (value) {\n setAtomValue(version, atom, value, dependencies, suspensePromise);\n flushPending(version);\n }).catch(function (e) {\n if (e instanceof Promise) {\n if (isSuspensePromise(e)) {\n return e.then(function () {\n readAtomState(version, atom, true);\n });\n }\n\n return e;\n }\n\n setAtomReadError(version, atom, e, dependencies, suspensePromise);\n flushPending(version);\n }));\n return setAtomSuspensePromise(version, atom, suspensePromise, dependencies);\n }\n\n return setAtomValue(version, atom, promiseOrValue, dependencies);\n };\n\n var setAtomInvalidated = function setAtomInvalidated(version, atom) {\n var atomState = getAtomState(version, atom);\n\n if (atomState) {\n var nextAtomState = _extends({}, atomState, {\n i: atomState.r\n });\n\n setAtomState(version, atom, nextAtomState);\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn('[Bug] could not invalidate non existing atom', atom);\n }\n };\n\n var readAtomState = function readAtomState(version, atom, force) {\n if (!force) {\n var _atomState2 = getAtomState(version, atom);\n\n if (_atomState2) {\n if (_atomState2.r !== _atomState2.i && 'p' in _atomState2 && !isSuspensePromiseAlreadyCancelled(_atomState2.p)) {\n return _atomState2;\n }\n\n _atomState2.d.forEach(function (_, a) {\n if (a !== atom) {\n if (!mountedMap.has(a)) {\n readAtomState(version, a);\n } else {\n var aState = getAtomState(version, a);\n\n if (aState && aState.r === aState.i) {\n readAtomState(version, a);\n }\n }\n }\n });\n\n if (Array.from(_atomState2.d).every(function (_ref) {\n var a = _ref[0],\n r = _ref[1];\n var aState = getAtomState(version, a);\n return aState && 'v' in aState && aState.r === r;\n })) {\n return _atomState2;\n }\n }\n }\n\n var dependencies = new Set();\n\n try {\n var promiseOrValue = atom.read(function (a) {\n dependencies.add(a);\n var aState = a === atom ? getAtomState(version, a) : readAtomState(version, a);\n\n if (aState) {\n if ('e' in aState) {\n throw aState.e;\n }\n\n if ('p' in aState) {\n throw aState.p;\n }\n\n return aState.v;\n }\n\n if (hasInitialValue(a)) {\n return a.init;\n }\n\n throw new Error('no atom init');\n });\n return setAtomPromiseOrValue(version, atom, promiseOrValue, dependencies);\n } catch (errorOrPromise) {\n if (errorOrPromise instanceof Promise) {\n var suspensePromise = createSuspensePromise(errorOrPromise);\n return setAtomSuspensePromise(version, atom, suspensePromise, dependencies);\n }\n\n return setAtomReadError(version, atom, errorOrPromise, dependencies);\n }\n };\n\n var readAtom = function readAtom(readingAtom, version) {\n var atomState = readAtomState(version, readingAtom);\n return atomState;\n };\n\n var addAtom = function addAtom(addingAtom) {\n var mounted = mountedMap.get(addingAtom);\n\n if (!mounted) {\n mounted = mountAtom(addingAtom);\n }\n\n return mounted;\n };\n\n var canUnmountAtom = function canUnmountAtom(atom, mounted) {\n return !mounted.l.size && (!mounted.t.size || mounted.t.size === 1 && mounted.t.has(atom));\n };\n\n var delAtom = function delAtom(deletingAtom) {\n var mounted = mountedMap.get(deletingAtom);\n\n if (mounted && canUnmountAtom(deletingAtom, mounted)) {\n unmountAtom(deletingAtom);\n }\n };\n\n var invalidateDependents = function invalidateDependents(version, atom) {\n var mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.t.forEach(function (dependent) {\n if (dependent !== atom) {\n setAtomInvalidated(version, dependent);\n invalidateDependents(version, dependent);\n }\n });\n };\n\n var writeAtomState = function writeAtomState(version, atom, update) {\n var isSync = true;\n\n var writeGetter = function writeGetter(a, options) {\n var aState = readAtomState(version, a);\n\n if ('e' in aState) {\n throw aState.e;\n }\n\n if ('p' in aState) {\n if (options != null && options.unstable_promise) {\n return aState.p.then(function () {\n return writeGetter(a, options);\n });\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.info('Reading pending atom state in write operation. We throw a promise for now.', a);\n }\n\n throw aState.p;\n }\n\n if ('v' in aState) {\n return aState.v;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('[Bug] no value found while reading atom in write operation. This is probably a bug.', a);\n }\n\n throw new Error('no value found');\n };\n\n var setter = function setter(a, v) {\n var promiseOrVoid;\n\n if (a === atom) {\n if (!hasInitialValue(a)) {\n throw new Error('atom not writable');\n }\n\n var versionSet = cancelAllSuspensePromiseInCache(a);\n versionSet.forEach(function (cancelledVersion) {\n if (cancelledVersion !== version) {\n setAtomPromiseOrValue(cancelledVersion, a, v);\n }\n });\n setAtomPromiseOrValue(version, a, v);\n invalidateDependents(version, a);\n } else {\n promiseOrVoid = writeAtomState(version, a, v);\n }\n\n if (!isSync) {\n flushPending(version);\n }\n\n return promiseOrVoid;\n };\n\n var promiseOrVoid = atom.write(writeGetter, setter, update);\n isSync = false;\n version = undefined;\n return promiseOrVoid;\n };\n\n var writeAtom = function writeAtom(writingAtom, update, version) {\n var promiseOrVoid = writeAtomState(version, writingAtom, update);\n flushPending(version);\n return promiseOrVoid;\n };\n\n var isActuallyWritableAtom = function isActuallyWritableAtom(atom) {\n return !!atom.write;\n };\n\n var mountAtom = function mountAtom(atom, initialDependent) {\n var mounted = {\n t: new Set(initialDependent && [initialDependent]),\n l: new Set()\n };\n mountedMap.set(atom, mounted);\n\n if (process.env.NODE_ENV !== \"production\") {\n mountedAtoms.add(atom);\n }\n\n var atomState = readAtomState(undefined, atom);\n atomState.d.forEach(function (_, a) {\n var aMounted = mountedMap.get(a);\n\n if (aMounted) {\n aMounted.t.add(atom);\n } else {\n if (a !== atom) {\n mountAtom(a, atom);\n }\n }\n });\n\n if (isActuallyWritableAtom(atom) && atom.onMount) {\n var setAtom = function setAtom(update) {\n return writeAtom(atom, update);\n };\n\n var onUnmount = atom.onMount(setAtom);\n\n if (onUnmount) {\n mounted.u = onUnmount;\n }\n }\n\n return mounted;\n };\n\n var unmountAtom = function unmountAtom(atom) {\n var _mountedMap$get;\n\n var onUnmount = (_mountedMap$get = mountedMap.get(atom)) == null ? void 0 : _mountedMap$get.u;\n\n if (onUnmount) {\n onUnmount();\n }\n\n mountedMap.delete(atom);\n\n if (process.env.NODE_ENV !== \"production\") {\n mountedAtoms.delete(atom);\n }\n\n var atomState = getAtomState(undefined, atom);\n\n if (atomState) {\n atomState.d.forEach(function (_, a) {\n if (a !== atom) {\n var mounted = mountedMap.get(a);\n\n if (mounted) {\n mounted.t.delete(atom);\n\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n }\n });\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn('[Bug] could not find atom state to unmount', atom);\n }\n };\n\n var mountDependencies = function mountDependencies(atom, atomState, prevReadDependencies) {\n var dependencies = new Set(atomState.d.keys());\n prevReadDependencies == null ? void 0 : prevReadDependencies.forEach(function (_, a) {\n if (dependencies.has(a)) {\n dependencies.delete(a);\n return;\n }\n\n var mounted = mountedMap.get(a);\n\n if (mounted) {\n mounted.t.delete(atom);\n\n if (canUnmountAtom(a, mounted)) {\n unmountAtom(a);\n }\n }\n });\n dependencies.forEach(function (a) {\n var mounted = mountedMap.get(a);\n\n if (mounted) {\n mounted.t.add(atom);\n } else if (mountedMap.has(atom)) {\n mountAtom(a, atom);\n }\n });\n };\n\n var flushPending = function flushPending(version) {\n if (version) {\n var versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach(function (atomState, atom) {\n if (atomState !== committedAtomStateMap.get(atom)) {\n var mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach(function (listener) {\n return listener(version);\n });\n }\n });\n return;\n }\n\n while (pendingMap.size) {\n var pending = Array.from(pendingMap);\n pendingMap.clear();\n pending.forEach(function (_ref2) {\n var atom = _ref2[0],\n prevAtomState = _ref2[1];\n var atomState = getAtomState(undefined, atom);\n\n if (atomState && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n\n var mounted = mountedMap.get(atom);\n mounted == null ? void 0 : mounted.l.forEach(function (listener) {\n return listener();\n });\n });\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n stateListeners.forEach(function (l) {\n return l();\n });\n }\n };\n\n var commitVersionedAtomStateMap = function commitVersionedAtomStateMap(version) {\n var versionedAtomStateMap = getVersionedAtomStateMap(version);\n versionedAtomStateMap.forEach(function (atomState, atom) {\n var prevAtomState = committedAtomStateMap.get(atom);\n\n if (atomState.r > ((prevAtomState == null ? void 0 : prevAtomState.r) || 0) || 'v' in atomState && atomState.r === (prevAtomState == null ? void 0 : prevAtomState.r) && atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n committedAtomStateMap.set(atom, atomState);\n\n if (atomState.d !== (prevAtomState == null ? void 0 : prevAtomState.d)) {\n mountDependencies(atom, atomState, prevAtomState == null ? void 0 : prevAtomState.d);\n }\n }\n });\n };\n\n var commitAtom = function commitAtom(_atom, version) {\n if (version) {\n commitVersionedAtomStateMap(version);\n }\n\n flushPending(undefined);\n };\n\n var subscribeAtom = function subscribeAtom(atom, callback) {\n var mounted = addAtom(atom);\n var listeners = mounted.l;\n listeners.add(callback);\n return function () {\n listeners.delete(callback);\n delAtom(atom);\n };\n };\n\n var restoreAtoms = function restoreAtoms(values, version) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(values), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n _atom2 = _step2$value[0],\n _value = _step2$value[1];\n\n if (hasInitialValue(_atom2)) {\n setAtomPromiseOrValue(version, _atom2, _value);\n invalidateDependents(version, _atom2);\n }\n }\n\n flushPending(version);\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n var _ref3;\n\n return _ref3 = {}, _ref3[READ_ATOM] = readAtom, _ref3[WRITE_ATOM] = writeAtom, _ref3[COMMIT_ATOM] = commitAtom, _ref3[SUBSCRIBE_ATOM] = subscribeAtom, _ref3[RESTORE_ATOMS] = restoreAtoms, _ref3[DEV_SUBSCRIBE_STATE] = function (l) {\n stateListeners.add(l);\n return function () {\n stateListeners.delete(l);\n };\n }, _ref3[DEV_GET_MOUNTED_ATOMS] = function () {\n return mountedAtoms.values();\n }, _ref3[DEV_GET_ATOM_STATE] = function (a) {\n return committedAtomStateMap.get(a);\n }, _ref3[DEV_GET_MOUNTED] = function (a) {\n return mountedMap.get(a);\n }, _ref3;\n }\n\n return _ref4 = {}, _ref4[READ_ATOM] = readAtom, _ref4[WRITE_ATOM] = writeAtom, _ref4[COMMIT_ATOM] = commitAtom, _ref4[SUBSCRIBE_ATOM] = subscribeAtom, _ref4[RESTORE_ATOMS] = restoreAtoms, _ref4;\n};\nvar createStoreForExport = function createStoreForExport(initialValues) {\n var store = createStore(initialValues);\n\n var get = function get(atom) {\n var atomState = store[READ_ATOM](atom);\n\n if ('e' in atomState) {\n throw atomState.e;\n }\n\n if ('p' in atomState) {\n return undefined;\n }\n\n return atomState.v;\n };\n\n var asyncGet = function asyncGet(atom) {\n return new Promise(function (resolve, reject) {\n var atomState = store[READ_ATOM](atom);\n\n if ('e' in atomState) {\n reject(atomState.e);\n } else if ('p' in atomState) {\n resolve(atomState.p.then(function () {\n return asyncGet(atom);\n }));\n } else {\n resolve(atomState.v);\n }\n });\n };\n\n var set = function set(atom, update) {\n return store[WRITE_ATOM](atom, update);\n };\n\n var sub = function sub(atom, callback) {\n return store[SUBSCRIBE_ATOM](atom, callback);\n };\n\n return {\n get: get,\n asyncGet: asyncGet,\n set: set,\n sub: sub,\n SECRET_INTERNAL_store: store\n };\n};\n\nvar createScopeContainer = function createScopeContainer(initialValues, unstable_createStore) {\n var store = unstable_createStore ? unstable_createStore(initialValues).SECRET_INTERNAL_store : createStore(initialValues);\n return {\n s: store\n };\n};\nvar ScopeContextMap = new Map();\nvar getScopeContext = function getScopeContext(scope) {\n if (!ScopeContextMap.has(scope)) {\n ScopeContextMap.set(scope, react.createContext(createScopeContainer()));\n }\n\n return ScopeContextMap.get(scope);\n};\n\nvar Provider = function Provider(_ref) {\n var children = _ref.children,\n initialValues = _ref.initialValues,\n scope = _ref.scope,\n unstable_createStore = _ref.unstable_createStore,\n unstable_enableVersionedWrite = _ref.unstable_enableVersionedWrite;\n\n var _useState = react.useState(),\n version = _useState[0],\n setVersion = _useState[1];\n\n react.useEffect(function () {\n if (version) {\n scopeContainerRef.current.s[COMMIT_ATOM](null, version);\n delete version.p;\n }\n }, [version]);\n var scopeContainerRef = react.useRef();\n\n if (!scopeContainerRef.current) {\n scopeContainerRef.current = createScopeContainer(initialValues, unstable_createStore);\n\n if (unstable_enableVersionedWrite) {\n scopeContainerRef.current.w = function (write) {\n setVersion(function (parentVersion) {\n var nextVersion = parentVersion ? {\n p: parentVersion\n } : {};\n write(nextVersion);\n return nextVersion;\n });\n };\n }\n }\n\n if (process.env.NODE_ENV !== \"production\" && (typeof process !== 'object' || process.env.NODE_ENV !== 'test')) {\n useDebugState(scopeContainerRef.current);\n }\n\n var ScopeContainerContext = getScopeContext(scope);\n return react.createElement(ScopeContainerContext.Provider, {\n value: scopeContainerRef.current\n }, children);\n};\n\nvar atomToPrintable = function atomToPrintable(atom) {\n return atom.debugLabel || atom.toString();\n};\n\nvar stateToPrintable = function stateToPrintable(_ref2) {\n var store = _ref2[0],\n atoms = _ref2[1];\n return Object.fromEntries(atoms.flatMap(function (atom) {\n var _store$DEV_GET_MOUNTE, _store$DEV_GET_ATOM_S;\n\n var mounted = (_store$DEV_GET_MOUNTE = store[DEV_GET_MOUNTED]) == null ? void 0 : _store$DEV_GET_MOUNTE.call(store, atom);\n\n if (!mounted) {\n return [];\n }\n\n var dependents = mounted.t;\n var atomState = ((_store$DEV_GET_ATOM_S = store[DEV_GET_ATOM_STATE]) == null ? void 0 : _store$DEV_GET_ATOM_S.call(store, atom)) || {};\n return [[atomToPrintable(atom), _extends({}, 'e' in atomState && {\n error: atomState.e\n }, 'p' in atomState && {\n promise: atomState.p\n }, 'v' in atomState && {\n value: atomState.v\n }, {\n dependents: Array.from(dependents).map(atomToPrintable)\n })]];\n }));\n};\n\nvar useDebugState = function useDebugState(scopeContainer) {\n var store = scopeContainer.s;\n\n var _useState2 = react.useState([]),\n atoms = _useState2[0],\n setAtoms = _useState2[1];\n\n react.useEffect(function () {\n var _store$DEV_SUBSCRIBE_;\n\n var callback = function callback() {\n var _store$DEV_GET_MOUNTE2;\n\n setAtoms(Array.from(((_store$DEV_GET_MOUNTE2 = store[DEV_GET_MOUNTED_ATOMS]) == null ? void 0 : _store$DEV_GET_MOUNTE2.call(store)) || []));\n };\n\n var unsubscribe = (_store$DEV_SUBSCRIBE_ = store[DEV_SUBSCRIBE_STATE]) == null ? void 0 : _store$DEV_SUBSCRIBE_.call(store, callback);\n callback();\n return unsubscribe;\n }, [store]);\n react.useDebugValue([store, atoms], stateToPrintable);\n};\n\nvar keyCount = 0;\nfunction atom(read, write) {\n var key = \"atom\" + ++keyCount;\n var config = {\n toString: function toString() {\n return key;\n }\n };\n\n if (typeof read === 'function') {\n config.read = read;\n } else {\n config.init = read;\n\n config.read = function (get) {\n return get(config);\n };\n\n config.write = function (get, set, update) {\n return set(config, typeof update === 'function' ? update(get(config)) : update);\n };\n }\n\n if (write) {\n config.write = write;\n }\n\n return config;\n}\n\nfunction useAtomValue(atom, scope) {\n var ScopeContext = getScopeContext(scope);\n\n var _useContext = react.useContext(ScopeContext),\n store = _useContext.s;\n\n var getAtomValue = react.useCallback(function (version) {\n var atomState = store[READ_ATOM](atom, version);\n\n if ('e' in atomState) {\n throw atomState.e;\n }\n\n if ('p' in atomState) {\n throw atomState.p;\n }\n\n if ('v' in atomState) {\n return atomState.v;\n }\n\n throw new Error('no atom value');\n }, [store, atom]);\n\n var _useReducer = react.useReducer(react.useCallback(function (prev, nextVersion) {\n var nextValue = getAtomValue(nextVersion);\n\n if (Object.is(prev[1], nextValue) && prev[2] === atom) {\n return prev;\n }\n\n return [nextVersion, nextValue, atom];\n }, [getAtomValue, atom]), undefined, function () {\n var initialVersion = undefined;\n var initialValue = getAtomValue(initialVersion);\n return [initialVersion, initialValue, atom];\n }),\n _useReducer$ = _useReducer[0],\n version = _useReducer$[0],\n value = _useReducer$[1],\n atomFromUseReducer = _useReducer$[2],\n rerenderIfChanged = _useReducer[1];\n\n if (atomFromUseReducer !== atom) {\n rerenderIfChanged(undefined);\n }\n\n react.useEffect(function () {\n var unsubscribe = store[SUBSCRIBE_ATOM](atom, rerenderIfChanged);\n rerenderIfChanged(undefined);\n return unsubscribe;\n }, [store, atom]);\n react.useEffect(function () {\n store[COMMIT_ATOM](atom, version);\n });\n react.useDebugValue(value);\n return value;\n}\n\nfunction useSetAtom(atom, scope) {\n var ScopeContext = getScopeContext(scope);\n\n var _useContext = react.useContext(ScopeContext),\n store = _useContext.s,\n versionedWrite = _useContext.w;\n\n var setAtom = react.useCallback(function (update) {\n if (!('write' in atom) && typeof process === 'object' && process.env.NODE_ENV !== 'production') {\n throw new Error('not writable atom');\n }\n\n var write = function write(version) {\n return store[WRITE_ATOM](atom, update, version);\n };\n\n return versionedWrite ? versionedWrite(write) : write();\n }, [store, versionedWrite, atom]);\n return setAtom;\n}\n\nfunction useAtom(atom, scope) {\n if ('scope' in atom) {\n console.warn('atom.scope is deprecated. Please do useAtom(atom, scope) instead.');\n scope = atom.scope;\n }\n\n return [useAtomValue(atom, scope), useSetAtom(atom, scope)];\n}\n\nexports.Provider = Provider;\nexports.SECRET_INTERNAL_getScopeContext = getScopeContext;\nexports.atom = atom;\nexports.unstable_createStore = createStoreForExport;\nexports.useAtom = useAtom;\nexports.useAtomValue = useAtomValue;\nexports.useSetAtom = useSetAtom;\n","import { DeviceEventEmitter, EmitterSubscription } from 'react-native';\nimport { State } from '../../State';\nimport { EventType } from '../../EventType';\nimport {\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport { GestureStateManagerType } from './gestureStateManager';\nimport { findHandler } from '../handlersRegistry';\nimport { BaseGesture } from './gesture';\n\nlet gestureHandlerEventSubscription: EmitterSubscription | null = null;\nlet gestureHandlerStateChangeEventSubscription: EmitterSubscription | null = null;\n\nconst dummyStateManager: GestureStateManagerType = {\n begin: () => {\n console.warn(\n 'You have to use react-native-reanimated in order to control the state of the gesture.'\n );\n },\n activate: () => {\n console.warn(\n 'You have to use react-native-reanimated in order to control the state of the gesture.'\n );\n },\n end: () => {\n console.warn(\n 'You have to use react-native-reanimated in order to control the state of the gesture.'\n );\n },\n fail: () => {\n console.warn(\n 'You have to use react-native-reanimated in order to control the state of the gesture.'\n );\n },\n};\n\nconst lastUpdateEvent: (GestureUpdateEvent | undefined)[] = [];\n\nfunction isStateChangeEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureStateChangeEvent {\n // @ts-ignore oldState doesn't exist on GestureTouchEvent and that's the point\n return event.oldState != null;\n}\n\nfunction isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n): event is GestureTouchEvent {\n return event.eventType != null;\n}\n\nfunction onGestureHandlerEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n) {\n const handler = findHandler(event.handlerTag) as BaseGesture<\n Record\n >;\n\n if (handler) {\n if (isStateChangeEvent(event)) {\n if (\n event.oldState === State.UNDETERMINED &&\n event.state === State.BEGAN\n ) {\n handler.handlers.onBegin?.(event);\n } else if (\n (event.oldState === State.BEGAN ||\n event.oldState === State.UNDETERMINED) &&\n event.state === State.ACTIVE\n ) {\n handler.handlers.onStart?.(event);\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n } else if (event.oldState !== event.state && event.state === State.END) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, true);\n }\n handler.handlers.onFinalize?.(event, true);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n } else if (\n (event.state === State.FAILED || event.state === State.CANCELLED) &&\n event.oldState !== event.state\n ) {\n if (event.oldState === State.ACTIVE) {\n handler.handlers.onEnd?.(event, false);\n }\n handler.handlers.onFinalize?.(event, false);\n lastUpdateEvent[handler.handlers.handlerTag] = undefined;\n }\n } else if (isTouchEvent(event)) {\n switch (event.eventType) {\n case EventType.TOUCHES_DOWN:\n handler.handlers?.onTouchesDown?.(event, dummyStateManager);\n break;\n case EventType.TOUCHES_MOVE:\n handler.handlers?.onTouchesMove?.(event, dummyStateManager);\n break;\n case EventType.TOUCHES_UP:\n handler.handlers?.onTouchesUp?.(event, dummyStateManager);\n break;\n case EventType.TOUCHES_CANCELLED:\n handler.handlers?.onTouchesCancelled?.(event, dummyStateManager);\n break;\n }\n } else {\n handler.handlers.onUpdate?.(event);\n\n if (handler.handlers.onChange && handler.handlers.changeEventCalculator) {\n handler.handlers.onChange?.(\n handler.handlers.changeEventCalculator?.(\n event,\n lastUpdateEvent[handler.handlers.handlerTag]\n )\n );\n\n lastUpdateEvent[handler.handlers.handlerTag] = event;\n }\n }\n }\n}\n\nexport function startListening() {\n stopListening();\n\n gestureHandlerEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerEvent',\n onGestureHandlerEvent\n );\n\n gestureHandlerStateChangeEventSubscription = DeviceEventEmitter.addListener(\n 'onGestureHandlerStateChange',\n onGestureHandlerEvent\n );\n}\n\nexport function stopListening() {\n if (gestureHandlerEventSubscription) {\n DeviceEventEmitter.removeSubscription(gestureHandlerEventSubscription);\n\n gestureHandlerEventSubscription = null;\n }\n\n if (gestureHandlerStateChangeEventSubscription) {\n DeviceEventEmitter.removeSubscription(\n gestureHandlerStateChangeEventSubscription\n );\n\n gestureHandlerStateChangeEventSubscription = null;\n }\n}\n","export const Directions = {\n RIGHT: 1,\n LEFT: 2,\n UP: 4,\n DOWN: 8,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type Directions = typeof Directions[keyof typeof Directions];\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport { View, ViewProps } from 'react-native';\n\nexport interface GestureHandlerRootViewProps\n extends PropsWithChildren {}\n\nexport default function GestureHandlerRootView({\n ...rest\n}: GestureHandlerRootViewProps) {\n return ;\n}\n","import * as React from 'react';\nimport { StyleSheet, StyleProp, ViewStyle } from 'react-native';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport GestureHandlerRootView from './GestureHandlerRootView';\n\nexport default function gestureHandlerRootHOC

(\n Component: React.ComponentType

,\n containerStyles?: StyleProp\n): React.ComponentType

{\n function Wrapper(props: P) {\n return (\n \n \n \n );\n }\n\n Wrapper.displayName = `gestureHandlerRootHOC(${\n Component.displayName || Component.name\n })`;\n\n hoistNonReactStatics(Wrapper, Component);\n\n return Wrapper;\n}\n\nconst styles = StyleSheet.create({\n container: { flex: 1 },\n});\n","import Hammer from '@egjs/hammerjs';\nimport { HammerInputExt } from './GestureHandler';\n\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass PinchGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'pinch';\n }\n\n get NativeGestureClass() {\n return Hammer.Pinch;\n }\n\n transformNativeEvent({ scale, velocity, center }: HammerInputExt) {\n return {\n focalX: center.x,\n focalY: center.y,\n velocity,\n scale,\n };\n }\n}\n\nexport default PinchGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { DEG_RAD } from './constants';\nimport { HammerInputExt } from './GestureHandler';\nimport IndiscreteGestureHandler from './IndiscreteGestureHandler';\n\nclass RotationGestureHandler extends IndiscreteGestureHandler {\n get name() {\n return 'rotate';\n }\n\n get NativeGestureClass() {\n return Hammer.Rotate;\n }\n\n transformNativeEvent({ rotation, velocity, center }: HammerInputExt) {\n return {\n rotation: (rotation - (this.initialRotation ?? 0)) * DEG_RAD,\n anchorX: center.x,\n anchorY: center.y,\n velocity,\n };\n }\n}\nexport default RotationGestureHandler;\n","import DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { HammerInputExt } from './GestureHandler';\nimport * as NodeManager from './NodeManager';\nimport PressGestureHandler from './PressGestureHandler';\nimport { TEST_MIN_IF_NOT_NAN, VEC_LEN_SQ } from './utils';\n\nclass NativeViewGestureHandler extends PressGestureHandler {\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (!ev.isFinal) {\n // if (this.ref instanceof ScrollView) {\n if (TEST_MIN_IF_NOT_NAN(VEC_LEN_SQ({ x: ev.deltaX, y: ev.deltaY }), 10)) {\n // @ts-ignore FIXME(TS) config type\n if (this.config.disallowInterruption) {\n const gestures = Object.values(NodeManager.getNodes()).filter(\n (gesture) => {\n const { handlerTag, view, isGestureRunning } = gesture;\n return (\n // Check if this gesture isn't self\n handlerTag !== this.handlerTag &&\n // Ensure the gesture needs to be cancelled\n isGestureRunning &&\n // ScrollView can cancel discrete gestures like taps and presses\n gesture instanceof DiscreteGestureHandler &&\n // Ensure a view exists and is a child of the current view\n view &&\n // @ts-ignore FIXME(TS) view type\n this.view.contains(view)\n );\n }\n );\n // Cancel all of the gestures that passed the filter\n for (const gesture of gestures) {\n // TODO: Bacon: Send some cached event.\n gesture.forceInvalidate(ev);\n }\n }\n }\n }\n }\n}\n\nexport default NativeViewGestureHandler;\n","import * as React from 'react';\nimport { useImperativeHandle, useRef } from 'react';\n\nimport {\n NativeViewGestureHandler,\n NativeViewGestureHandlerProps,\n nativeViewProps,\n} from './NativeViewGestureHandler';\n\n/*\n * This array should consist of:\n * - All keys in propTypes from NativeGestureHandler\n * (and all keys in GestureHandlerPropTypes)\n * - 'onGestureHandlerEvent'\n * - 'onGestureHandlerStateChange'\n */\nconst NATIVE_WRAPPER_PROPS_FILTER = [\n ...nativeViewProps,\n 'onGestureHandlerEvent',\n 'onGestureHandlerStateChange',\n] as const;\n\nexport default function createNativeWrapper

(\n Component: React.ComponentType

,\n config: Readonly = {}\n) {\n const ComponentWrapper = React.forwardRef<\n React.ComponentType,\n P & NativeViewGestureHandlerProps\n >((props, ref) => {\n // filter out props that should be passed to gesture handler wrapper\n const gestureHandlerProps = Object.keys(props).reduce(\n (res, key) => {\n // TS being overly protective with it's types, see https://github.com/microsoft/TypeScript/issues/26255#issuecomment-458013731 for more info\n const allowedKeys: readonly string[] = NATIVE_WRAPPER_PROPS_FILTER;\n if (allowedKeys.includes(key)) {\n // @ts-ignore FIXME(TS)\n res[key] = props[key];\n }\n return res;\n },\n { ...config } // watch out not to modify config\n );\n const _ref = useRef>();\n const _gestureHandlerRef = useRef>();\n useImperativeHandle(\n ref,\n // @ts-ignore TODO(TS) decide how nulls work in this context\n () => {\n const node = _gestureHandlerRef.current;\n // add handlerTag for relations config\n if (_ref.current && node) {\n // @ts-ignore FIXME(TS) think about createHandler return type\n _ref.current.handlerTag = node.handlerTag;\n return _ref.current;\n }\n return null;\n },\n [_ref, _gestureHandlerRef]\n );\n return (\n \n \n \n );\n });\n\n ComponentWrapper.displayName = Component.displayName || 'ComponentWrapper';\n\n return ComponentWrapper;\n}\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n FlingGestureConfig,\n FlingGestureHandlerEventPayload,\n} from '../FlingGestureHandler';\n\nexport class FlingGesture extends BaseGesture {\n public config: BaseGestureConfig & FlingGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'FlingGestureHandler';\n }\n\n numberOfPointers(pointers: number) {\n this.config.numberOfPointers = pointers;\n return this;\n }\n\n direction(direction: number) {\n this.config.direction = direction;\n return this;\n }\n}\n\nexport type FlingGestureType = InstanceType;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport {\n ForceTouchGestureConfig,\n ForceTouchGestureHandlerEventPayload,\n} from '../ForceTouchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype ForceTouchGestureChangeEventPayload = {\n forceChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: ForceTouchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n forceChange: current.force,\n };\n } else {\n changePayload = {\n forceChange: current.force - previous.force,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class ForceTouchGesture extends ContinousBaseGesture<\n ForceTouchGestureHandlerEventPayload,\n ForceTouchGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & ForceTouchGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'ForceTouchGestureHandler';\n }\n\n minForce(force: number) {\n this.config.minForce = force;\n return this;\n }\n\n maxForce(force: number) {\n this.config.maxForce = force;\n return this;\n }\n\n feedbackOnActivation(value: boolean) {\n this.config.feedbackOnActivation = value;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n GestureUpdateEvent<\n ForceTouchGestureHandlerEventPayload &\n ForceTouchGestureChangeEventPayload\n >\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, ForceTouchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ForceTouchGestureType = InstanceType;\n","import { BaseGesture, Gesture, GestureRef, GestureType } from './gesture';\n\nfunction extendRelation(\n currentRelation: GestureRef[] | undefined,\n extendWith: GestureType[]\n) {\n if (currentRelation === undefined) {\n return [...extendWith];\n } else {\n return [...currentRelation, ...extendWith];\n }\n}\n\nexport class ComposedGesture extends Gesture {\n protected gestures: Gesture[] = [];\n protected simultaneousGestures: GestureType[] = [];\n protected requireGesturesToFail: GestureType[] = [];\n\n constructor(...gestures: Gesture[]) {\n super();\n this.gestures = gestures;\n }\n\n protected prepareSingleGesture(\n gesture: Gesture,\n simultaneousGestures: GestureType[],\n requireGesturesToFail: GestureType[]\n ) {\n if (gesture instanceof BaseGesture) {\n const newConfig = { ...gesture.config };\n\n newConfig.simultaneousWith = extendRelation(\n newConfig.simultaneousWith,\n simultaneousGestures\n );\n newConfig.requireToFail = extendRelation(\n newConfig.requireToFail,\n requireGesturesToFail\n );\n\n gesture.config = newConfig;\n } else if (gesture instanceof ComposedGesture) {\n gesture.simultaneousGestures = simultaneousGestures;\n gesture.requireGesturesToFail = requireGesturesToFail;\n gesture.prepare();\n }\n }\n\n prepare() {\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n this.simultaneousGestures,\n this.requireGesturesToFail\n );\n }\n }\n\n initialize() {\n for (const gesture of this.gestures) {\n gesture.initialize();\n }\n }\n\n toGestureArray(): GestureType[] {\n return this.gestures.flatMap((gesture) => gesture.toGestureArray());\n }\n}\n\nexport class SimultaneousGesture extends ComposedGesture {\n prepare() {\n const simultaneousArray = this.gestures\n .flatMap((gesture) => gesture.toGestureArray())\n .concat(this.simultaneousGestures);\n\n for (const gesture of this.gestures) {\n this.prepareSingleGesture(\n gesture,\n simultaneousArray,\n this.requireGesturesToFail\n );\n }\n }\n}\n\nexport class ExclusiveGesture extends ComposedGesture {\n prepare() {\n const gestureArrays = this.gestures.map((gesture) =>\n gesture.toGestureArray()\n );\n\n let requireToFail: GestureType[] = [];\n\n for (let i = 0; i < this.gestures.length; i++) {\n this.prepareSingleGesture(\n this.gestures[i],\n this.simultaneousGestures,\n this.requireGesturesToFail.concat(requireToFail)\n );\n\n requireToFail = requireToFail.concat(gestureArrays[i]);\n }\n }\n}\n\nexport type ComposedGestureType = InstanceType;\nexport type RaceGestureType = ComposedGestureType;\nexport type SimultaneousGestureType = InstanceType;\nexport type ExclusiveGestureType = InstanceType;\n","import { BaseGesture, BaseGestureConfig } from './gesture';\nimport {\n LongPressGestureConfig,\n LongPressGestureHandlerEventPayload,\n} from '../LongPressGestureHandler';\n\nexport class LongPressGesture extends BaseGesture {\n public config: BaseGestureConfig & LongPressGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'LongPressGestureHandler';\n }\n\n minDuration(duration: number) {\n this.config.minDurationMs = duration;\n return this;\n }\n\n maxDistance(distance: number) {\n this.config.maxDist = distance;\n return this;\n }\n}\n\nexport type LongPressGestureType = InstanceType;\n","import { BaseGestureConfig, ContinousBaseGesture } from './gesture';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport {\n PanGestureConfig,\n PanGestureHandlerEventPayload,\n} from '../PanGestureHandler';\n\ntype PanGestureChangeEventPayload = {\n changeX: number;\n changeY: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: PanGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n changeX: current.translationX,\n changeY: current.translationY,\n };\n } else {\n changePayload = {\n changeX: current.translationX - previous.translationX,\n changeY: current.translationY - previous.translationY,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PanGesture extends ContinousBaseGesture<\n PanGestureHandlerEventPayload,\n PanGestureChangeEventPayload\n> {\n public config: BaseGestureConfig & PanGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'PanGestureHandler';\n }\n\n activeOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetYStart = offset[0];\n this.config.activeOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetYStart = offset;\n } else {\n this.config.activeOffsetYEnd = offset;\n }\n return this;\n }\n\n activeOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.activeOffsetXStart = offset[0];\n this.config.activeOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.activeOffsetXStart = offset;\n } else {\n this.config.activeOffsetXEnd = offset;\n }\n return this;\n }\n\n failOffsetY(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetYStart = offset[0];\n this.config.failOffsetYEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetYStart = offset;\n } else {\n this.config.failOffsetYEnd = offset;\n }\n return this;\n }\n\n failOffsetX(offset: number | number[]) {\n if (Array.isArray(offset)) {\n this.config.failOffsetXStart = offset[0];\n this.config.failOffsetXEnd = offset[1];\n } else if (offset < 0) {\n this.config.failOffsetXStart = offset;\n } else {\n this.config.failOffsetXEnd = offset;\n }\n return this;\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n maxPointers(maxPointers: number) {\n this.config.maxPointers = maxPointers;\n return this;\n }\n\n minDistance(distance: number) {\n this.config.minDist = distance;\n return this;\n }\n\n minVelocity(velocity: number) {\n this.config.minVelocity = velocity;\n return this;\n }\n\n minVelocityX(velocity: number) {\n this.config.minVelocityX = velocity;\n return this;\n }\n\n minVelocityY(velocity: number) {\n this.config.minVelocityY = velocity;\n return this;\n }\n\n averageTouches(value: boolean) {\n this.config.avgTouches = value;\n return this;\n }\n\n enableTrackpadTwoFingerGesture(value: boolean) {\n this.config.enableTrackpadTwoFingerGesture = value;\n return this;\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PanGestureHandlerEventPayload & PanGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PanGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PanGestureType = InstanceType;\n","import { ContinousBaseGesture } from './gesture';\nimport { PinchGestureHandlerEventPayload } from '../PinchGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype PinchGestureChangeEventPayload = {\n scaleChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: PinchGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n scaleChange: current.scale,\n };\n } else {\n changePayload = {\n scaleChange: current.scale / previous.scale,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class PinchGesture extends ContinousBaseGesture<\n PinchGestureHandlerEventPayload,\n PinchGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'PinchGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n PinchGestureHandlerEventPayload & PinchGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, PinchGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type PinchGestureType = InstanceType;\n","import { ContinousBaseGesture } from './gesture';\nimport { RotationGestureHandlerEventPayload } from '../RotationGestureHandler';\nimport { GestureUpdateEvent } from '../gestureHandlerCommon';\n\ntype RotationGestureChangeEventPayload = {\n rotationChange: number;\n};\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent,\n previous?: GestureUpdateEvent\n) {\n 'worklet';\n let changePayload: RotationGestureChangeEventPayload;\n if (previous === undefined) {\n changePayload = {\n rotationChange: current.rotation,\n };\n } else {\n changePayload = {\n rotationChange: current.rotation - previous.rotation,\n };\n }\n\n return { ...current, ...changePayload };\n}\n\nexport class RotationGesture extends ContinousBaseGesture<\n RotationGestureHandlerEventPayload,\n RotationGestureChangeEventPayload\n> {\n constructor() {\n super();\n\n this.handlerName = 'RotationGestureHandler';\n }\n\n onChange(\n callback: (\n event: GestureUpdateEvent<\n RotationGestureHandlerEventPayload & RotationGestureChangeEventPayload\n >\n ) => void\n ) {\n // @ts-ignore TS being overprotective, RotationGestureHandlerEventPayload is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type RotationGestureType = InstanceType;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n TapGestureConfig,\n TapGestureHandlerEventPayload,\n} from '../TapGestureHandler';\n\nexport class TapGesture extends BaseGesture {\n public config: BaseGestureConfig & TapGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'TapGestureHandler';\n }\n\n minPointers(minPointers: number) {\n this.config.minPointers = minPointers;\n return this;\n }\n\n numberOfTaps(count: number) {\n this.config.numberOfTaps = count;\n return this;\n }\n\n maxDistance(maxDist: number) {\n this.config.maxDist = maxDist;\n return this;\n }\n\n maxDuration(duration: number) {\n this.config.maxDurationMs = duration;\n return this;\n }\n\n maxDelay(delay: number) {\n this.config.maxDelayMs = delay;\n return this;\n }\n\n maxDeltaX(delta: number) {\n this.config.maxDeltaX = delta;\n return this;\n }\n\n maxDeltaY(delta: number) {\n this.config.maxDeltaY = delta;\n return this;\n }\n}\n\nexport type TapGestureType = InstanceType;\n","import { BaseGestureConfig, BaseGesture } from './gesture';\nimport {\n NativeViewGestureConfig,\n NativeViewGestureHandlerPayload,\n} from '../NativeViewGestureHandler';\n\nexport class NativeGesture extends BaseGesture {\n public config: BaseGestureConfig & NativeViewGestureConfig = {};\n\n constructor() {\n super();\n\n this.handlerName = 'NativeViewGestureHandler';\n }\n\n shouldActivateOnStart(value: boolean) {\n this.config.shouldActivateOnStart = value;\n return this;\n }\n\n disallowInterruption(value: boolean) {\n this.config.disallowInterruption = value;\n return this;\n }\n}\n\nexport type NativeGestureType = InstanceType;\n","import { GestureUpdateEvent } from '../gestureHandlerCommon';\nimport { ContinousBaseGesture } from './gesture';\n\nfunction changeEventCalculator(\n current: GestureUpdateEvent>,\n _previous?: GestureUpdateEvent>\n) {\n 'worklet';\n return current;\n}\n\nexport class ManualGesture extends ContinousBaseGesture<\n Record,\n Record\n> {\n constructor() {\n super();\n\n this.handlerName = 'ManualGestureHandler';\n }\n\n onChange(\n callback: (event: GestureUpdateEvent>) => void\n ) {\n // @ts-ignore TS being overprotective, Record is Record\n this.handlers.changeEventCalculator = changeEventCalculator;\n return super.onChange(callback);\n }\n}\n\nexport type ManualGestureType = InstanceType;\n","import * as React from 'react';\nimport { View } from 'react-native';\n\nexport default React.forwardRef((props, ref) => (\n \n));\n","import * as React from 'react';\nimport {\n Animated,\n Platform,\n processColor,\n StyleSheet,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n NativeViewGestureHandlerPayload,\n NativeViewGestureHandlerProps,\n} from '../handlers/NativeViewGestureHandler';\n\nexport interface RawButtonProps extends NativeViewGestureHandlerProps {\n /**\n * Defines if more than one button could be pressed simultaneously. By default\n * set true.\n */\n exclusive?: boolean;\n // TODO: we should transform props in `createNativeWrapper`\n\n /**\n * Android only.\n *\n * Defines color of native ripple animation used since API level 21.\n */\n rippleColor?: any; // it was present in BaseButtonProps before but is used here in code\n}\n\nexport interface BaseButtonProps extends RawButtonProps {\n /**\n * Called when the button gets pressed (analogous to `onPress` in\n * `TouchableHighlight` from RN core).\n */\n onPress?: (pointerInside: boolean) => void;\n\n /**\n * Called when button changes from inactive to active and vice versa. It\n * passes active state as a boolean variable as a first parameter for that\n * method.\n */\n onActiveStateChange?: (active: boolean) => void;\n style?: StyleProp;\n testID?: string;\n}\n\nexport interface RectButtonProps extends BaseButtonProps {\n /**\n * Background color that will be dimmed when button is in active state.\n */\n underlayColor?: string;\n\n /**\n * iOS only.\n *\n * Opacity applied to the underlay when button is in active state.\n */\n activeOpacity?: number;\n}\n\nexport interface BorderlessButtonProps extends BaseButtonProps {\n /**\n * Android only.\n *\n * Set this to false if you want the ripple animation to render only within view bounds.\n */\n borderless?: boolean;\n\n /**\n * iOS only.\n *\n * Opacity applied to the button when it is in an active state.\n */\n activeOpacity?: number;\n}\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nexport class BaseButton extends React.Component {\n private lastActive: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { state, oldState, pointerInside } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(active);\n }\n\n this.lastActive = active;\n };\n\n // Normally, the parent would execute it's handler first, then forward the\n // event to listeners. However, here our handler is virtually only forwarding\n // events to listeners, so we reverse the order to keep the proper order of\n // the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor, ...rest } = this.props;\n\n return (\n \n );\n }\n}\n\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\n\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n});\n\nexport class RectButton extends React.Component {\n static defaultProps = {\n activeOpacity: 0.105,\n underlayColor: 'black',\n };\n\n private opacity: Animated.Value;\n\n constructor(props: RectButtonProps) {\n super(props);\n this.opacity = new Animated.Value(0);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 0);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n const resolvedStyle = StyleSheet.flatten(style ?? {});\n\n return (\n \n \n {children}\n \n );\n }\n}\n\nexport class BorderlessButton extends React.Component {\n static defaultProps = {\n activeOpacity: 0.3,\n borderless: true,\n };\n\n private opacity: Animated.Value;\n\n constructor(props: BorderlessButtonProps) {\n super(props);\n this.opacity = new Animated.Value(1);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 1);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n","import { TouchableNativeFeedback } from 'react-native';\n\nexport default TouchableNativeFeedback;\n","import * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n Platform,\n StyleProp,\n ViewStyle,\n TouchableWithoutFeedbackProps,\n} from 'react-native';\n\nimport { State } from '../../State';\nimport { BaseButton } from '../GestureButtons';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../../handlers/gestureHandlerCommon';\nimport { NativeViewGestureHandlerPayload } from '../../handlers/NativeViewGestureHandler';\nimport { TouchableNativeFeedbackExtraProps } from './TouchableNativeFeedback.android';\n\n/**\n * Each touchable is a states' machine which preforms transitions.\n * On very beginning (and on the very end or recognition) touchable is\n * UNDETERMINED. Then it moves to BEGAN. If touchable recognizes that finger\n * travel outside it transits to special MOVED_OUTSIDE state. Gesture recognition\n * finishes in UNDETERMINED state.\n */\nexport const TOUCHABLE_STATE = {\n UNDETERMINED: 0,\n BEGAN: 1,\n MOVED_OUTSIDE: 2,\n} as const;\n\ntype TouchableState = typeof TOUCHABLE_STATE[keyof typeof TOUCHABLE_STATE];\n\nexport interface GenericTouchableProps extends TouchableWithoutFeedbackProps {\n // Decided to drop not used fields from RN's implementation.\n // e.g. onBlur and onFocus as well as deprecated props. - TODO: this comment may be unuseful in this moment\n\n // TODO: in RN these events get native event parameter, which prolly could be used in our implementation too\n onPress?: () => void;\n onPressIn?: () => void;\n onPressOut?: () => void;\n onLongPress?: () => void;\n\n nativeID?: string;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n\n containerStyle?: StyleProp;\n}\n\ninterface InternalProps {\n extraButtonProps: TouchableNativeFeedbackExtraProps;\n onStateChange?: (oldState: TouchableState, newState: TouchableState) => void;\n}\n\n// TODO: maybe can be better\n// TODO: all clearTimeout have ! added, maybe they shouldn't ?\ntype Timeout = ReturnType | null | undefined;\n\n/**\n * GenericTouchable is not intented to be used as it is.\n * Should be treated as a source for the rest of touchables\n */\n\nexport default class GenericTouchable extends Component<\n GenericTouchableProps & InternalProps\n> {\n static defaultProps = {\n delayLongPress: 600,\n extraButtonProps: {\n rippleColor: 'transparent',\n exclusive: true,\n },\n };\n\n // timeout handlers\n pressInTimeout: Timeout;\n pressOutTimeout: Timeout;\n longPressTimeout: Timeout;\n\n // This flag is required since recognition of longPress implies not-invoking onPress\n longPressDetected = false;\n\n pointerInside = true;\n\n // State of touchable\n STATE: TouchableState = TOUCHABLE_STATE.UNDETERMINED;\n\n // handlePressIn in called on first touch on traveling inside component.\n // Handles state transition with delay.\n handlePressIn() {\n if (this.props.delayPressIn) {\n this.pressInTimeout = setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n this.pressInTimeout = null;\n }, this.props.delayPressIn);\n } else {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n if (this.props.onLongPress) {\n const time =\n (this.props.delayPressIn || 0) + (this.props.delayLongPress || 0);\n this.longPressTimeout = setTimeout(this.onLongPressDetected, time);\n }\n }\n // handleMoveOutside in called on traveling outside component.\n // Handles state transition with delay.\n handleMoveOutside() {\n if (this.props.delayPressOut) {\n this.pressOutTimeout =\n this.pressOutTimeout ||\n setTimeout(() => {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n this.moveToState(TOUCHABLE_STATE.MOVED_OUTSIDE);\n }\n }\n\n // handleGoToUndetermined transits to UNDETERMINED state with proper delay\n handleGoToUndetermined() {\n clearTimeout(this.pressOutTimeout!); // TODO: maybe it can be undefined\n if (this.props.delayPressOut) {\n this.pressOutTimeout = setTimeout(() => {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n this.pressOutTimeout = null;\n }, this.props.delayPressOut);\n } else {\n if (this.STATE === TOUCHABLE_STATE.UNDETERMINED) {\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n }\n }\n\n componentDidMount() {\n this.reset();\n }\n // reset timeout to prevent memory leaks.\n reset() {\n this.longPressDetected = false;\n this.pointerInside = true;\n clearTimeout(this.pressInTimeout!);\n clearTimeout(this.pressOutTimeout!);\n clearTimeout(this.longPressTimeout!);\n this.pressOutTimeout = null;\n this.longPressTimeout = null;\n this.pressInTimeout = null;\n }\n\n // All states' transitions are defined here.\n moveToState(newState: TouchableState) {\n if (newState === this.STATE) {\n // Ignore dummy transitions\n return;\n }\n if (newState === TOUCHABLE_STATE.BEGAN) {\n // First touch and moving inside\n this.props.onPressIn?.();\n } else if (newState === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // Moving outside\n this.props.onPressOut?.();\n } else if (newState === TOUCHABLE_STATE.UNDETERMINED) {\n // Need to reset each time on transition to UNDETERMINED\n this.reset();\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n // ... and if it happens inside button.\n this.props.onPressOut?.();\n }\n }\n // Finally call lister (used by subclasses)\n this.props.onStateChange?.(this.STATE, newState);\n // ... and make transition.\n this.STATE = newState;\n }\n\n onGestureEvent = ({\n nativeEvent: { pointerInside },\n }: GestureEvent) => {\n if (this.pointerInside !== pointerInside) {\n if (pointerInside) {\n this.onMoveIn();\n } else {\n this.onMoveOut();\n }\n }\n this.pointerInside = pointerInside;\n };\n\n onHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { state } = nativeEvent;\n if (state === State.CANCELLED || state === State.FAILED) {\n // Need to handle case with external cancellation (e.g. by ScrollView)\n this.moveToState(TOUCHABLE_STATE.UNDETERMINED);\n } else if (\n // This platform check is an implication of slightly different behavior of handlers on different platform.\n // And Android \"Active\" state is achieving on first move of a finger, not on press in.\n // On iOS event on \"Began\" is not delivered.\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n this.STATE === TOUCHABLE_STATE.UNDETERMINED\n ) {\n // Moving inside requires\n this.handlePressIn();\n } else if (state === State.END) {\n const shouldCallOnPress =\n !this.longPressDetected &&\n this.STATE !== TOUCHABLE_STATE.MOVED_OUTSIDE &&\n this.pressOutTimeout === null;\n this.handleGoToUndetermined();\n if (shouldCallOnPress) {\n // Calls only inside component whether no long press was called previously\n this.props.onPress?.();\n }\n }\n };\n\n onLongPressDetected = () => {\n this.longPressDetected = true;\n // checked for in the caller of `onLongPressDetected`, but better to check twice\n this.props.onLongPress?.();\n };\n\n componentWillUnmount() {\n // to prevent memory leaks\n this.reset();\n }\n\n onMoveIn() {\n if (this.STATE === TOUCHABLE_STATE.MOVED_OUTSIDE) {\n // This call is not throttled with delays (like in RN's implementation).\n this.moveToState(TOUCHABLE_STATE.BEGAN);\n }\n }\n\n onMoveOut() {\n // long press should no longer be detected\n clearTimeout(this.longPressTimeout!);\n this.longPressTimeout = null;\n if (this.STATE === TOUCHABLE_STATE.BEGAN) {\n this.handleMoveOutside();\n }\n }\n\n render() {\n const coreProps = {\n accessible: this.props.accessible !== false,\n accessibilityLabel: this.props.accessibilityLabel,\n accessibilityHint: this.props.accessibilityHint,\n accessibilityRole: this.props.accessibilityRole,\n // TODO: check if changed to no 's' correctly, also removed 2 props that are no longer available: `accessibilityComponentType` and `accessibilityTraits`,\n // would be good to check if it is ok for sure, see: https://github.com/facebook/react-native/issues/24016\n accessibilityState: this.props.accessibilityState,\n nativeID: this.props.nativeID,\n onLayout: this.props.onLayout,\n hitSlop: this.props.hitSlop,\n };\n\n return (\n \n \n {this.props.children}\n \n \n );\n }\n}\n","import * as React from 'react';\nimport { PropsWithChildren } from 'react';\nimport GenericTouchable, { GenericTouchableProps } from './GenericTouchable';\n\nconst TouchableWithoutFeedback = React.forwardRef<\n GenericTouchable,\n PropsWithChildren\n>((props, ref) => );\n\nTouchableWithoutFeedback.defaultProps = GenericTouchable.defaultProps;\n\nexport default TouchableWithoutFeedback;\n","import {\n Animated,\n Easing,\n StyleSheet,\n View,\n TouchableOpacityProps,\n} from 'react-native';\nimport GenericTouchable, {\n TOUCHABLE_STATE,\n GenericTouchableProps,\n} from './GenericTouchable';\nimport * as React from 'react';\nimport { Component } from 'react';\n\n/**\n * TouchableOpacity bases on timing animation which has been used in RN's core\n */\nexport default class TouchableOpacity extends Component<\n TouchableOpacityProps & GenericTouchableProps\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.2,\n };\n\n // opacity is 1 one by default but could be overwritten\n getChildStyleOpacityWithDefault = () => {\n const childStyle = StyleSheet.flatten(this.props.style) || {};\n return childStyle.opacity == null ? 1 : childStyle.opacity;\n };\n\n opacity = new Animated.Value(this.getChildStyleOpacityWithDefault());\n\n setOpacityTo = (value: number, duration: number) => {\n Animated.timing(this.opacity, {\n toValue: value,\n duration: duration,\n easing: Easing.inOut(Easing.quad),\n useNativeDriver: false,\n }).start();\n };\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.setOpacityTo(this.props.activeOpacity!, 0);\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.setOpacityTo(this.getChildStyleOpacityWithDefault(), 150);\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n return (\n \n {this.props.children ? this.props.children : }\n \n );\n }\n}\n","import * as React from 'react';\nimport { Component } from 'react';\nimport GenericTouchable, {\n GenericTouchableProps,\n TOUCHABLE_STATE,\n} from './GenericTouchable';\nimport {\n StyleSheet,\n View,\n TouchableHighlightProps,\n ColorValue,\n ViewProps,\n} from 'react-native';\n\ninterface State {\n extraChildStyle: null | {\n opacity?: number;\n };\n extraUnderlayStyle: null | {\n backgroundColor?: ColorValue;\n };\n}\n\n/**\n * TouchableHighlight follows RN's implementation\n */\nexport default class TouchableHighlight extends Component<\n TouchableHighlightProps & GenericTouchableProps,\n State\n> {\n static defaultProps = {\n ...GenericTouchable.defaultProps,\n activeOpacity: 0.85,\n delayPressOut: 100,\n underlayColor: 'black',\n };\n\n constructor(props: TouchableHighlightProps & GenericTouchableProps) {\n super(props);\n this.state = {\n extraChildStyle: null,\n extraUnderlayStyle: null,\n };\n }\n\n // Copied from RN\n showUnderlay = () => {\n if (!this.hasPressHandler()) {\n return;\n }\n this.setState({\n extraChildStyle: {\n opacity: this.props.activeOpacity,\n },\n extraUnderlayStyle: {\n backgroundColor: this.props.underlayColor,\n },\n });\n this.props.onShowUnderlay?.();\n };\n\n hasPressHandler = () =>\n this.props.onPress ||\n this.props.onPressIn ||\n this.props.onPressOut ||\n this.props.onLongPress;\n\n hideUnderlay = () => {\n this.setState({\n extraChildStyle: null,\n extraUnderlayStyle: null,\n });\n this.props.onHideUnderlay?.();\n };\n\n renderChildren() {\n if (!this.props.children) {\n return ;\n }\n\n const child = React.Children.only(\n this.props.children\n ) as React.ReactElement; // TODO: not sure if OK but fixes error\n return React.cloneElement(child, {\n style: StyleSheet.compose(child.props.style, this.state.extraChildStyle),\n });\n }\n\n onStateChange = (_from: number, to: number) => {\n if (to === TOUCHABLE_STATE.BEGAN) {\n this.showUnderlay();\n } else if (\n to === TOUCHABLE_STATE.UNDETERMINED ||\n to === TOUCHABLE_STATE.MOVED_OUTSIDE\n ) {\n this.hideUnderlay();\n }\n };\n\n render() {\n const { style = {}, ...rest } = this.props;\n const { extraUnderlayStyle } = this.state;\n return (\n \n {this.renderChildren()}\n \n );\n }\n}\n","import * as React from 'react';\nimport {\n DrawerLayoutAndroid as RNDrawerLayoutAndroid,\n FlatList as RNFlatList,\n Switch as RNSwitch,\n TextInput as RNTextInput,\n ScrollView as RNScrollView,\n FlatListProps,\n} from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\n\nexport const ScrollView = createNativeWrapper(RNScrollView, {\n disallowInterruption: true,\n});\n\nexport const Switch = createNativeWrapper(RNSwitch, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: true,\n disallowInterruption: true,\n});\nexport const TextInput = createNativeWrapper(RNTextInput);\nexport const DrawerLayoutAndroid = createNativeWrapper(RNDrawerLayoutAndroid, {\n disallowInterruption: true,\n});\n// @ts-ignore -- TODO(TS) to investigate if it's needed\nDrawerLayoutAndroid.positions = RNDrawerLayoutAndroid.positions;\n\nexport const FlatList = React.forwardRef(\n (props: FlatListProps, ref: any) => (\n }\n />\n )\n);\n","// Similarily to the DrawerLayout component this deserves to be put in a\n// separate repo. Although, keeping it here for the time being will allow us to\n// move faster and fix possible issues quicker\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport {\n Animated,\n StyleSheet,\n View,\n I18nManager,\n LayoutChangeEvent,\n StyleProp,\n ViewStyle,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n PanGestureHandlerProps,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\ntype SwipeableExcludes = Exclude<\n keyof PanGestureHandlerProps,\n 'onGestureEvent' | 'onHandlerStateChange'\n>;\n\nexport interface SwipeableProps\n extends Pick {\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance. e.g. value of 1 will indicate that the swipeable panel\n * should exactly follow the gesture, 2 means it is going to be two times\n * \"slower\".\n */\n friction?: number;\n\n /**\n * Distance from the left edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n leftThreshold?: number;\n\n /**\n * Distance from the right edge at which released panel will animate to the\n * open state (or the open panel will animate into the closed state). By\n * default it's a half of the panel's width.\n */\n rightThreshold?: number;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the left\n * actions panel's width. It is set to true by default as long as the left\n * panel render method is present.\n */\n overshootLeft?: boolean;\n\n /**\n * Value indicating if the swipeable panel can be pulled further than the\n * right actions panel's width. It is set to true by default as long as the\n * right panel render method is present.\n */\n overshootRight?: boolean;\n\n /**\n * Specifies how much the visual interaction will be delayed compared to the\n * gesture distance at overshoot. Default value is 1, it mean no friction, for\n * a native feel, try 8 or above.\n */\n overshootFriction?: number;\n\n /**\n * Called when left action panel gets open.\n */\n onSwipeableLeftOpen?: () => void;\n\n /**\n * Called when right action panel gets open.\n */\n onSwipeableRightOpen?: () => void;\n\n /**\n * Called when action panel gets open (either right or left).\n */\n onSwipeableOpen?: () => void;\n\n /**\n * Called when action panel is closed.\n */\n onSwipeableClose?: () => void;\n\n /**\n * Called when left action panel starts animating on open.\n */\n onSwipeableLeftWillOpen?: () => void;\n\n /**\n * Called when right action panel starts animating on open.\n */\n onSwipeableRightWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on open (either right or left).\n */\n onSwipeableWillOpen?: () => void;\n\n /**\n * Called when action panel starts animating on close.\n */\n onSwipeableWillClose?: () => void;\n\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, +]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderLeftActions?: (\n progressAnimatedValue: Animated.AnimatedInterpolation,\n dragAnimatedValue: Animated.AnimatedInterpolation\n ) => React.ReactNode;\n /**\n *\n * This map describes the values to use as inputRange for extra interpolation:\n * AnimatedValue: [startValue, endValue]\n *\n * progressAnimatedValue: [0, 1] dragAnimatedValue: [0, -]\n *\n * To support `rtl` flexbox layouts use `flexDirection` styling.\n * */\n renderRightActions?: (\n progressAnimatedValue: Animated.AnimatedInterpolation,\n dragAnimatedValue: Animated.AnimatedInterpolation\n ) => React.ReactNode;\n\n useNativeAnimations?: boolean;\n\n animationOptions?: Record;\n\n /**\n * Style object for the container (`Animated.View`), for example to override\n * `overflow: 'hidden'`.\n */\n containerStyle?: StyleProp;\n\n /**\n * Style object for the children container (`Animated.View`), for example to\n * apply `flex: 1`\n */\n childrenContainerStyle?: StyleProp;\n}\n\ntype SwipeableState = {\n dragX: Animated.Value;\n rowTranslation: Animated.Value;\n rowState: number;\n leftWidth?: number;\n rightOffset?: number;\n rowWidth?: number;\n};\n\nexport default class Swipeable extends Component<\n SwipeableProps,\n SwipeableState\n> {\n static defaultProps = {\n friction: 1,\n overshootFriction: 1,\n useNativeAnimations: true,\n };\n\n constructor(props: SwipeableProps) {\n super(props);\n const dragX = new Animated.Value(0);\n this.state = {\n dragX,\n rowTranslation: new Animated.Value(0),\n rowState: 0,\n leftWidth: undefined,\n rightOffset: undefined,\n rowWidth: undefined,\n };\n this.updateAnimatedEvent(props, this.state);\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragX } }],\n { useNativeDriver: props.useNativeAnimations! }\n );\n }\n\n UNSAFE_componentWillUpdate(props: SwipeableProps, state: SwipeableState) {\n if (\n this.props.friction !== props.friction ||\n this.props.overshootLeft !== props.overshootLeft ||\n this.props.overshootRight !== props.overshootRight ||\n this.props.overshootFriction !== props.overshootFriction ||\n this.state.leftWidth !== state.leftWidth ||\n this.state.rightOffset !== state.rightOffset ||\n this.state.rowWidth !== state.rowWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n }\n\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private transX?: Animated.AnimatedInterpolation;\n private showLeftAction?: Animated.AnimatedInterpolation | Animated.Value;\n private leftActionTranslate?: Animated.AnimatedInterpolation;\n private showRightAction?: Animated.AnimatedInterpolation | Animated.Value;\n private rightActionTranslate?: Animated.AnimatedInterpolation;\n\n private updateAnimatedEvent = (\n props: SwipeableProps,\n state: SwipeableState\n ) => {\n const { friction, overshootFriction } = props;\n const { dragX, rowTranslation, leftWidth = 0, rowWidth = 0 } = state;\n const { rightOffset = rowWidth } = state;\n const rightWidth = Math.max(0, rowWidth - rightOffset);\n\n const {\n overshootLeft = leftWidth > 0,\n overshootRight = rightWidth > 0,\n } = props;\n\n const transX = Animated.add(\n rowTranslation,\n dragX.interpolate({\n inputRange: [0, friction!],\n outputRange: [0, 1],\n })\n ).interpolate({\n inputRange: [-rightWidth - 1, -rightWidth, leftWidth, leftWidth + 1],\n outputRange: [\n -rightWidth - (overshootRight ? 1 / overshootFriction! : 0),\n -rightWidth,\n leftWidth,\n leftWidth + (overshootLeft ? 1 / overshootFriction! : 0),\n ],\n });\n this.transX = transX;\n this.showLeftAction =\n leftWidth > 0\n ? transX.interpolate({\n inputRange: [-1, 0, leftWidth],\n outputRange: [0, 0, 1],\n })\n : new Animated.Value(0);\n this.leftActionTranslate = this.showLeftAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n this.showRightAction =\n rightWidth > 0\n ? transX.interpolate({\n inputRange: [-rightWidth, 0, 1],\n outputRange: [1, 0, 0],\n })\n : new Animated.Value(0);\n this.rightActionTranslate = this.showRightAction.interpolate({\n inputRange: [0, Number.MIN_VALUE],\n outputRange: [-10000, 0],\n extrapolate: 'clamp',\n });\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.close();\n }\n };\n\n private onHandlerStateChange = (\n ev: HandlerStateChangeEvent\n ) => {\n if (ev.nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease(ev);\n }\n };\n\n private handleRelease = (\n ev: HandlerStateChangeEvent\n ) => {\n const { velocityX, translationX: dragX } = ev.nativeEvent;\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n const {\n friction,\n leftThreshold = leftWidth / 2,\n rightThreshold = rightWidth / 2,\n } = this.props;\n\n const startOffsetX = this.currentOffset() + dragX / friction!;\n const translationX = (dragX + DRAG_TOSS * velocityX) / friction!;\n\n let toValue = 0;\n if (rowState === 0) {\n if (translationX > leftThreshold) {\n toValue = leftWidth;\n } else if (translationX < -rightThreshold) {\n toValue = -rightWidth;\n }\n } else if (rowState === 1) {\n // swiped to left\n if (translationX > -leftThreshold) {\n toValue = leftWidth;\n }\n } else {\n // swiped to right\n if (translationX < rightThreshold) {\n toValue = -rightWidth;\n }\n }\n\n this.animateRow(startOffsetX, toValue, velocityX / friction!);\n };\n\n private animateRow = (\n fromValue: number,\n toValue: number,\n velocityX?:\n | number\n | {\n x: number;\n y: number;\n }\n ) => {\n const { dragX, rowTranslation } = this.state;\n dragX.setValue(0);\n rowTranslation.setValue(fromValue);\n\n this.setState({ rowState: Math.sign(toValue) });\n Animated.spring(rowTranslation, {\n restSpeedThreshold: 1.7,\n restDisplacementThreshold: 0.4,\n velocity: velocityX,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n ...this.props.animationOptions,\n }).start(({ finished }) => {\n if (finished) {\n if (toValue > 0 && this.props.onSwipeableLeftOpen) {\n this.props.onSwipeableLeftOpen();\n } else if (toValue < 0 && this.props.onSwipeableRightOpen) {\n this.props.onSwipeableRightOpen();\n }\n\n if (toValue === 0) {\n this.props.onSwipeableClose?.();\n } else {\n this.props.onSwipeableOpen?.();\n }\n }\n });\n if (toValue > 0 && this.props.onSwipeableLeftWillOpen) {\n this.props.onSwipeableLeftWillOpen();\n } else if (toValue < 0 && this.props.onSwipeableRightWillOpen) {\n this.props.onSwipeableRightWillOpen();\n }\n\n if (toValue === 0) {\n this.props.onSwipeableWillClose?.();\n } else {\n this.props.onSwipeableWillOpen?.();\n }\n };\n\n private onRowLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ rowWidth: nativeEvent.layout.width });\n };\n\n private currentOffset = () => {\n const { leftWidth = 0, rowWidth = 0, rowState } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n if (rowState === 1) {\n return leftWidth;\n } else if (rowState === -1) {\n return -rightWidth;\n }\n return 0;\n };\n\n close = () => {\n this.animateRow(this.currentOffset(), 0);\n };\n\n openLeft = () => {\n const { leftWidth = 0 } = this.state;\n this.animateRow(this.currentOffset(), leftWidth);\n };\n\n openRight = () => {\n const { rowWidth = 0 } = this.state;\n const { rightOffset = rowWidth } = this.state;\n const rightWidth = rowWidth - rightOffset;\n this.animateRow(this.currentOffset(), -rightWidth);\n };\n\n render() {\n const { rowState } = this.state;\n const { children, renderLeftActions, renderRightActions } = this.props;\n\n const left = renderLeftActions && (\n \n {renderLeftActions(this.showLeftAction!, this.transX!)}\n \n this.setState({ leftWidth: nativeEvent.layout.x })\n }\n />\n \n );\n\n const right = renderRightActions && (\n \n {renderRightActions(this.showRightAction!, this.transX!)}\n \n this.setState({ rightOffset: nativeEvent.layout.x })\n }\n />\n \n );\n\n return (\n \n \n {left}\n {right}\n \n \n {children}\n \n \n \n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n leftActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row-reverse' : 'row',\n },\n rightActions: {\n ...StyleSheet.absoluteFillObject,\n flexDirection: I18nManager.isRTL ? 'row' : 'row-reverse',\n },\n});\n","// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport {\n Animated,\n StyleSheet,\n View,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport {\n PanGestureHandler,\n PanGestureHandlerEventPayload,\n} from '../handlers/PanGestureHandler';\nimport {\n TapGestureHandler,\n TapGestureHandlerEventPayload,\n} from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\nconst IDLE: DrawerState = 'Idle';\nconst DRAGGING: DrawerState = 'Dragging';\nconst SETTLING: DrawerState = 'Settling';\n\nexport type DrawerPosition = 'left' | 'right';\n\nexport type DrawerState = 'Idle' | 'Dragging' | 'Settling';\n\nexport type DrawerType = 'front' | 'back' | 'slide';\n\nexport type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';\n\nexport type DrawerKeyboardDismissMode = 'none' | 'on-drag';\n\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the standard implementation already and is one\n * of the required params. Gesture handler version of DrawerLayout make it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n\n drawerPosition?: DrawerPosition;\n\n drawerWidth?: number;\n\n drawerBackgroundColor?: string;\n\n drawerLockMode?: DrawerLockMode;\n\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default black\n *\n * Color of a semi-transparent overlay to be displayed on top of the content\n * view when drawer gets open. A solid color should be used as the opacity is\n * added by the Drawer itself and the opacity of the overlay is animated (from\n * 0% to 70%).\n */\n overlayColor?: string;\n\n contentContainerStyle?: StyleProp;\n\n drawerContainerStyle?: StyleProp;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n onGestureRef?: (ref: PanGestureHandler) => void;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n};\n\nexport type DrawerMovementOption = {\n velocity?: number;\n speed?: number;\n};\nexport default class DrawerLayout extends Component<\n DrawerLayoutProps,\n DrawerLayoutState\n> {\n static defaultProps = {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false,\n };\n\n constructor(props: DrawerLayoutProps) {\n super(props);\n\n const dragX = new Animated.Value(0);\n const touchX = new Animated.Value(0);\n const drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX,\n touchX,\n drawerTranslation,\n containerWidth: 0,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n UNSAFE_componentWillUpdate(\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) {\n if (\n this.props.drawerPosition !== props.drawerPosition ||\n this.props.drawerWidth !== props.drawerWidth ||\n this.props.drawerType !== props.drawerType ||\n this.state.containerWidth !== state.containerWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n }\n\n private openValue?: Animated.AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent\n ) => void;\n private accessibilityIsModalView = React.createRef();\n private pointerEventsView = React.createRef();\n private panGestureHandler = React.createRef();\n private drawerShown = false;\n\n static positions = {\n Left: 'left',\n Right: 'right',\n };\n\n private updateAnimatedEvent = (\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) => {\n // Event definition is based on\n const { drawerPosition, drawerWidth, drawerType } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth,\n } = state;\n\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(\n new Animated.Value(-1),\n dragXValue\n ) as Animated.Value; // TODO(TS): (for all \"as\" in this file) make sure we can map this\n touchX = Animated.add(\n new Animated.Value(containerWidth),\n Animated.multiply(new Animated.Value(-1), touchXValue)\n ) as Animated.Value; // TODO(TS): make sure we can map this;\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n }\n\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n let translationX = dragX;\n if (drawerType === 'front') {\n const startPositionX = Animated.add(\n touchX,\n Animated.multiply(new Animated.Value(-1), dragX)\n );\n\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth! - 1, drawerWidth!, drawerWidth! + 1],\n outputRange: [0, 0, 1],\n });\n translationX = Animated.add(\n dragX,\n dragOffsetFromOnStartPosition\n ) as Animated.Value; // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth!],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n\n const gestureOptions: {\n useNativeDriver: boolean;\n // TODO: make sure it is correct\n listener?: (\n ev: NativeSyntheticEvent\n ) => void;\n } = {\n useNativeDriver: props.useNativeAnimations!,\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = (ev) => {\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n\n this.props.onDrawerSlide?.(position);\n };\n }\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragXValue, x: touchXValue } }],\n gestureOptions\n );\n };\n\n private handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ containerWidth: nativeEvent.layout.width });\n };\n\n private emitStateChanged = (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => {\n this.props.onDrawerStateChanged?.(newState, drawerWillShow);\n };\n\n private openingHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n if (\n this.drawerShown &&\n nativeEvent.oldState === State.ACTIVE &&\n this.props.drawerLockMode !== 'locked-open'\n ) {\n this.closeDrawer();\n }\n };\n\n private handleRelease = ({\n nativeEvent,\n }: HandlerStateChangeEvent) => {\n const { drawerWidth, drawerPosition, drawerType } = this.props;\n const { containerWidth } = this.state;\n let { translationX: dragX, velocityX, x: touchX } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth! ? gestureStartX - drawerWidth! : 0;\n }\n\n const startOffsetX =\n dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth! : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth! / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth!, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n };\n\n private updateShowing = (showing: boolean) => {\n this.drawerShown = showing;\n this.accessibilityIsModalView.current?.setNativeProps({\n accessibilityViewIsModal: showing,\n });\n this.pointerEventsView.current?.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none',\n });\n const { drawerPosition, minSwipeDistance, edgeWidth } = this.props;\n const fromLeft = drawerPosition === 'left';\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: showing ? undefined : edgeWidth }\n : { right: 0, width: showing ? undefined : edgeWidth };\n // @ts-ignore internal API, maybe could be fixed in handler types\n this.panGestureHandler.current?.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance!,\n });\n };\n\n private animateDrawer = (\n fromValue: number | null | undefined,\n toValue: number,\n velocity: number,\n speed?: number\n ) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(\n this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth\n );\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n speed: speed ?? undefined,\n }).start(({ finished }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n if (willShow) {\n this.props.onDrawerOpen?.();\n } else {\n this.props.onDrawerClose?.();\n }\n }\n });\n };\n\n openDrawer = (options: DrawerMovementOption = {}) => {\n this.animateDrawer(\n // TODO: decide if it should be null or undefined is the proper value\n undefined,\n this.props.drawerWidth!,\n options.velocity ? options.velocity : 0\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n this.forceUpdate();\n };\n\n closeDrawer = (options: DrawerMovementOption = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(undefined, 0, options.velocity ? options.velocity : 0);\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n const overlayOpacity = this.openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n \n \n \n );\n };\n\n private renderDrawer = () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front';\n\n // we rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n\n let containerStyles;\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth!] : [0, -drawerWidth!],\n extrapolate: 'clamp',\n });\n containerStyles = {\n transform: [{ translateX: containerTranslateX }],\n };\n }\n\n let drawerTranslateX: number | Animated.AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n }\n const drawerStyles: {\n transform: { translateX: number | Animated.AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n \n \n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n \n \n \n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n \n \n \n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (this\n .panGestureHandler as React.MutableRefObject).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const {\n drawerPosition,\n drawerLockMode,\n edgeWidth,\n minSwipeDistance,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: this.drawerShown ? undefined : edgeWidth }\n : { right: 0, width: this.drawerShown ? undefined : edgeWidth };\n\n return (\n \n {this.renderDrawer()}\n \n );\n }\n}\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n","import { startListening } from './handlers/gestures/eventReceiver';\n\nexport function initialize() {\n startListening();\n}\n","export function val(v) {\n return v && v.__getValue ? v.__getValue() : v || 0;\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 */\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;","/**\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;","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport invariant from 'invariant';\n\nfunction sanitizeValue(value) {\n return value === null || value === undefined || typeof value === 'string'\n ? value\n : Number(value);\n}\n\nconst CONSTANT_VALUES = new Map();\n\nfunction initializeConstantValues() {\n if (CONSTANT_VALUES.size !== 0) {\n return;\n }\n [0, -1, 1, -2, 2].forEach((v) =>\n CONSTANT_VALUES.set(v, new InternalAnimatedValue(v, true))\n );\n}\n\n/**\n * This class has been made internal in order to omit dependencies' cycles which\n * were caused by imperative setValue and interpolate – they are currently exposed with AnimatedValue.js\n */\nexport default class InternalAnimatedValue extends AnimatedNode {\n static valueForConstant(number) {\n initializeConstantValues();\n return (\n CONSTANT_VALUES.get(number) || new InternalAnimatedValue(number, true)\n );\n }\n\n constructor(value, constant = false) {\n invariant(value !== null, 'Animated.Value cannot be set to the null');\n super({ type: 'value', value: sanitizeValue(value) });\n this._startingValue = this._value = value;\n this._animation = null;\n this._constant = constant;\n }\n\n __detach() {\n if (!this._constant) {\n if (ReanimatedModule.getValue) {\n ReanimatedModule.getValue(\n this.__nodeID,\n (val) => (this.__nodeConfig.value = val)\n );\n } else {\n this.__nodeConfig.value = this.__getValue();\n }\n }\n this.__detachAnimation(this._animation);\n super.__detach();\n }\n\n __detachAnimation(animation) {\n animation && animation.__detach();\n if (this._animation === animation) {\n this._animation = null;\n }\n }\n\n __attachAnimation(animation) {\n this.__detachAnimation(this._animation);\n this._animation = animation;\n }\n\n __onEvaluate() {\n if (this.__inputNodes && this.__inputNodes.length) {\n this.__inputNodes.forEach(val);\n }\n return this._value;\n }\n\n // AnimatedValue will override this method to modify the value of a native node.\n setValue(value) {\n this.__detachAnimation(this._animation);\n this._updateValue(value);\n }\n\n _updateValue(value) {\n this._value = value;\n this.__forceUpdateCache(value);\n }\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","import reanimatedJS from '../js-reanimated';\nimport { shouldBeUseWeb } from '../PlatformChecker';\nimport { NativeReanimated } from './NativeReanimated';\nlet exportedModule;\nif (shouldBeUseWeb()) {\n exportedModule = reanimatedJS;\n}\nelse {\n exportedModule = new NativeReanimated();\n}\nexport default exportedModule;\n","import { Platform } from 'react-native';\nexport function isJest() {\n return !!process.env.JEST_WORKER_ID;\n}\nexport function isChromeDebugger() {\n return !global.nativeCallSyncHook || global.__REMOTEDEV__;\n}\nexport function isWeb() {\n return Platform.OS === 'web';\n}\nexport function shouldBeUseWeb() {\n return isJest() || isChromeDebugger() || isWeb();\n}\nexport function nativeShouldBeMock() {\n return isJest() || isChromeDebugger();\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 * 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: 'nowrap',\n wordWrap: 'normal'\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;","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) -> React.createRef.\n// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.\nimport * as React from 'react';\nimport { Platform, findNodeHandle as findNodeHandleRN } from 'react-native';\n\nimport { State } from '../State';\nimport { EventType } from '../EventType';\nimport { ValueOf } from '../typeUtils';\nimport { handlerIDToTag } from './handlersRegistry';\nimport { toArray } from '../utils';\n\nconst commonProps = [\n 'id',\n 'enabled',\n 'shouldCancelWhenOutside',\n 'hitSlop',\n] as const;\n\nconst componentInteractionProps = ['waitFor', 'simultaneousHandlers'] as const;\n\nexport const baseGestureHandlerProps = [\n ...commonProps,\n ...componentInteractionProps,\n 'onBegan',\n 'onFailed',\n 'onCancelled',\n 'onActivated',\n 'onEnded',\n 'onGestureEvent',\n 'onHandlerStateChange',\n] as const;\n\nexport const baseGestureHandlerWithMonitorProps = [\n ...commonProps,\n 'needsPointerData',\n 'manualActivation',\n];\n\nexport interface GestureEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf;\n}\n\nexport interface HandlerStateChangeEventPayload {\n handlerTag: number;\n numberOfPointers: number;\n state: ValueOf;\n oldState: ValueOf;\n}\n\nexport type HitSlop =\n | number\n | Partial<\n Record<\n 'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',\n number\n >\n >\n | Record<'width' | 'left', number>\n | Record<'width' | 'right', number>\n | Record<'height' | 'top', number>\n | Record<'height' | 'bottom', number>;\n\n//TODO(TS) events in handlers\n\nexport interface GestureEvent> {\n nativeEvent: Readonly;\n}\nexport interface HandlerStateChangeEvent<\n ExtraEventPayloadT = Record\n> {\n nativeEvent: Readonly;\n}\n\nexport type TouchData = {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\n\nexport type GestureTouchEvent = {\n handlerTag: number;\n numberOfTouches: number;\n state: ValueOf;\n eventType: EventType;\n allTouches: TouchData[];\n changedTouches: TouchData[];\n};\n\nexport type GestureUpdateEvent<\n GestureEventPayloadT = Record\n> = GestureEventPayload & GestureEventPayloadT;\n\nexport type GestureStateChangeEvent<\n GestureStateChangeEventPayloadT = Record\n> = HandlerStateChangeEventPayload & GestureStateChangeEventPayloadT;\n\nexport type CommonGestureConfig = {\n enabled?: boolean;\n shouldCancelWhenOutside?: boolean;\n hitSlop?: HitSlop;\n};\n\n// Events payloads are types instead of interfaces due to TS limitation.\n// See https://github.com/microsoft/TypeScript/issues/15300 for more info.\nexport type BaseGestureHandlerProps<\n ExtraEventPayloadT extends Record = Record\n> = CommonGestureConfig & {\n id?: string;\n waitFor?: React.Ref | React.Ref[];\n simultaneousHandlers?: React.Ref | React.Ref[];\n // TODO(TS) - fix event types\n onBegan?: (event: HandlerStateChangeEvent) => void;\n onFailed?: (event: HandlerStateChangeEvent) => void;\n onCancelled?: (event: HandlerStateChangeEvent) => void;\n onActivated?: (event: HandlerStateChangeEvent) => void;\n onEnded?: (event: HandlerStateChangeEvent) => void;\n\n //TODO(TS) consider using NativeSyntheticEvent\n onGestureEvent?: (event: GestureEvent) => void;\n onHandlerStateChange?: (\n event: HandlerStateChangeEvent\n ) => void;\n};\n\nfunction isConfigParam(param: unknown, name: string) {\n // param !== Object(param) returns false if `param` is a function\n // or an object and returns true if `param` is null\n return (\n param !== undefined &&\n (param !== Object(param) ||\n !('__isNative' in (param as Record))) &&\n name !== 'onHandlerStateChange' &&\n name !== 'onGestureEvent'\n );\n}\n\nexport function filterConfig(\n props: Record,\n validProps: string[],\n defaults: Record = {}\n) {\n const filteredConfig = { ...defaults };\n for (const key of validProps) {\n let value = props[key];\n if (isConfigParam(value, key)) {\n if (key === 'simultaneousHandlers' || key === 'waitFor') {\n value = transformIntoHandlerTags(props[key]);\n } else if (key === 'hitSlop' && typeof value !== 'object') {\n value = { top: value, left: value, bottom: value, right: value };\n }\n filteredConfig[key] = value;\n }\n }\n return filteredConfig;\n}\n\nfunction transformIntoHandlerTags(handlerIDs: any) {\n handlerIDs = toArray(handlerIDs);\n\n if (Platform.OS === 'web') {\n return handlerIDs\n .map(({ current }: { current: any }) => current)\n .filter((handle: any) => handle);\n }\n // converts handler string IDs into their numeric tags\n return handlerIDs\n .map(\n (handlerID: any) =>\n handlerIDToTag[handlerID] || handlerID.current?.handlerTag || -1\n )\n .filter((handlerTag: number) => handlerTag > 0);\n}\n\nexport function findNodeHandle(\n node: null | number | React.Component | React.ComponentClass\n): null | number | React.Component | React.ComponentClass {\n if (Platform.OS === 'web') return node;\n return findNodeHandleRN(node);\n}\n","/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nexport function Bezier(mX1, mY1, mX2, mY2) {\n 'worklet';\n const NEWTON_ITERATIONS = 4;\n const NEWTON_MIN_SLOPE = 0.001;\n const SUBDIVISION_PRECISION = 0.0000001;\n const SUBDIVISION_MAX_ITERATIONS = 10;\n const kSplineTableSize = 11;\n const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n function A(aA1, aA2) {\n 'worklet';\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n function B(aA1, aA2) {\n 'worklet';\n return 3.0 * aA2 - 6.0 * aA1;\n }\n function C(aA1) {\n 'worklet';\n return 3.0 * aA1;\n }\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n function calcBezier(aT, aA1, aA2) {\n 'worklet';\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n function getSlope(aT, aA1, aA2) {\n 'worklet';\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n 'worklet';\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n 'worklet';\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function LinearEasing(x) {\n 'worklet';\n return x;\n }\n if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n // FIXME: Float32Array is not available in Hermes right now\n //\n // var float32ArraySupported = typeof Float32Array === 'function';\n // const sampleValues = float32ArraySupported\n // ? new Float32Array(kSplineTableSize)\n // : new Array(kSplineTableSize);\n // Precompute samples table\n const sampleValues = new Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n 'worklet';\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n // Interpolate to provide an initial guess for t\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function BezierEasing(x) {\n 'worklet';\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n","// spread and rest parameters can't be used in worklets right now\n/* eslint-disable prefer-rest-params */\n/* eslint-disable prefer-spread */\n/* global _WORKLET */\n// @ts-ignore reanimated1/Easing is JS file\nimport EasingNode from '../reanimated1/Easing';\nimport { Bezier } from './Bezier';\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 */\nfunction linear(t) {\n 'worklet';\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 */\nfunction ease(t) {\n 'worklet';\n return Bezier(0.42, 0, 1, 1)(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 */\nfunction quad(t) {\n 'worklet';\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 */\nfunction cubic(t) {\n 'worklet';\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 */\nfunction poly(n) {\n 'worklet';\n return (t) => {\n 'worklet';\n return Math.pow(t, n);\n };\n}\n/**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\nfunction sin(t) {\n 'worklet';\n return 1 - Math.cos((t * Math.PI) / 2);\n}\n/**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\nfunction circle(t) {\n 'worklet';\n return 1 - Math.sqrt(1 - t * t);\n}\n/**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\nfunction exp(t) {\n 'worklet';\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 */\nfunction elastic(bounciness = 1) {\n 'worklet';\n const p = bounciness * Math.PI;\n return (t) => {\n 'worklet';\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 */\nfunction back(s = 1.70158) {\n 'worklet';\n return (t) => {\n 'worklet';\n return t * t * ((s + 1) * t - s);\n };\n}\n/**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\nfunction bounce(t) {\n 'worklet';\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n if (t < 2 / 2.75) {\n const t2 = t - 1.5 / 2.75;\n return 7.5625 * t2 * t2 + 0.75;\n }\n if (t < 2.5 / 2.75) {\n const t2 = t - 2.25 / 2.75;\n return 7.5625 * t2 * t2 + 0.9375;\n }\n const 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 */\nfunction bezier(x1, y1, x2, y2) {\n 'worklet';\n return {\n factory: () => {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n },\n };\n}\nfunction bezierFn(x1, y1, x2, y2) {\n 'worklet';\n return Bezier(x1, y1, x2, y2);\n}\n/**\n * Runs an easing function forwards.\n */\nfunction in_(easing) {\n 'worklet';\n return easing;\n}\n/**\n * Runs an easing function backwards.\n */\nfunction out(easing) {\n 'worklet';\n return (t) => {\n 'worklet';\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 */\nfunction inOut(easing) {\n 'worklet';\n return (t) => {\n 'worklet';\n if (t < 0.5) {\n return easing(t * 2) / 2;\n }\n return 1 - easing((1 - t) * 2) / 2;\n };\n}\nconst EasingObject = {\n linear,\n ease,\n quad,\n cubic,\n poly,\n sin,\n circle,\n exp,\n elastic,\n back,\n bounce,\n bezier,\n bezierFn,\n in: in_,\n out,\n inOut,\n};\n// TODO type worklets\nfunction createChecker(worklet, workletName, prevArgs) {\n /* should return Animated.Value or worklet */\n function checkIfReaOne() {\n 'worklet';\n if (arguments && !_WORKLET) {\n for (let i = 0; i < arguments.length; i++) {\n const arg = arguments[i];\n if (arg && arg.__nodeID) {\n console.warn(`Easing was renamed to EasingNode in Reanimated 2. Please use EasingNode instead`);\n if (prevArgs) {\n return EasingNode[workletName]\n .apply(undefined, prevArgs)\n .apply(undefined, arguments);\n }\n return EasingNode[workletName].apply(undefined, arguments);\n }\n }\n }\n // @ts-ignore this is implicitly any - TODO\n const res = worklet.apply(this, arguments);\n if (!_WORKLET && res && typeof res === 'function' && res.__workletHash) {\n return createChecker(res, workletName, arguments);\n }\n return res;\n }\n // use original worklet on UI side\n checkIfReaOne._closure = worklet._closure;\n checkIfReaOne.asString = worklet.asString;\n checkIfReaOne.__workletHash = worklet.__workletHash;\n checkIfReaOne.__location = worklet.__location;\n return checkIfReaOne;\n}\nObject.keys(EasingObject).forEach((key) => {\n EasingObject[key] = createChecker(EasingObject[key], key);\n});\nexport const Easing = EasingObject;\n","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","import { useEffect, useRef } from 'react';\nimport { processColor } from '../Colors';\nimport { makeRemote } from '../core';\nimport { isWeb, isJest } from '../PlatformChecker';\nimport { colorProps } from '../UpdateProps';\nimport WorkletEventHandler from '../WorkletEventHandler';\nexport function useEvent(handler, eventNames = [], rebuild = false) {\n const initRef = useRef(null);\n if (initRef.current === null) {\n initRef.current = new WorkletEventHandler(handler, eventNames);\n }\n else if (rebuild) {\n initRef.current.updateWorklet(handler);\n }\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n return initRef;\n}\nexport function useHandler(handlers, dependencies) {\n const initRef = useRef(null);\n if (initRef.current === null) {\n initRef.current = {\n context: makeRemote({}),\n savedDependencies: [],\n };\n }\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n const { context, savedDependencies } = initRef.current;\n dependencies = buildDependencies(dependencies, handlers);\n const doDependenciesDiffer = !areDependenciesEqual(dependencies, savedDependencies);\n initRef.current.savedDependencies = dependencies;\n const useWeb = isWeb() || isJest();\n return { context, doDependenciesDiffer, useWeb };\n}\n// builds one big hash from multiple worklets' hashes\nexport function buildWorkletsHash(handlers) {\n return Object.values(handlers).reduce((acc, worklet) => \n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n acc + worklet.__workletHash.toString(), '');\n}\n// builds dependencies array for gesture handlers\nexport function buildDependencies(dependencies, handlers) {\n const handlersList = Object.values(handlers).filter((handler) => handler !== undefined);\n if (!dependencies) {\n dependencies = handlersList.map((handler) => {\n return {\n workletHash: handler.__workletHash,\n closure: handler._closure,\n };\n });\n }\n else {\n dependencies.push(buildWorkletsHash(handlersList));\n }\n return dependencies;\n}\n// this is supposed to work as useEffect comparison\nexport function areDependenciesEqual(nextDeps, prevDeps) {\n function is(x, y) {\n /* eslint-disable no-self-compare */\n return (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n /* eslint-enable no-self-compare */\n }\n const objectIs = typeof Object.is === 'function' ? Object.is : is;\n function areHookInputsEqual(nextDeps, prevDeps) {\n if (!nextDeps || !prevDeps || prevDeps.length !== nextDeps.length) {\n return false;\n }\n for (let i = 0; i < prevDeps.length; ++i) {\n if (!objectIs(nextDeps[i], prevDeps[i])) {\n return false;\n }\n }\n return true;\n }\n return areHookInputsEqual(nextDeps, prevDeps);\n}\nexport function hasColorProps(updates) {\n const colorPropsSet = new Set(colorProps);\n for (const key in updates) {\n if (colorPropsSet.has(key)) {\n return true;\n }\n }\n return false;\n}\nexport function parseColors(updates) {\n 'worklet';\n for (const key in updates) {\n if (colorProps.indexOf(key) !== -1) {\n // value could be an animation in which case processColor will recognize it and will return undefined\n // -> in such a case we don't want to override style of that key\n const processedColor = processColor(updates[key]);\n if (processedColor !== undefined) {\n updates[key] = processedColor;\n }\n }\n }\n}\nexport function canApplyOptimalisation(upadterFn) {\n const FUNCTIONLESS_FLAG = 0b00000001;\n const STATEMENTLESS_FLAG = 0b00000010;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const optimalization = upadterFn.__optimalization;\n return (optimalization & FUNCTIONLESS_FLAG && optimalization & STATEMENTLESS_FLAG);\n}\nexport function isAnimated(prop) {\n 'worklet';\n const propsToCheck = [prop];\n while (propsToCheck.length > 0) {\n const currentProp = propsToCheck.pop();\n if (Array.isArray(currentProp)) {\n for (const item of currentProp) {\n propsToCheck.push(item);\n }\n }\n else if ((currentProp === null || currentProp === void 0 ? void 0 : currentProp.onFrame) !== undefined) {\n return true;\n }\n else if (typeof currentProp === 'object') {\n for (const item of Object.values(currentProp)) {\n propsToCheck.push(item);\n }\n }\n // if none of the above, it's not the animated prop, check next one\n }\n // when none of the props were animated return false\n return false;\n}\nexport function styleDiff(oldStyle, newStyle) {\n 'worklet';\n const diff = {};\n for (const key in oldStyle) {\n if (newStyle[key] === undefined) {\n diff[key] = null;\n }\n }\n for (const key in newStyle) {\n const value = newStyle[key];\n const oldValue = oldStyle[key];\n if (isAnimated(value)) {\n // do nothing\n continue;\n }\n if (oldValue !== value) {\n diff[key] = value;\n }\n }\n return diff;\n}\nexport function getStyleWithoutAnimations(newStyle) {\n 'worklet';\n const diff = {};\n for (const key in newStyle) {\n const value = newStyle[key];\n if (isAnimated(value)) {\n continue;\n }\n diff[key] = value;\n }\n return diff;\n}\nexport const validateAnimatedStyles = (styles) => {\n 'worklet';\n if (typeof styles !== 'object') {\n throw new Error(`useAnimatedStyle has to return an object, found ${typeof styles} instead`);\n }\n else if (Array.isArray(styles)) {\n throw new Error('useAnimatedStyle has to return an object and cannot return static styles combined with dynamic ones. Please do merging where a component receives props.');\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 * \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};","/**\n * lodash 4.0.0 (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright 2012-2016 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","/* global _WORKLET */\nimport { convertToHSVA, isColor, toRGBA } from '../Colors';\nimport NativeReanimatedModule from '../NativeReanimated';\nlet IN_STYLE_UPDATER = false;\nexport function initialUpdaterRun(updater) {\n IN_STYLE_UPDATER = true;\n const result = updater();\n IN_STYLE_UPDATER = false;\n return result;\n}\nfunction recognizePrefixSuffix(value) {\n 'worklet';\n var _a;\n if (typeof value === 'string') {\n const match = value.match(/([A-Za-z]*)(-?\\d*\\.?\\d*)([eE][-+]?[0-9]+)?([A-Za-z%]*)/);\n if (!match) {\n throw Error(\"Couldn't parse animation value. Check if there isn't any typo.\");\n }\n const prefix = match[1];\n const suffix = match[4];\n // number with scientific notation\n const number = match[2] + ((_a = match[3]) !== null && _a !== void 0 ? _a : '');\n return { prefix, suffix, strippedValue: parseFloat(number) };\n }\n else {\n return { strippedValue: value };\n }\n}\nfunction decorateAnimation(animation) {\n 'worklet';\n if (animation.isHigherOrder) {\n return;\n }\n const baseOnStart = animation.onStart;\n const baseOnFrame = animation.onFrame;\n const animationCopy = Object.assign({}, animation);\n delete animationCopy.callback;\n const prefNumberSuffOnStart = (animation, value, timestamp, previousAnimation) => {\n var _a, _b, _c, _d;\n // recognize prefix, suffix, and updates stripped value on animation start\n const { prefix, suffix, strippedValue } = recognizePrefixSuffix(value);\n animation.__prefix = prefix;\n animation.__suffix = suffix;\n animation.strippedCurrent = strippedValue;\n const { strippedValue: strippedToValue } = recognizePrefixSuffix(animation.toValue);\n animation.current = strippedValue;\n animation.startValue = strippedValue;\n animation.toValue = strippedToValue;\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current = previousAnimation.strippedCurrent;\n }\n baseOnStart(animation, strippedValue, timestamp, previousAnimation);\n animation.current =\n ((_a = animation.__prefix) !== null && _a !== void 0 ? _a : '') +\n animation.current +\n ((_b = animation.__suffix) !== null && _b !== void 0 ? _b : '');\n if (previousAnimation && previousAnimation !== animation) {\n previousAnimation.current =\n ((_c = previousAnimation.__prefix) !== null && _c !== void 0 ? _c : '') +\n previousAnimation.current +\n ((_d = previousAnimation.__suffix) !== null && _d !== void 0 ? _d : '');\n }\n };\n const prefNumberSuffOnFrame = (animation, timestamp) => {\n var _a, _b;\n animation.current = animation.strippedCurrent;\n const res = baseOnFrame(animation, timestamp);\n animation.strippedCurrent = animation.current;\n animation.current =\n ((_a = animation.__prefix) !== null && _a !== void 0 ? _a : '') +\n animation.current +\n ((_b = animation.__suffix) !== null && _b !== void 0 ? _b : '');\n return res;\n };\n const tab = ['H', 'S', 'V', 'A'];\n const colorOnStart = (animation, value, timestamp, previousAnimation) => {\n let HSVAValue;\n let HSVACurrent;\n let HSVAToValue;\n const res = [];\n if (isColor(value)) {\n HSVACurrent = convertToHSVA(animation.current);\n HSVAValue = convertToHSVA(value);\n if (animation.toValue) {\n HSVAToValue = convertToHSVA(animation.toValue);\n }\n }\n tab.forEach((i, index) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = HSVACurrent[index];\n animation[i].toValue = HSVAToValue ? HSVAToValue[index] : undefined;\n animation[i].onStart(animation[i], HSVAValue[index], timestamp, previousAnimation ? previousAnimation[i] : undefined);\n res.push(animation[i].current);\n });\n animation.current = toRGBA(res);\n };\n const colorOnFrame = (animation, timestamp) => {\n const HSVACurrent = convertToHSVA(animation.current);\n const res = [];\n let finished = true;\n tab.forEach((i, index) => {\n animation[i].current = HSVACurrent[index];\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n res.push(animation[i].current);\n });\n animation.current = toRGBA(res);\n return finished;\n };\n const arrayOnStart = (animation, value, timestamp, previousAnimation) => {\n value.forEach((v, i) => {\n animation[i] = Object.assign({}, animationCopy);\n animation[i].current = v;\n animation[i].toValue = animation.toValue[i];\n animation[i].onStart(animation[i], v, timestamp, previousAnimation ? previousAnimation[i] : undefined);\n });\n animation.current = value;\n };\n const arrayOnFrame = (animation, timestamp) => {\n let finished = true;\n animation.current.forEach((v, i) => {\n // @ts-ignore: disable-next-line\n finished &= animation[i].onFrame(animation[i], timestamp);\n animation.current[i] = animation[i].current;\n });\n return finished;\n };\n animation.onStart = (animation, value, timestamp, previousAnimation) => {\n if (isColor(value)) {\n colorOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = colorOnFrame;\n return;\n }\n else if (Array.isArray(value)) {\n arrayOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = arrayOnFrame;\n return;\n }\n else if (typeof value === 'string') {\n prefNumberSuffOnStart(animation, value, timestamp, previousAnimation);\n animation.onFrame = prefNumberSuffOnFrame;\n return;\n }\n baseOnStart(animation, value, timestamp, previousAnimation);\n };\n}\nexport function defineAnimation(starting, factory) {\n 'worklet';\n if (IN_STYLE_UPDATER) {\n return starting;\n }\n const create = () => {\n 'worklet';\n const animation = factory();\n decorateAnimation(animation);\n return animation;\n };\n if (_WORKLET || !NativeReanimatedModule.native) {\n return create();\n }\n // @ts-ignore: eslint-disable-line\n return create;\n}\nexport function cancelAnimation(sharedValue) {\n 'worklet';\n // setting the current value cancels the animation if one is currently running\n sharedValue.value = sharedValue.value; // eslint-disable-line no-self-assign\n}\n// TODO it should work only if there was no animation before.\nexport function withStartValue(startValue, animation) {\n 'worklet';\n return defineAnimation(startValue, () => {\n 'worklet';\n if (!_WORKLET && typeof animation === 'function') {\n animation = animation();\n }\n animation.current = startValue;\n return animation;\n });\n}\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 * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nexport default {\n disconnectNodeFromView() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n attachEvent(_viewTag, _eventName, _nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n detachEvent(_viewTag, _eventName, _nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n createNode(_nodeID, _config) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n dropNode(_nodeID) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n configureProps(_nativeProps, _uiProps) {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n disconnectNodes() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n addListener() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n removeListeners() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n removeAllListeners() {\n return __awaiter(this, void 0, void 0, function* () {\n // noop\n });\n },\n animateNextTransition() {\n return __awaiter(this, void 0, void 0, function* () {\n console.warn('Reanimated: animateNextTransition is unimplemented on current platform');\n });\n },\n};\n","import ReanimatedModuleCompat from './ReanimatedModuleCompat';\nexport default ReanimatedModuleCompat;\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 _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;","import { createContext } from 'react';\n\nexport interface BottomSheetModalContextType {\n dismiss: (key?: string) => boolean;\n dismissAll: () => void;\n}\n\nexport const BottomSheetModalContext =\n createContext(null);\n\nexport const BottomSheetModalProvider = BottomSheetModalContext.Provider;\n","import { createContext, Ref } from 'react';\nimport type { Insets } from 'react-native';\nimport type Animated from 'react-native-reanimated';\nimport type BottomSheet from '../../components/bottomSheet';\nimport type { BottomSheetModalStackBehavior } from '../../components/bottomSheetModal';\n\nexport interface BottomSheetModalInternalContextType {\n containerHeight: Animated.SharedValue;\n containerOffset: Animated.SharedValue>;\n mountSheet: (\n key: string,\n ref: Ref,\n stackBehavior: BottomSheetModalStackBehavior\n ) => void;\n unmountSheet: (key: string) => void;\n willUnmountSheet: (key: string) => void;\n}\n\nexport const BottomSheetModalInternalContext =\n createContext(null);\n\nexport const BottomSheetModalInternalProvider =\n BottomSheetModalInternalContext.Provider;\n","import { useContext } from 'react';\nimport {\n BottomSheetInternalContext,\n BottomSheetInternalContextType,\n} from '../contexts/internal';\n\nexport function useBottomSheetInternal(\n unsafe?: false\n): BottomSheetInternalContextType;\n\nexport function useBottomSheetInternal(\n unsafe: true\n): BottomSheetInternalContextType | null;\n\nexport function useBottomSheetInternal(\n unsafe?: boolean\n): BottomSheetInternalContextType | null {\n const context = useContext(BottomSheetInternalContext);\n\n if (unsafe !== true && context === null) {\n throw \"'useBottomSheetInternal' cannot be used out of the BottomSheet!\";\n }\n\n return context;\n}\n","import Hammer from '@egjs/hammerjs';\n\nimport { State } from '../State';\n\nexport const CONTENT_TOUCHES_DELAY = 240;\nexport const CONTENT_TOUCHES_QUICK_TAP_END_DELAY = 50;\nexport const MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD = 0.1;\nexport const MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD = 7;\nexport const DEG_RAD = Math.PI / 180;\n\n// Map Hammer values to RNGH\nexport const EventMap = {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.FAILED,\n} as const;\n\nexport const Direction = {\n RIGHT: 1,\n LEFT: 2,\n UP: 4,\n DOWN: 8,\n};\n\nexport const DirectionMap = {\n [Hammer.DIRECTION_RIGHT]: Direction.RIGHT,\n [Hammer.DIRECTION_LEFT]: Direction.LEFT,\n [Hammer.DIRECTION_UP]: Direction.UP,\n [Hammer.DIRECTION_DOWN]: Direction.DOWN,\n};\n\nexport const HammerInputNames = {\n [Hammer.INPUT_START]: 'START',\n [Hammer.INPUT_MOVE]: 'MOVE',\n [Hammer.INPUT_END]: 'END',\n [Hammer.INPUT_CANCEL]: 'CANCEL',\n};\nexport const HammerDirectionNames = {\n [Hammer.DIRECTION_HORIZONTAL]: 'HORIZONTAL',\n [Hammer.DIRECTION_UP]: 'UP',\n [Hammer.DIRECTION_DOWN]: 'DOWN',\n [Hammer.DIRECTION_VERTICAL]: 'VERTICAL',\n [Hammer.DIRECTION_NONE]: 'NONE',\n [Hammer.DIRECTION_ALL]: 'ALL',\n [Hammer.DIRECTION_RIGHT]: 'RIGHT',\n [Hammer.DIRECTION_LEFT]: 'LEFT',\n};\n","import { scrollTo, useWorkletCallback } from 'react-native-reanimated';\nimport { useBottomSheetInternal } from './useBottomSheetInternal';\nimport { ANIMATION_STATE, SCROLLABLE_STATE, SHEET_STATE } from '../constants';\nimport type {\n ScrollEventsHandlersHookType,\n ScrollEventHandlerCallbackType,\n} from '../types';\n\nexport type ScrollEventContextType = {\n initialContentOffsetY: number;\n shouldLockInitialPosition: boolean;\n};\n\nexport const useScrollEventsHandlersDefault: ScrollEventsHandlersHookType = (\n scrollableRef,\n scrollableContentOffsetY\n) => {\n // hooks\n const {\n animatedSheetState,\n animatedScrollableState,\n animatedAnimationState,\n animatedScrollableContentOffsetY: rootScrollableContentOffsetY,\n } = useBottomSheetInternal();\n\n //#region callbacks\n const handleOnScroll: ScrollEventHandlerCallbackType =\n useWorkletCallback(\n (_, context) => {\n /**\n * if sheet position is extended or fill parent, then we reset\n * `shouldLockInitialPosition` value to false.\n */\n if (\n animatedSheetState.value === SHEET_STATE.EXTENDED ||\n animatedSheetState.value === SHEET_STATE.FILL_PARENT\n ) {\n context.shouldLockInitialPosition = false;\n }\n\n if (animatedScrollableState.value === SCROLLABLE_STATE.LOCKED) {\n const lockPosition = context.shouldLockInitialPosition\n ? context.initialContentOffsetY ?? 0\n : 0;\n // @ts-ignore\n scrollTo(scrollableRef, 0, lockPosition, false);\n scrollableContentOffsetY.value = lockPosition;\n return;\n }\n },\n [\n scrollableRef,\n scrollableContentOffsetY,\n animatedScrollableState,\n animatedSheetState,\n ]\n );\n const handleOnBeginDrag: ScrollEventHandlerCallbackType =\n useWorkletCallback(\n ({ contentOffset: { y } }, context) => {\n scrollableContentOffsetY.value = y;\n rootScrollableContentOffsetY.value = y;\n context.initialContentOffsetY = y;\n\n /**\n * if sheet position not extended or fill parent and the scrollable position\n * not at the top, then we should lock the initial scrollable position.\n */\n if (\n animatedSheetState.value !== SHEET_STATE.EXTENDED &&\n animatedSheetState.value !== SHEET_STATE.FILL_PARENT &&\n y > 0\n ) {\n context.shouldLockInitialPosition = true;\n } else {\n context.shouldLockInitialPosition = false;\n }\n },\n [\n scrollableContentOffsetY,\n animatedSheetState,\n rootScrollableContentOffsetY,\n ]\n );\n const handleOnEndDrag: ScrollEventHandlerCallbackType =\n useWorkletCallback(\n ({ contentOffset: { y } }, context) => {\n if (animatedScrollableState.value === SCROLLABLE_STATE.LOCKED) {\n const lockPosition = context.shouldLockInitialPosition\n ? context.initialContentOffsetY ?? 0\n : 0;\n // @ts-ignore\n scrollTo(scrollableRef, 0, lockPosition, false);\n scrollableContentOffsetY.value = lockPosition;\n return;\n }\n if (animatedAnimationState.value !== ANIMATION_STATE.RUNNING) {\n scrollableContentOffsetY.value = y;\n rootScrollableContentOffsetY.value = y;\n }\n },\n [\n scrollableRef,\n scrollableContentOffsetY,\n animatedAnimationState,\n animatedScrollableState,\n rootScrollableContentOffsetY,\n ]\n );\n const handleOnMomentumEnd: ScrollEventHandlerCallbackType =\n useWorkletCallback(\n ({ contentOffset: { y } }, context) => {\n if (animatedScrollableState.value === SCROLLABLE_STATE.LOCKED) {\n const lockPosition = context.shouldLockInitialPosition\n ? context.initialContentOffsetY ?? 0\n : 0;\n // @ts-ignore\n scrollTo(scrollableRef, 0, lockPosition, false);\n scrollableContentOffsetY.value = 0;\n return;\n }\n if (animatedAnimationState.value !== ANIMATION_STATE.RUNNING) {\n scrollableContentOffsetY.value = y;\n rootScrollableContentOffsetY.value = y;\n }\n },\n [\n scrollableContentOffsetY,\n scrollableRef,\n animatedAnimationState,\n animatedScrollableState,\n rootScrollableContentOffsetY,\n ]\n );\n //#endregion\n\n return {\n handleOnScroll,\n handleOnBeginDrag,\n handleOnEndDrag,\n handleOnMomentumEnd,\n };\n};\n","/**\n * Converts a snap point to fixed numbers.\n */\nexport const normalizeSnapPoint = (\n snapPoint: number | string,\n containerHeight: number,\n _topInset: number,\n _bottomInset: number,\n _$modal: boolean = false\n) => {\n 'worklet';\n let normalizedSnapPoint = snapPoint;\n\n // percentage snap point\n if (typeof normalizedSnapPoint === 'string') {\n normalizedSnapPoint =\n (Number(normalizedSnapPoint.split('%')[0]) * containerHeight) / 100;\n }\n return Math.max(0, containerHeight - normalizedSnapPoint);\n};\n","import {\n WithSpringConfig,\n WithTimingConfig,\n withTiming,\n withSpring,\n AnimationCallback,\n} from 'react-native-reanimated';\nimport { ANIMATION_CONFIGS, ANIMATION_METHOD } from '../constants';\n\ninterface AnimateParams {\n point: number;\n velocity?: number;\n configs?: WithSpringConfig | WithTimingConfig;\n onComplete?: AnimationCallback;\n}\n\nexport const animate = ({\n point,\n configs = undefined,\n velocity = 0,\n onComplete,\n}: AnimateParams) => {\n 'worklet';\n\n if (!configs) {\n configs = ANIMATION_CONFIGS;\n }\n\n // detect animation type\n const type =\n 'duration' in configs || 'easing' in configs\n ? ANIMATION_METHOD.TIMING\n : ANIMATION_METHOD.SPRING;\n\n if (type === ANIMATION_METHOD.TIMING) {\n return withTiming(point, configs as WithTimingConfig, onComplete);\n } else {\n return withSpring(\n point,\n Object.assign({ velocity }, configs) as WithSpringConfig,\n onComplete\n );\n }\n};\n","import { Easing } from 'react-native-reanimated';\nimport type { KeyboardEventEasing } from 'react-native';\n\nexport const getKeyboardAnimationConfigs = (\n easing: KeyboardEventEasing,\n duration: number\n) => {\n 'worklet';\n switch (easing) {\n case 'easeIn':\n return {\n easing: Easing.in(Easing.ease),\n duration,\n };\n\n case 'easeOut':\n return {\n easing: Easing.out(Easing.ease),\n duration,\n };\n\n case 'easeInEaseOut':\n return {\n easing: Easing.inOut(Easing.ease),\n duration,\n };\n\n case 'linear':\n return {\n easing: Easing.linear,\n duration,\n };\n\n case 'keyboard':\n return {\n damping: 500,\n stiffness: 1000,\n mass: 3,\n overshootClamping: true,\n restDisplacementThreshold: 10,\n restSpeedThreshold: 10,\n };\n }\n};\n","interface PrintOptions {\n component?: string;\n method?: string;\n params?: Record | string | number | boolean;\n}\n\ntype Print = (options: PrintOptions) => void;\n\nlet isLoggingEnabled = false;\n\nconst enableLogging = () => {\n if (!__DEV__) {\n console.warn('[Portal] could not enable logging on production!');\n return;\n }\n isLoggingEnabled = true;\n};\n\nlet print: Print = () => {};\n\nif (__DEV__) {\n print = ({ component, method, params }) => {\n if (!isLoggingEnabled) {\n return;\n }\n let message = '';\n\n if (typeof params === 'object') {\n message = Object.keys(params)\n .map(key => `${key}:${params[key]}`)\n .join(' ');\n } else {\n message = `${params ?? ''}`;\n }\n console.log(\n `[Portal::${[component, method].filter(Boolean).join('::')}]`,\n message\n );\n };\n}\n\nObject.freeze(print);\n\nexport { print, enableLogging };\n","const workletNoop = () => {\n 'worklet';\n};\n\nconst noop = () => {};\n\nexport { noop, workletNoop };\n","import Animated, { useAnimatedGestureHandler } from 'react-native-reanimated';\nimport {\n State,\n PanGestureHandlerGestureEvent,\n} from 'react-native-gesture-handler';\nimport { GESTURE_SOURCE } from '../constants';\nimport type {\n GestureEventContextType,\n GestureEventHandlerCallbackType,\n} from '../types';\n\nconst resetContext = (context: any) => {\n 'worklet';\n\n Object.keys(context).map(key => {\n context[key] = undefined;\n });\n};\n\nexport const useGestureHandler = (\n type: GESTURE_SOURCE,\n state: Animated.SharedValue,\n gestureSource: Animated.SharedValue,\n handleOnStart: GestureEventHandlerCallbackType,\n handleOnActive: GestureEventHandlerCallbackType,\n handleOnEnd: GestureEventHandlerCallbackType\n): ((event: PanGestureHandlerGestureEvent) => void) => {\n const gestureHandler = useAnimatedGestureHandler<\n PanGestureHandlerGestureEvent,\n GestureEventContextType\n >(\n {\n onActive: (payload, context) => {\n if (!context.didStart) {\n context.didStart = true;\n\n state.value = State.BEGAN;\n gestureSource.value = type;\n\n handleOnStart(type, payload, context);\n return;\n }\n\n if (gestureSource.value !== type) {\n return;\n }\n\n state.value = payload.state;\n handleOnActive(type, payload, context);\n },\n onEnd: (payload, context) => {\n if (gestureSource.value !== type) {\n return;\n }\n\n state.value = payload.state;\n gestureSource.value = GESTURE_SOURCE.UNDETERMINED;\n\n handleOnEnd(type, payload, context);\n resetContext(context);\n },\n onCancel: (payload, context) => {\n if (gestureSource.value !== type) {\n return;\n }\n\n state.value = payload.state;\n gestureSource.value = GESTURE_SOURCE.UNDETERMINED;\n\n resetContext(context);\n },\n onFail: (payload, context) => {\n if (gestureSource.value !== type) {\n return;\n }\n\n state.value = payload.state;\n gestureSource.value = GESTURE_SOURCE.UNDETERMINED;\n\n resetContext(context);\n },\n onFinish: (payload, context) => {\n if (gestureSource.value !== type) {\n return;\n }\n\n state.value = payload.state;\n gestureSource.value = GESTURE_SOURCE.UNDETERMINED;\n\n resetContext(context);\n },\n },\n [type, state, handleOnStart, handleOnActive, handleOnEnd]\n );\n return gestureHandler;\n};\n","import type { Vector } from \"./Vectors\";\n\nexport const { PI } = Math;\nexport const TAU = PI * 2;\n\n/**\n * @summary Convert a boolean value into a number.\n * This can be useful in reanimated since 0 and 1 are used for conditional statements.\n * @worklet\n */\nexport const bin = (value: boolean): 0 | 1 => {\n \"worklet\";\n return value ? 1 : 0;\n};\n\n/**\n * Linear interpolation\n * @param value\n * @param x\n * @param y\n * @worklet\n */\nexport const mix = (value: number, x: number, y: number) => {\n \"worklet\";\n return x * (1 - value) + y * value;\n};\n\n/**\n * @summary Check is value is almost equal to the target.\n * @worklet\n */\nexport const approximates = (\n value: number,\n target: number,\n epsilon = 0.001\n) => {\n \"worklet\";\n return Math.abs(value - target) < epsilon;\n};\n\n/**\n * @summary Normalize any radian value between 0 and 2PI.\n * For example, if the value is -PI/2, it will be comverted to 1.5PI.\n * Or 4PI will be converted to 0.\n * @worklet\n */\nexport const normalizeRad = (value: number) => {\n \"worklet\";\n const rest = value % TAU;\n return rest > 0 ? rest : TAU + rest;\n};\n\n/**\n * @summary Transforms an angle from radians to degrees.\n * @worklet\n */\nexport const toDeg = (rad: number) => {\n \"worklet\";\n return (rad * 180) / Math.PI;\n};\n\n/**\n * @summary Transforms an angle from degrees to radians.\n * @worklet\n */\nexport const toRad = (deg: number) => {\n \"worklet\";\n return (deg * Math.PI) / 180;\n};\n\n/**\n *\n * @summary Returns the average value\n * @worklet\n */\nexport const avg = (values: number[]) => {\n \"worklet\";\n return values.reduce((a, v) => a + v, 0) / values.length;\n};\n\n/**\n * @summary Returns true if node is within lowerBound and upperBound.\n * @worklet\n */\nexport const between = (\n value: number,\n lowerBound: number,\n upperBound: number,\n inclusive = true\n) => {\n \"worklet\";\n if (inclusive) {\n return value >= lowerBound && value <= upperBound;\n }\n return value > lowerBound && value < upperBound;\n};\n\n/**\n * @summary Clamps a node with a lower and upper bound.\n * @example\n clamp(-1, 0, 100); // 0\n clamp(1, 0, 100); // 1\n clamp(101, 0, 100); // 100\n * @worklet\n */\nexport const clamp = (\n value: number,\n lowerBound: number,\n upperBound: number\n) => {\n \"worklet\";\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\n/**\n * @description Returns the coordinate of a cubic bezier curve. t is the length of the curve from 0 to 1.\n * cubicBezier(0, p0, p1, p2, p3) equals p0 and cubicBezier(1, p0, p1, p2, p3) equals p3.\n * p0 and p3 are respectively the starting and ending point of the curve. p1 and p2 are the control points.\n * @worklet\n */\nexport const cubicBezier = (\n t: number,\n from: number,\n c1: number,\n c2: number,\n to: number\n) => {\n \"worklet\";\n const term = 1 - t;\n const a = 1 * term ** 3 * t ** 0 * from;\n const b = 3 * term ** 2 * t ** 1 * c1;\n const c = 3 * term ** 1 * t ** 2 * c2;\n const d = 1 * term ** 0 * t ** 3 * to;\n return a + b + c + d;\n};\n\n/**\n * @summary Computes animation node rounded to precision.\n * @worklet\n */\nexport const round = (value: number, precision = 0) => {\n \"worklet\";\n const p = Math.pow(10, precision);\n return Math.round(value * p) / p;\n};\n\n// https://stackoverflow.com/questions/27176423/function-to-solve-cubic-equation-analytically\nconst cuberoot = (x: number) => {\n \"worklet\";\n const y = Math.pow(Math.abs(x), 1 / 3);\n return x < 0 ? -y : y;\n};\n\nconst solveCubic = (a: number, b: number, c: number, d: number) => {\n \"worklet\";\n if (Math.abs(a) < 1e-8) {\n // Quadratic case, ax^2+bx+c=0\n a = b;\n b = c;\n c = d;\n if (Math.abs(a) < 1e-8) {\n // Linear case, ax+b=0\n a = b;\n b = c;\n if (Math.abs(a) < 1e-8) {\n // Degenerate case\n return [];\n }\n return [-b / a];\n }\n\n const D = b * b - 4 * a * c;\n if (Math.abs(D) < 1e-8) {\n return [-b / (2 * a)];\n } else if (D > 0) {\n return [(-b + Math.sqrt(D)) / (2 * a), (-b - Math.sqrt(D)) / (2 * a)];\n }\n return [];\n }\n\n // Convert to depressed cubic t^3+pt+q = 0 (subst x = t - b/3a)\n const p = (3 * a * c - b * b) / (3 * a * a);\n const q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\n let roots;\n\n if (Math.abs(p) < 1e-8) {\n // p = 0 -> t^3 = -q -> t = -q^1/3\n roots = [cuberoot(-q)];\n } else if (Math.abs(q) < 1e-8) {\n // q = 0 -> t^3 + pt = 0 -> t(t^2+p)=0\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : []);\n } else {\n const D = (q * q) / 4 + (p * p * p) / 27;\n if (Math.abs(D) < 1e-8) {\n // D = 0 -> two roots\n roots = [(-1.5 * q) / p, (3 * q) / p];\n } else if (D > 0) {\n // Only one real root\n const u = cuberoot(-q / 2 - Math.sqrt(D));\n roots = [u - p / (3 * u)];\n } else {\n // D < 0, three roots, but needs to use complex numbers/trigonometric solution\n const u = 2 * Math.sqrt(-p / 3);\n const t = Math.acos((3 * q) / p / u) / 3; // D < 0 implies p < 0 and acos argument in [-1..1]\n const k = (2 * Math.PI) / 3;\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)];\n }\n }\n\n // Convert back from depressed cubic\n for (let i = 0; i < roots.length; i++) {\n roots[i] -= b / (3 * a);\n }\n\n return roots;\n};\n\n/**\n * @summary Given a cubic Bèzier curve, return the y value for x.\n * @example\n const x = 116;\n const from = vec.create(59, 218);\n const c1 = vec.create(131, 39);\n const c2 = vec.create(204, 223);\n const to = vec.create(227, 89);\n // y= 139\n const y = cubicBezierYForX(x, from, c1, c2, to)));\n * @worklet\n */\nexport const cubicBezierYForX = (\n x: number,\n a: Vector,\n b: Vector,\n c: Vector,\n d: Vector,\n precision = 2\n) => {\n \"worklet\";\n const pa = -a.x + 3 * b.x - 3 * c.x + d.x;\n const pb = 3 * a.x - 6 * b.x + 3 * c.x;\n const pc = -3 * a.x + 3 * b.x;\n const pd = a.x - x;\n // eslint-disable-next-line prefer-destructuring\n const t = solveCubic(pa, pb, pc, pd)\n .map((root) => round(root, precision))\n .filter((root) => root >= 0 && root <= 1)[0];\n return cubicBezier(t, a.y, b.y, c.y, d.y);\n};\n\nexport const fract = (x: number) => {\n \"worklet\";\n return x - Math.floor(x);\n};\n","/**\n * @summary Select a point where the animation should snap to given the value of the gesture and it's velocity.\n * @worklet\n */\nexport const snapPoint = (\n value: number,\n velocity: number,\n points: ReadonlyArray\n): number => {\n \"worklet\";\n const point = value + 0.2 * velocity;\n const deltas = points.map((p) => Math.abs(point - p));\n const minDelta = Math.min.apply(null, deltas);\n return points.filter((p) => Math.abs(point - p) === minDelta)[0];\n};\n","import { Keyboard, Platform } from 'react-native';\nimport { runOnJS, useWorkletCallback } from 'react-native-reanimated';\nimport { clamp, snapPoint } from 'react-native-redash';\nimport { useBottomSheetInternal } from './useBottomSheetInternal';\nimport {\n ANIMATION_SOURCE,\n GESTURE_SOURCE,\n KEYBOARD_STATE,\n SCROLLABLE_TYPE,\n WINDOW_HEIGHT,\n} from '../constants';\nimport type {\n GestureEventsHandlersHookType,\n GestureEventHandlerCallbackType,\n} from '../types';\n\ntype GestureEventContextType = {\n initialPosition: number;\n initialKeyboardState: KEYBOARD_STATE;\n isScrollablePositionLocked: boolean;\n};\n\nexport const useGestureEventsHandlersDefault: GestureEventsHandlersHookType =\n () => {\n //#region variables\n const {\n animatedPosition,\n animatedSnapPoints,\n animatedKeyboardState,\n animatedKeyboardHeight,\n animatedContainerHeight,\n animatedScrollableType,\n animatedHighestSnapPoint,\n animatedClosedPosition,\n animatedScrollableContentOffsetY,\n enableOverDrag,\n enablePanDownToClose,\n overDragResistanceFactor,\n isInTemporaryPosition,\n isScrollableRefreshable,\n animateToPosition,\n stopAnimation,\n } = useBottomSheetInternal();\n //#endregion\n\n //#region gesture methods\n const handleOnStart: GestureEventHandlerCallbackType =\n useWorkletCallback(\n function handleOnStart(__, _, context) {\n // cancel current animation\n stopAnimation();\n\n // store current animated position\n context.initialPosition = animatedPosition.value;\n context.initialKeyboardState = animatedKeyboardState.value;\n\n /**\n * if the scrollable content is scrolled, then\n * we lock the position.\n */\n if (animatedScrollableContentOffsetY.value > 0) {\n context.isScrollablePositionLocked = true;\n }\n },\n [\n stopAnimation,\n animatedPosition,\n animatedKeyboardState,\n animatedScrollableContentOffsetY,\n ]\n );\n const handleOnActive: GestureEventHandlerCallbackType =\n useWorkletCallback(\n function handleOnActive(source, { translationY }, context) {\n let highestSnapPoint = animatedHighestSnapPoint.value;\n\n /**\n * if keyboard is shown, then we set the highest point to the current\n * position which includes the keyboard height.\n */\n if (\n isInTemporaryPosition.value &&\n context.initialKeyboardState === KEYBOARD_STATE.SHOWN\n ) {\n highestSnapPoint = context.initialPosition;\n }\n\n /**\n * if current position is out of provided `snapPoints` and smaller then\n * highest snap pont, then we set the highest point to the current position.\n */\n if (\n isInTemporaryPosition.value &&\n context.initialPosition < highestSnapPoint\n ) {\n highestSnapPoint = context.initialPosition;\n }\n\n const lowestSnapPoint = enablePanDownToClose\n ? animatedContainerHeight.value\n : animatedSnapPoints.value[0];\n\n /**\n * if scrollable is refreshable and sheet position at the highest\n * point, then do not interact with current gesture.\n */\n if (\n source === GESTURE_SOURCE.SCROLLABLE &&\n isScrollableRefreshable.value &&\n animatedPosition.value === highestSnapPoint\n ) {\n return;\n }\n\n /**\n * a negative scrollable content offset to be subtracted from accumulated\n * current position and gesture translation Y to allow user to drag the sheet,\n * when scrollable position at the top.\n * a negative scrollable content offset when the scrollable is not locked.\n */\n const negativeScrollableContentOffset =\n (context.initialPosition === highestSnapPoint &&\n source === GESTURE_SOURCE.SCROLLABLE) ||\n !context.isScrollablePositionLocked\n ? animatedScrollableContentOffsetY.value * -1\n : 0;\n\n /**\n * an accumulated value of starting position with gesture translation y.\n */\n const draggedPosition = context.initialPosition + translationY;\n\n /**\n * an accumulated value of dragged position and negative scrollable content offset,\n * this will insure locking sheet position when user is scrolling the scrollable until,\n * they reach to the top of the scrollable.\n */\n const accumulatedDraggedPosition =\n draggedPosition + negativeScrollableContentOffset;\n\n /**\n * a clamped value of the accumulated dragged position, to insure keeping the dragged\n * position between the highest and lowest snap points.\n */\n const clampedPosition = clamp(\n accumulatedDraggedPosition,\n highestSnapPoint,\n lowestSnapPoint\n );\n\n /**\n * if scrollable position is locked and the animated position\n * reaches the highest point, then we unlock the scrollable position.\n */\n if (\n context.isScrollablePositionLocked &&\n source === GESTURE_SOURCE.SCROLLABLE &&\n animatedPosition.value === highestSnapPoint\n ) {\n context.isScrollablePositionLocked = false;\n }\n\n /**\n * over-drag implementation.\n */\n if (enableOverDrag) {\n if (\n (source === GESTURE_SOURCE.HANDLE ||\n animatedScrollableType.value === SCROLLABLE_TYPE.VIEW) &&\n draggedPosition < highestSnapPoint\n ) {\n const resistedPosition =\n highestSnapPoint -\n Math.sqrt(1 + (highestSnapPoint - draggedPosition)) *\n overDragResistanceFactor;\n animatedPosition.value = resistedPosition;\n return;\n }\n\n if (\n source === GESTURE_SOURCE.HANDLE &&\n draggedPosition > lowestSnapPoint\n ) {\n const resistedPosition =\n lowestSnapPoint +\n Math.sqrt(1 + (draggedPosition - lowestSnapPoint)) *\n overDragResistanceFactor;\n animatedPosition.value = resistedPosition;\n return;\n }\n\n if (\n source === GESTURE_SOURCE.SCROLLABLE &&\n draggedPosition + negativeScrollableContentOffset >\n lowestSnapPoint\n ) {\n const resistedPosition =\n lowestSnapPoint +\n Math.sqrt(\n 1 +\n (draggedPosition +\n negativeScrollableContentOffset -\n lowestSnapPoint)\n ) *\n overDragResistanceFactor;\n animatedPosition.value = resistedPosition;\n return;\n }\n }\n\n animatedPosition.value = clampedPosition;\n },\n [\n enableOverDrag,\n enablePanDownToClose,\n overDragResistanceFactor,\n isInTemporaryPosition,\n isScrollableRefreshable,\n animatedHighestSnapPoint,\n animatedContainerHeight,\n animatedSnapPoints,\n animatedPosition,\n animatedScrollableType,\n animatedScrollableContentOffsetY,\n ]\n );\n const handleOnEnd: GestureEventHandlerCallbackType =\n useWorkletCallback(\n function handleOnEnd(\n source,\n { translationY, absoluteY, velocityY },\n context\n ) {\n const highestSnapPoint = animatedHighestSnapPoint.value;\n const isSheetAtHighestSnapPoint =\n animatedPosition.value === highestSnapPoint;\n\n /**\n * if scrollable is refreshable and sheet position at the highest\n * point, then do not interact with current gesture.\n */\n if (\n source === GESTURE_SOURCE.SCROLLABLE &&\n isScrollableRefreshable.value &&\n isSheetAtHighestSnapPoint\n ) {\n return;\n }\n\n /**\n * if the sheet is in a temporary position and the gesture ended above\n * the current position, then we snap back to the temporary position.\n */\n if (\n isInTemporaryPosition.value &&\n context.initialPosition >= animatedPosition.value\n ) {\n if (context.initialPosition > animatedPosition.value) {\n animateToPosition(\n context.initialPosition,\n ANIMATION_SOURCE.GESTURE,\n velocityY / 2\n );\n }\n return;\n }\n\n /**\n * close keyboard if current position is below the recorded\n * start position and keyboard still shown.\n */\n const isScrollable =\n animatedScrollableType.value !== SCROLLABLE_TYPE.UNDETERMINED &&\n animatedScrollableType.value !== SCROLLABLE_TYPE.VIEW;\n\n /**\n * if keyboard is shown and the sheet is dragged down,\n * then we dismiss the keyboard.\n */\n if (\n context.initialKeyboardState === KEYBOARD_STATE.SHOWN &&\n animatedPosition.value > context.initialPosition\n ) {\n /**\n * if the platform is ios, current content is scrollable and\n * the end touch point is below the keyboard position then\n * we exit the method.\n *\n * because the the keyboard dismiss is interactive in iOS.\n */\n if (\n !(\n Platform.OS === 'ios' &&\n isScrollable &&\n absoluteY > WINDOW_HEIGHT - animatedKeyboardHeight.value\n )\n ) {\n runOnJS(Keyboard.dismiss)();\n }\n }\n\n /**\n * reset isInTemporaryPosition value\n */\n if (isInTemporaryPosition.value) {\n isInTemporaryPosition.value = false;\n }\n\n /**\n * clone snap points array, and insert the container height\n * if pan down to close is enabled.\n */\n const snapPoints = animatedSnapPoints.value.slice();\n if (enablePanDownToClose) {\n snapPoints.unshift(animatedClosedPosition.value);\n }\n\n /**\n * calculate the destination point, using redash.\n */\n const destinationPoint = snapPoint(\n translationY + context.initialPosition,\n velocityY,\n snapPoints\n );\n\n /**\n * if destination point is the same as the current position,\n * then no need to perform animation.\n */\n if (destinationPoint === animatedPosition.value) {\n return;\n }\n\n const wasGestureHandledByScrollView =\n source === GESTURE_SOURCE.SCROLLABLE &&\n animatedScrollableContentOffsetY.value > 0;\n /**\n * prevents snapping from top to middle / bottom with repeated interrupted scrolls\n */\n if (wasGestureHandledByScrollView && isSheetAtHighestSnapPoint) {\n return;\n }\n\n animateToPosition(\n destinationPoint,\n ANIMATION_SOURCE.GESTURE,\n velocityY / 2\n );\n },\n [\n enablePanDownToClose,\n isInTemporaryPosition,\n isScrollableRefreshable,\n animatedClosedPosition,\n animatedHighestSnapPoint,\n animatedKeyboardHeight,\n animatedPosition,\n animatedScrollableType,\n animatedSnapPoints,\n animatedScrollableContentOffsetY,\n animateToPosition,\n ]\n );\n //#endregion\n\n return {\n handleOnStart,\n handleOnActive,\n handleOnEnd,\n };\n };\n","import { useEffect } from 'react';\nimport {\n Keyboard,\n KeyboardEvent,\n KeyboardEventEasing,\n KeyboardEventName,\n Platform,\n} from 'react-native';\nimport {\n runOnUI,\n useAnimatedReaction,\n useSharedValue,\n useWorkletCallback,\n} from 'react-native-reanimated';\nimport { KEYBOARD_STATE } from '../constants';\n\nconst KEYBOARD_EVENT_MAPPER = {\n KEYBOARD_SHOW: Platform.select({\n ios: 'keyboardWillShow',\n android: 'keyboardDidShow',\n default: '',\n }) as KeyboardEventName,\n KEYBOARD_HIDE: Platform.select({\n ios: 'keyboardWillHide',\n android: 'keyboardDidHide',\n default: '',\n }) as KeyboardEventName,\n};\n\nexport const useKeyboard = () => {\n //#region variables\n const shouldHandleKeyboardEvents = useSharedValue(false);\n const keyboardState = useSharedValue(\n KEYBOARD_STATE.UNDETERMINED\n );\n const keyboardHeight = useSharedValue(0);\n const keyboardAnimationEasing =\n useSharedValue('keyboard');\n const keyboardAnimationDuration = useSharedValue(500);\n const temporaryCachedKeyboardEvent = useSharedValue([]);\n //#endregion\n\n //#region worklets\n const handleKeyboardEvent = useWorkletCallback(\n (state, height, duration, easing) => {\n if (state === KEYBOARD_STATE.SHOWN && !shouldHandleKeyboardEvents.value) {\n /**\n * if the keyboard event was fired before the `onFocus` on TextInput,\n * then we cache the input, and wait till the `shouldHandleKeyboardEvents`\n * to be updated then fire this function again.\n */\n temporaryCachedKeyboardEvent.value = [state, height, duration, easing];\n return;\n }\n keyboardHeight.value =\n state === KEYBOARD_STATE.SHOWN\n ? height\n : height === 0\n ? keyboardHeight.value\n : height;\n keyboardAnimationDuration.value = duration;\n keyboardAnimationEasing.value = easing;\n keyboardState.value = state;\n temporaryCachedKeyboardEvent.value = [];\n },\n []\n );\n //#endregion\n\n //#region effects\n useEffect(() => {\n const handleOnKeyboardShow = (event: KeyboardEvent) => {\n runOnUI(handleKeyboardEvent)(\n KEYBOARD_STATE.SHOWN,\n event.endCoordinates.height,\n event.duration,\n event.easing\n );\n };\n const handleOnKeyboardHide = (event: KeyboardEvent) => {\n runOnUI(handleKeyboardEvent)(\n KEYBOARD_STATE.HIDDEN,\n event.endCoordinates.height,\n event.duration,\n event.easing\n );\n };\n\n const showSubscription = Keyboard.addListener(\n KEYBOARD_EVENT_MAPPER.KEYBOARD_SHOW,\n handleOnKeyboardShow\n );\n\n const hideSubscription = Keyboard.addListener(\n KEYBOARD_EVENT_MAPPER.KEYBOARD_HIDE,\n handleOnKeyboardHide\n );\n\n return () => {\n showSubscription.remove();\n hideSubscription.remove();\n };\n }, [handleKeyboardEvent]);\n\n /**\n * This reaction is needed to handle the issue with multiline text input.\n *\n * @link https://github.com/gorhom/react-native-bottom-sheet/issues/411\n */\n useAnimatedReaction(\n () => shouldHandleKeyboardEvents.value,\n result => {\n const params = temporaryCachedKeyboardEvent.value;\n if (result && params.length > 0) {\n handleKeyboardEvent(params[0], params[1], params[2], params[3]);\n }\n }\n );\n //#endregion\n\n return {\n state: keyboardState,\n height: keyboardHeight,\n animationEasing: keyboardAnimationEasing,\n animationDuration: keyboardAnimationDuration,\n shouldHandleKeyboardEvents,\n };\n};\n","import { useEffect, useRef } from 'react';\nimport Animated, {\n cancelAnimation,\n makeMutable,\n} from 'react-native-reanimated';\nimport type { Primitive } from '../types';\n\nexport const useReactiveSharedValue = (\n value: T\n): T extends Primitive ? Animated.SharedValue : T => {\n const initialValueRef = useRef(null);\n const valueRef = useRef>(null);\n\n if (typeof value === 'object' && 'value' in value) {\n /**\n * if provided value is a shared value,\n * then we do not initialize another one.\n */\n } else if (valueRef.current === null) {\n // @ts-ignore\n initialValueRef.current = value;\n /**\n * if value is an object, then we need to\n * pass a clone.\n */\n if (typeof value === 'object') {\n // @ts-ignore\n valueRef.current = makeMutable({ ...value });\n } else {\n // @ts-ignore\n valueRef.current = makeMutable(value);\n }\n } else if (initialValueRef.current !== value) {\n valueRef.current.value = value as T;\n }\n\n useEffect(() => {\n return () => {\n if (valueRef.current) {\n cancelAnimation(valueRef.current);\n }\n };\n }, []);\n\n // @ts-ignore\n return valueRef.current ?? value;\n};\n","import { useContext } from 'react';\nimport { BottomSheetGestureHandlersContext } from '../contexts/gesture';\n\nexport const useBottomSheetGestureHandlers = () => {\n const context = useContext(BottomSheetGestureHandlersContext);\n\n if (context === null) {\n throw \"'useBottomSheetGestureHandlers' cannot be used out of the BottomSheet!\";\n }\n\n return context;\n};\n","import { StyleSheet } from 'react-native';\n\nexport const styles = StyleSheet.create({\n container: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 9999,\n },\n});\n","import React, { memo, useCallback, useMemo, useRef } from 'react';\nimport { LayoutChangeEvent, StatusBar, View, ViewStyle } from 'react-native';\nimport { WINDOW_HEIGHT } from '../../constants';\nimport { print } from '../../utilities';\nimport { styles } from './styles';\nimport type { BottomSheetContainerProps } from './types';\n\nfunction BottomSheetContainerComponent({\n containerHeight,\n containerOffset,\n topInset = 0,\n bottomInset = 0,\n shouldCalculateHeight = true,\n detached,\n children,\n}: BottomSheetContainerProps) {\n const containerRef = useRef(null);\n //#region styles\n const containerStyle = useMemo(\n () => [\n styles.container,\n {\n top: topInset,\n bottom: bottomInset,\n overflow: detached ? 'visible' : 'hidden',\n },\n ],\n [detached, topInset, bottomInset]\n );\n //#endregion\n\n //#region callbacks\n const handleContainerLayout = useCallback(\n function handleContainerLayout({\n nativeEvent: {\n layout: { height },\n },\n }: LayoutChangeEvent) {\n containerHeight.value = height;\n\n containerRef.current?.measure(\n (_x, _y, _width, _height, _pageX, pageY) => {\n containerOffset.value = {\n top: pageY,\n left: 0,\n right: 0,\n bottom: Math.max(\n 0,\n WINDOW_HEIGHT - (pageY + height + (StatusBar.currentHeight ?? 0))\n ),\n };\n }\n );\n\n print({\n component: BottomSheetContainer.displayName,\n method: 'handleContainerLayout',\n params: {\n height,\n },\n });\n },\n [containerHeight, containerOffset, containerRef]\n );\n //#endregion\n\n //#region render\n return (\n \n );\n //#endregion\n}\n\nconst BottomSheetContainer = memo(BottomSheetContainerComponent);\nBottomSheetContainer.displayName = 'BottomSheetContainer';\n\nexport default BottomSheetContainer;\n","import React, { useMemo } from 'react';\nimport { GESTURE_SOURCE } from '../../constants';\nimport {\n useGestureHandler,\n useBottomSheetInternal,\n useGestureEventsHandlersDefault,\n} from '../../hooks';\nimport { BottomSheetGestureHandlersContext } from '../../contexts';\nimport type { BottomSheetGestureHandlersProviderProps } from './types';\nimport { useSharedValue } from 'react-native-reanimated';\n\nconst BottomSheetGestureHandlersProvider = ({\n gestureEventsHandlersHook:\n useGestureEventsHandlers = useGestureEventsHandlersDefault,\n children,\n}: BottomSheetGestureHandlersProviderProps) => {\n //#region variables\n const animatedGestureSource = useSharedValue(\n GESTURE_SOURCE.UNDETERMINED\n );\n //#endregion\n\n //#region hooks\n const { animatedContentGestureState, animatedHandleGestureState } =\n useBottomSheetInternal();\n const { handleOnStart, handleOnActive, handleOnEnd } =\n useGestureEventsHandlers();\n //#endregion\n\n //#region gestures\n const contentPanGestureHandler = useGestureHandler(\n GESTURE_SOURCE.CONTENT,\n animatedContentGestureState,\n animatedGestureSource,\n handleOnStart,\n handleOnActive,\n handleOnEnd\n );\n\n const scrollablePanGestureHandler = useGestureHandler(\n GESTURE_SOURCE.SCROLLABLE,\n animatedContentGestureState,\n animatedGestureSource,\n handleOnStart,\n handleOnActive,\n handleOnEnd\n );\n\n const handlePanGestureHandler = useGestureHandler(\n GESTURE_SOURCE.HANDLE,\n animatedHandleGestureState,\n animatedGestureSource,\n handleOnStart,\n handleOnActive,\n handleOnEnd\n );\n //#endregion\n\n //#region context\n const contextValue = useMemo(\n () => ({\n contentPanGestureHandler,\n handlePanGestureHandler,\n scrollablePanGestureHandler,\n animatedGestureSource,\n }),\n [\n contentPanGestureHandler,\n handlePanGestureHandler,\n scrollablePanGestureHandler,\n animatedGestureSource,\n ]\n );\n //#endregion\n return (\n \n {children}\n \n );\n};\n\nexport default BottomSheetGestureHandlersProvider;\n","import React, { memo } from 'react';\nimport type { BottomSheetBackdropContainerProps } from './types';\nimport { styles } from './styles';\n\nconst BottomSheetBackdropContainerComponent = ({\n animatedIndex,\n animatedPosition,\n backdropComponent: BackdropComponent,\n}: BottomSheetBackdropContainerProps) => {\n return BackdropComponent ? (\n \n ) : null;\n};\n\nconst BottomSheetBackdropContainer = memo(\n BottomSheetBackdropContainerComponent\n);\nBottomSheetBackdropContainer.displayName = 'BottomSheetBackdropContainer';\n\nexport default BottomSheetBackdropContainer;\n","import React, { memo, useMemo } from 'react';\nimport Animated from 'react-native-reanimated';\nimport { styles } from './styles';\nimport type { BottomSheetDefaultHandleProps } from './types';\n\nconst BottomSheetHandleComponent = ({\n style,\n indicatorStyle: _indicatorStyle,\n children,\n}: BottomSheetDefaultHandleProps) => {\n // styles\n const containerStyle = useMemo(\n () => [styles.container, ...[Array.isArray(style) ? style : [style]]],\n [style]\n );\n const indicatorStyle = useMemo(\n () => [\n styles.indicator,\n ...[Array.isArray(_indicatorStyle) ? _indicatorStyle : [_indicatorStyle]],\n ],\n [_indicatorStyle]\n );\n\n // render\n return (\n \n \n {children}\n \n );\n};\n\nconst BottomSheetHandle = memo(BottomSheetHandleComponent);\nBottomSheetHandle.displayName = 'BottomSheetHandle';\n\nexport default BottomSheetHandle;\n","import React, { memo, useCallback, useMemo } from 'react';\nimport type { LayoutChangeEvent } from 'react-native';\nimport { PanGestureHandler } from 'react-native-gesture-handler';\nimport Animated from 'react-native-reanimated';\nimport BottomSheetHandle from '../bottomSheetHandle';\nimport {\n useBottomSheetGestureHandlers,\n useBottomSheetInternal,\n} from '../../hooks';\nimport { print } from '../../utilities';\nimport type { BottomSheetHandleContainerProps } from './types';\n\nfunction BottomSheetHandleContainerComponent({\n animatedIndex,\n animatedPosition,\n simultaneousHandlers: _internalSimultaneousHandlers,\n enableHandlePanningGesture,\n handleHeight,\n handleComponent: _providedHandleComponent,\n handleStyle: _providedHandleStyle,\n handleIndicatorStyle: _providedIndicatorStyle,\n}: BottomSheetHandleContainerProps) {\n //#region hooks\n const {\n activeOffsetX,\n activeOffsetY,\n failOffsetX,\n failOffsetY,\n waitFor,\n simultaneousHandlers: _providedSimultaneousHandlers,\n } = useBottomSheetInternal();\n const { handlePanGestureHandler } = useBottomSheetGestureHandlers();\n //#endregion\n\n //#region variables\n const simultaneousHandlers = useMemo(() => {\n const refs = [];\n\n if (_internalSimultaneousHandlers) {\n refs.push(_internalSimultaneousHandlers);\n }\n\n if (_providedSimultaneousHandlers) {\n if (Array.isArray(_providedSimultaneousHandlers)) {\n refs.push(..._providedSimultaneousHandlers);\n } else {\n refs.push(_providedSimultaneousHandlers);\n }\n }\n\n return refs;\n }, [_providedSimultaneousHandlers, _internalSimultaneousHandlers]);\n //#endregion\n\n //#region callbacks\n const handleContainerLayout = useCallback(\n function handleContainerLayout({\n nativeEvent: {\n layout: { height },\n },\n }: LayoutChangeEvent) {\n handleHeight.value = height;\n\n print({\n component: BottomSheetHandleContainer.displayName,\n method: 'handleContainerLayout',\n params: {\n height,\n },\n });\n },\n [handleHeight]\n );\n //#endregion\n\n //#region renders\n const HandleComponent =\n _providedHandleComponent === undefined\n ? BottomSheetHandle\n : _providedHandleComponent;\n return HandleComponent !== null ? (\n \n \n \n \n \n ) : null;\n //#endregion\n}\n\nconst BottomSheetHandleContainer = memo(BottomSheetHandleContainerComponent);\nBottomSheetHandleContainer.displayName = 'BottomSheetHandleContainer';\n\nexport default BottomSheetHandleContainer;\n","import React, { memo } from 'react';\nimport { View } from 'react-native';\nimport type { BottomSheetBackgroundProps } from './types';\nimport { styles } from './styles';\n\nconst BottomSheetBackgroundComponent = ({\n pointerEvents,\n style,\n}: BottomSheetBackgroundProps) => (\n \n);\n\nconst BottomSheetBackground = memo(BottomSheetBackgroundComponent);\nBottomSheetBackground.displayName = 'BottomSheetBackground';\n\nexport default BottomSheetBackground;\n","import React, { memo, useMemo } from 'react';\nimport BottomSheetBackground from '../bottomSheetBackground';\nimport type { BottomSheetBackgroundContainerProps } from './types';\nimport { styles } from './styles';\nimport { StyleSheet } from 'react-native';\n\nconst BottomSheetBackgroundContainerComponent = ({\n animatedIndex,\n animatedPosition,\n backgroundComponent: _providedBackgroundComponent,\n backgroundStyle: _providedBackgroundStyle,\n}: BottomSheetBackgroundContainerProps) => {\n const BackgroundComponent =\n _providedBackgroundComponent || BottomSheetBackground;\n\n const backgroundStyle = useMemo(\n () => StyleSheet.flatten([styles.container, _providedBackgroundStyle]),\n [_providedBackgroundStyle]\n );\n\n return _providedBackgroundComponent === null ? null : (\n \n );\n};\n\nconst BottomSheetBackgroundContainer = memo(\n BottomSheetBackgroundContainerComponent\n);\nBottomSheetBackgroundContainer.displayName = 'BottomSheetBackgroundContainer';\n\nexport default BottomSheetBackgroundContainer;\n","import React, { memo } from 'react';\nimport { useDerivedValue } from 'react-native-reanimated';\nimport { useBottomSheetInternal } from '../../hooks';\nimport { KEYBOARD_STATE } from '../../constants';\nimport type { BottomSheetFooterContainerProps } from './types';\n\nconst BottomSheetFooterContainerComponent = ({\n footerComponent: FooterComponent,\n}: BottomSheetFooterContainerProps) => {\n //#region hooks\n const {\n animatedContainerHeight,\n animatedHandleHeight,\n animatedFooterHeight,\n animatedPosition,\n animatedKeyboardState,\n getKeyboardHeightInContainer,\n } = useBottomSheetInternal();\n //#endregion\n\n //#region variables\n const animatedFooterPosition = useDerivedValue(() => {\n const keyboardHeight = getKeyboardHeightInContainer();\n let footerTranslateY = Math.max(\n 0,\n animatedContainerHeight.value - animatedPosition.value\n );\n\n if (animatedKeyboardState.value === KEYBOARD_STATE.SHOWN) {\n footerTranslateY = footerTranslateY - keyboardHeight;\n }\n\n footerTranslateY =\n footerTranslateY -\n animatedFooterHeight.value -\n animatedHandleHeight.value;\n\n return footerTranslateY;\n }, [\n animatedContainerHeight,\n animatedFooterHeight,\n animatedHandleHeight,\n animatedPosition,\n animatedKeyboardState,\n getKeyboardHeightInContainer,\n ]);\n //#endregion\n\n return ;\n};\n\nconst BottomSheetFooterContainer = memo(BottomSheetFooterContainerComponent);\nBottomSheetFooterContainer.displayName = 'BottomSheetFooterContainer';\n\nexport default BottomSheetFooterContainer;\n","import React, { useMemo, useRef, memo } from 'react';\nimport Animated from 'react-native-reanimated';\nimport { PanGestureHandler } from 'react-native-gesture-handler';\nimport {\n useBottomSheetGestureHandlers,\n useBottomSheetInternal,\n} from '../../hooks';\nimport { GESTURE_SOURCE } from '../../constants';\nimport type { BottomSheetDraggableViewProps } from './types';\nimport { styles } from './styles';\n\nconst BottomSheetDraggableViewComponent = ({\n gestureType = GESTURE_SOURCE.CONTENT,\n nativeGestureRef,\n refreshControlGestureRef,\n style,\n children,\n ...rest\n}: BottomSheetDraggableViewProps) => {\n //#region hooks\n const {\n enableContentPanningGesture,\n simultaneousHandlers: _providedSimultaneousHandlers,\n waitFor,\n activeOffsetX,\n activeOffsetY,\n failOffsetX,\n failOffsetY,\n } = useBottomSheetInternal();\n const { contentPanGestureHandler, scrollablePanGestureHandler } =\n useBottomSheetGestureHandlers();\n //#endregion\n\n //#region variables\n const panGestureRef = useRef(null);\n const gestureHandler = useMemo(\n () =>\n gestureType === GESTURE_SOURCE.CONTENT\n ? contentPanGestureHandler\n : scrollablePanGestureHandler,\n [gestureType, contentPanGestureHandler, scrollablePanGestureHandler]\n );\n const simultaneousHandlers = useMemo(() => {\n const refs = [];\n\n if (nativeGestureRef) {\n refs.push(nativeGestureRef);\n }\n\n if (refreshControlGestureRef) {\n refs.push(refreshControlGestureRef);\n }\n\n if (_providedSimultaneousHandlers) {\n if (Array.isArray(_providedSimultaneousHandlers)) {\n refs.push(..._providedSimultaneousHandlers);\n } else {\n refs.push(_providedSimultaneousHandlers);\n }\n }\n\n return refs;\n }, [\n _providedSimultaneousHandlers,\n nativeGestureRef,\n refreshControlGestureRef,\n ]);\n //#endregion\n\n //#region styles\n const containerStyle = useMemo(() => {\n if (!style) {\n return styles.container;\n }\n if (Array.isArray(style)) {\n return [styles.container, ...style];\n }\n return [styles.container, style];\n }, [style]);\n //#endregion\n\n return (\n \n \n {children}\n \n \n );\n};\n\nconst BottomSheetDraggableView = memo(BottomSheetDraggableViewComponent);\nBottomSheetDraggableView.displayName = 'BottomSheetDraggableView';\n\nexport default BottomSheetDraggableView;\n","import React, {\n useMemo,\n useCallback,\n forwardRef,\n useImperativeHandle,\n memo,\n useEffect,\n} from 'react';\nimport { Platform } from 'react-native';\nimport invariant from 'invariant';\nimport Animated, {\n useAnimatedReaction,\n useSharedValue,\n useAnimatedStyle,\n useDerivedValue,\n runOnJS,\n interpolate,\n Extrapolate,\n runOnUI,\n cancelAnimation,\n useWorkletCallback,\n WithSpringConfig,\n WithTimingConfig,\n} from 'react-native-reanimated';\nimport { State } from 'react-native-gesture-handler';\nimport {\n useScrollable,\n usePropsValidator,\n useReactiveSharedValue,\n useNormalizedSnapPoints,\n useKeyboard,\n} from '../../hooks';\nimport {\n BottomSheetInternalProvider,\n BottomSheetProvider,\n} from '../../contexts';\nimport BottomSheetContainer from '../bottomSheetContainer';\nimport BottomSheetGestureHandlersProvider from '../bottomSheetGestureHandlersProvider';\nimport BottomSheetBackdropContainer from '../bottomSheetBackdropContainer';\nimport BottomSheetHandleContainer from '../bottomSheetHandleContainer';\nimport BottomSheetBackgroundContainer from '../bottomSheetBackgroundContainer';\nimport BottomSheetFooterContainer from '../bottomSheetFooterContainer/BottomSheetFooterContainer';\nimport BottomSheetDraggableView from '../bottomSheetDraggableView';\n// import BottomSheetDebugView from '../bottomSheetDebugView';\nimport {\n ANIMATION_STATE,\n KEYBOARD_STATE,\n KEYBOARD_BEHAVIOR,\n SHEET_STATE,\n SCROLLABLE_STATE,\n KEYBOARD_BLUR_BEHAVIOR,\n KEYBOARD_INPUT_MODE,\n ANIMATION_SOURCE,\n} from '../../constants';\nimport {\n animate,\n getKeyboardAnimationConfigs,\n normalizeSnapPoint,\n print,\n} from '../../utilities';\nimport {\n DEFAULT_OVER_DRAG_RESISTANCE_FACTOR,\n DEFAULT_ENABLE_CONTENT_PANNING_GESTURE,\n DEFAULT_ENABLE_HANDLE_PANNING_GESTURE,\n DEFAULT_ENABLE_OVER_DRAG,\n DEFAULT_ANIMATE_ON_MOUNT,\n DEFAULT_KEYBOARD_BEHAVIOR,\n DEFAULT_KEYBOARD_BLUR_BEHAVIOR,\n DEFAULT_KEYBOARD_INPUT_MODE,\n INITIAL_CONTAINER_HEIGHT,\n INITIAL_HANDLE_HEIGHT,\n INITIAL_POSITION,\n INITIAL_SNAP_POINT,\n DEFAULT_ENABLE_PAN_DOWN_TO_CLOSE,\n INITIAL_CONTAINER_OFFSET,\n} from './constants';\nimport type { BottomSheetMethods, Insets } from '../../types';\nimport type { BottomSheetProps, AnimateToPositionType } from './types';\nimport { styles } from './styles';\n\nAnimated.addWhitelistedUIProps({\n decelerationRate: true,\n});\n\ntype BottomSheet = BottomSheetMethods;\n\nconst BottomSheetComponent = forwardRef(\n function BottomSheet(props, ref) {\n //#region validate props\n usePropsValidator(props);\n //#endregion\n\n //#region extract props\n const {\n // animations configurations\n animationConfigs: _providedAnimationConfigs,\n\n // configurations\n index: _providedIndex = 0,\n snapPoints: _providedSnapPoints,\n animateOnMount = DEFAULT_ANIMATE_ON_MOUNT,\n enableContentPanningGesture = DEFAULT_ENABLE_CONTENT_PANNING_GESTURE,\n enableHandlePanningGesture = DEFAULT_ENABLE_HANDLE_PANNING_GESTURE,\n enableOverDrag = DEFAULT_ENABLE_OVER_DRAG,\n enablePanDownToClose = DEFAULT_ENABLE_PAN_DOWN_TO_CLOSE,\n overDragResistanceFactor = DEFAULT_OVER_DRAG_RESISTANCE_FACTOR,\n\n // styles\n style: _providedStyle,\n backgroundStyle: _providedBackgroundStyle,\n handleStyle: _providedHandleStyle,\n handleIndicatorStyle: _providedHandleIndicatorStyle,\n\n // hooks\n gestureEventsHandlersHook,\n\n // keyboard\n keyboardBehavior = DEFAULT_KEYBOARD_BEHAVIOR,\n keyboardBlurBehavior = DEFAULT_KEYBOARD_BLUR_BEHAVIOR,\n android_keyboardInputMode = DEFAULT_KEYBOARD_INPUT_MODE,\n\n // layout\n handleHeight: _providedHandleHeight,\n containerHeight: _providedContainerHeight,\n contentHeight: _providedContentHeight,\n containerOffset: _providedContainerOffset,\n topInset = 0,\n bottomInset = 0,\n\n // animated callback shared values\n animatedPosition: _providedAnimatedPosition,\n animatedIndex: _providedAnimatedIndex,\n\n // gestures\n simultaneousHandlers: _providedSimultaneousHandlers,\n waitFor: _providedWaitFor,\n activeOffsetX: _providedActiveOffsetX,\n activeOffsetY: _providedActiveOffsetY,\n failOffsetX: _providedFailOffsetX,\n failOffsetY: _providedFailOffsetY,\n\n // callbacks\n onChange: _providedOnChange,\n onClose: _providedOnClose,\n onAnimate: _providedOnAnimate,\n\n // private\n $modal = false,\n detached = false,\n\n // components\n handleComponent,\n backdropComponent,\n backgroundComponent,\n footerComponent,\n children,\n } = props;\n //#endregion\n\n //#region layout variables\n /**\n * This variable is consider an internal variable,\n * that will be used conditionally in `animatedContainerHeight`\n */\n const _animatedContainerHeight = useReactiveSharedValue(\n _providedContainerHeight ?? INITIAL_CONTAINER_HEIGHT\n );\n /**\n * This is a conditional variable, where if the `BottomSheet` is used\n * in a modal, then it will subset vertical insets (top+bottom) from\n * provided container height.\n */\n const animatedContainerHeight = useDerivedValue(() => {\n const verticalInset = topInset + bottomInset;\n return $modal\n ? _animatedContainerHeight.value - verticalInset\n : _animatedContainerHeight.value;\n }, [$modal, topInset, bottomInset]);\n const animatedContainerOffset = useReactiveSharedValue(\n _providedContainerOffset ?? INITIAL_CONTAINER_OFFSET\n ) as Animated.SharedValue;\n const animatedHandleHeight = useReactiveSharedValue(\n _providedHandleHeight ?? INITIAL_HANDLE_HEIGHT\n );\n const animatedFooterHeight = useSharedValue(0);\n const animatedSnapPoints = useNormalizedSnapPoints(\n _providedSnapPoints,\n animatedContainerHeight,\n topInset,\n bottomInset,\n $modal\n );\n const animatedHighestSnapPoint = useDerivedValue(\n () => animatedSnapPoints.value[animatedSnapPoints.value.length - 1]\n );\n const animatedClosedPosition = useDerivedValue(() => {\n let closedPosition = animatedContainerHeight.value;\n\n if ($modal || detached) {\n closedPosition = animatedContainerHeight.value + bottomInset;\n }\n\n return closedPosition;\n }, [$modal, detached, bottomInset]);\n const animatedSheetHeight = useDerivedValue(\n () => animatedContainerHeight.value - animatedHighestSnapPoint.value\n );\n const animatedCurrentIndex = useReactiveSharedValue(\n animateOnMount ? -1 : _providedIndex\n );\n const animatedPosition = useSharedValue(INITIAL_POSITION);\n const animatedNextPosition = useSharedValue(0);\n const animatedNextPositionIndex = useSharedValue(0);\n\n // conditional\n const isAnimatedOnMount = useSharedValue(false);\n const isContentHeightFixed = useSharedValue(false);\n const isLayoutCalculated = useDerivedValue(() => {\n let isContainerHeightCalculated = false;\n //container height was provided.\n if (\n _providedContainerHeight !== null ||\n _providedContainerHeight !== undefined\n ) {\n isContainerHeightCalculated = true;\n }\n // container height did set.\n if (animatedContainerHeight.value !== INITIAL_CONTAINER_HEIGHT) {\n isContainerHeightCalculated = true;\n }\n\n let isHandleHeightCalculated = false;\n // handle height is provided.\n if (\n _providedHandleHeight !== null &&\n _providedHandleHeight !== undefined &&\n typeof _providedHandleHeight === 'number'\n ) {\n isHandleHeightCalculated = true;\n }\n // handle component is null.\n if (handleComponent === null) {\n animatedHandleHeight.value = 0;\n isHandleHeightCalculated = true;\n }\n // handle height did set.\n if (animatedHandleHeight.value !== INITIAL_HANDLE_HEIGHT) {\n isHandleHeightCalculated = true;\n }\n\n let isSnapPointsNormalized = false;\n // the first snap point did normalized\n if (animatedSnapPoints.value[0] !== INITIAL_SNAP_POINT) {\n isSnapPointsNormalized = true;\n }\n\n return (\n isContainerHeightCalculated &&\n isHandleHeightCalculated &&\n isSnapPointsNormalized\n );\n });\n const isInTemporaryPosition = useSharedValue(false);\n const isForcedClosing = useSharedValue(false);\n\n // gesture\n const animatedContentGestureState = useSharedValue(\n State.UNDETERMINED\n );\n const animatedHandleGestureState = useSharedValue(\n State.UNDETERMINED\n );\n //#endregion\n\n //#region hooks variables\n // scrollable variables\n const {\n animatedScrollableType,\n animatedScrollableContentOffsetY,\n animatedScrollableOverrideState,\n isScrollableRefreshable,\n setScrollableRef,\n removeScrollableRef,\n } = useScrollable();\n // keyboard\n const {\n state: animatedKeyboardState,\n height: animatedKeyboardHeight,\n animationDuration: keyboardAnimationDuration,\n animationEasing: keyboardAnimationEasing,\n shouldHandleKeyboardEvents,\n } = useKeyboard();\n /**\n * Returns keyboard height that in the root container.\n */\n const getKeyboardHeightInContainer = useWorkletCallback(() => {\n /**\n * if android software input mode is not `adjustPan`, than keyboard\n * height will be 0 all the time.\n */\n if (\n Platform.OS === 'android' &&\n android_keyboardInputMode === KEYBOARD_INPUT_MODE.adjustResize\n ) {\n return 0;\n }\n\n return $modal\n ? Math.abs(\n animatedKeyboardHeight.value -\n Math.abs(bottomInset - animatedContainerOffset.value.bottom)\n )\n : Math.abs(\n animatedKeyboardHeight.value - animatedContainerOffset.value.bottom\n );\n }, [$modal, bottomInset]);\n //#endregion\n\n //#region state/dynamic variables\n // states\n const animatedAnimationState = useSharedValue(ANIMATION_STATE.UNDETERMINED);\n const animatedAnimationSource = useSharedValue(\n ANIMATION_SOURCE.MOUNT\n );\n const animatedSheetState = useDerivedValue(() => {\n // closed position = position >= container height\n if (animatedPosition.value >= animatedClosedPosition.value)\n return SHEET_STATE.CLOSED;\n\n // extended position = container height - sheet height\n const extendedPosition =\n animatedContainerHeight.value - animatedSheetHeight.value;\n if (animatedPosition.value === extendedPosition)\n return SHEET_STATE.EXTENDED;\n\n // extended position with keyboard =\n // container height - (sheet height + keyboard height in root container)\n const keyboardHeightInContainer = getKeyboardHeightInContainer();\n const extendedPositionWithKeyboard = Math.max(\n 0,\n animatedContainerHeight.value -\n (animatedSheetHeight.value + keyboardHeightInContainer)\n );\n\n // detect if keyboard is open and the sheet is in temporary position\n if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.interactive &&\n isInTemporaryPosition.value &&\n animatedPosition.value === extendedPositionWithKeyboard\n ) {\n return SHEET_STATE.EXTENDED;\n }\n\n // fill parent = 0\n if (animatedPosition.value === 0) {\n return SHEET_STATE.FILL_PARENT;\n }\n\n // detect if position is below extended point\n if (animatedPosition.value < extendedPosition) {\n return SHEET_STATE.OVER_EXTENDED;\n }\n\n return SHEET_STATE.OPENED;\n }, [keyboardBehavior]);\n const animatedScrollableState = useDerivedValue(() => {\n /**\n * if scrollable override state is set, then we just return its value.\n */\n if (\n animatedScrollableOverrideState.value !== SCROLLABLE_STATE.UNDETERMINED\n ) {\n return animatedScrollableOverrideState.value;\n }\n /**\n * if sheet state is fill parent, then unlock scrolling\n */\n if (animatedSheetState.value === SHEET_STATE.FILL_PARENT) {\n return SCROLLABLE_STATE.UNLOCKED;\n }\n\n /**\n * if sheet state is extended, then unlock scrolling\n */\n if (animatedSheetState.value === SHEET_STATE.EXTENDED) {\n return SCROLLABLE_STATE.UNLOCKED;\n }\n\n /**\n * if keyboard is shown and sheet is animating\n * then we do not lock the scrolling to not lose\n * current scrollable scroll position.\n */\n if (\n animatedKeyboardState.value === KEYBOARD_STATE.SHOWN &&\n animatedAnimationState.value === ANIMATION_STATE.RUNNING\n ) {\n return SCROLLABLE_STATE.UNLOCKED;\n }\n\n return SCROLLABLE_STATE.LOCKED;\n });\n // dynamic\n const animatedContentHeight = useDerivedValue(() => {\n const keyboardHeightInContainer = getKeyboardHeightInContainer();\n const handleHeight = Math.max(0, animatedHandleHeight.value);\n let contentHeight = animatedSheetHeight.value - handleHeight;\n\n if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.extend &&\n animatedKeyboardState.value === KEYBOARD_STATE.SHOWN\n ) {\n contentHeight = contentHeight - keyboardHeightInContainer;\n } else if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.fillParent &&\n isInTemporaryPosition.value\n ) {\n if (animatedKeyboardState.value === KEYBOARD_STATE.SHOWN) {\n contentHeight =\n animatedContainerHeight.value -\n handleHeight -\n keyboardHeightInContainer;\n } else {\n contentHeight = animatedContainerHeight.value - handleHeight;\n }\n } else if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.interactive &&\n isInTemporaryPosition.value\n ) {\n const contentWithKeyboardHeight =\n contentHeight + keyboardHeightInContainer;\n\n if (animatedKeyboardState.value === KEYBOARD_STATE.SHOWN) {\n if (\n keyboardHeightInContainer + animatedSheetHeight.value >\n animatedContainerHeight.value\n ) {\n contentHeight =\n animatedContainerHeight.value -\n keyboardHeightInContainer -\n handleHeight;\n }\n } else if (\n contentWithKeyboardHeight + handleHeight >\n animatedContainerHeight.value\n ) {\n contentHeight = animatedContainerHeight.value - handleHeight;\n } else {\n contentHeight = contentWithKeyboardHeight;\n }\n }\n\n /**\n * before the container is measured, `contentHeight` value will be below zero,\n * which will lead to freeze the scrollable.\n *\n * @link (https://github.com/gorhom/react-native-bottom-sheet/issues/470)\n */\n return Math.max(contentHeight, 0);\n }, [keyboardBehavior]);\n const animatedIndex = useDerivedValue(() => {\n const adjustedSnapPoints = animatedSnapPoints.value.slice().reverse();\n const adjustedSnapPointsIndexes = animatedSnapPoints.value\n .slice()\n .map((_: any, index: number) => index)\n .reverse();\n\n /**\n * we add the close state index `-1`\n */\n adjustedSnapPoints.push(animatedContainerHeight.value);\n adjustedSnapPointsIndexes.push(-1);\n\n const currentIndex = isLayoutCalculated.value\n ? interpolate(\n animatedPosition.value,\n adjustedSnapPoints,\n adjustedSnapPointsIndexes,\n Extrapolate.CLAMP\n )\n : -1;\n\n /**\n * if the sheet is currently running an animation by the keyboard opening,\n * then we clamp the index on android with resize keyboard mode.\n */\n if (\n android_keyboardInputMode === KEYBOARD_INPUT_MODE.adjustResize &&\n animatedAnimationSource.value === ANIMATION_SOURCE.KEYBOARD &&\n animatedAnimationState.value === ANIMATION_STATE.RUNNING &&\n isInTemporaryPosition.value\n ) {\n return Math.max(animatedCurrentIndex.value, currentIndex);\n }\n\n /**\n * if the sheet is currently running an animation by snap point change - usually caused\n * by dynamic content height -, then we return the next position index.\n */\n if (\n animatedAnimationSource.value === ANIMATION_SOURCE.SNAP_POINT_CHANGE &&\n animatedAnimationState.value === ANIMATION_STATE.RUNNING\n ) {\n return animatedNextPositionIndex.value;\n }\n\n return currentIndex;\n }, [android_keyboardInputMode]);\n //#endregion\n\n //#region private methods\n /**\n * Calculate the next position based on keyboard state.\n */\n const getNextPosition = useWorkletCallback(\n function getNextPosition() {\n 'worklet';\n const currentIndex = animatedCurrentIndex.value;\n const snapPoints = animatedSnapPoints.value;\n const keyboardState = animatedKeyboardState.value;\n const highestSnapPoint = animatedHighestSnapPoint.value;\n\n /**\n * Handle restore sheet position on blur\n */\n if (\n keyboardBlurBehavior === KEYBOARD_BLUR_BEHAVIOR.restore &&\n keyboardState === KEYBOARD_STATE.HIDDEN &&\n animatedContentGestureState.value !== State.ACTIVE &&\n animatedHandleGestureState.value !== State.ACTIVE\n ) {\n isInTemporaryPosition.value = false;\n const nextPosition = snapPoints[currentIndex];\n return nextPosition;\n }\n\n /**\n * Handle extend behavior\n */\n if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.extend &&\n keyboardState === KEYBOARD_STATE.SHOWN\n ) {\n return highestSnapPoint;\n }\n\n /**\n * Handle full screen behavior\n */\n if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.fillParent &&\n keyboardState === KEYBOARD_STATE.SHOWN\n ) {\n isInTemporaryPosition.value = true;\n return 0;\n }\n\n /**\n * handle interactive behavior\n */\n if (\n keyboardBehavior === KEYBOARD_BEHAVIOR.interactive &&\n keyboardState === KEYBOARD_STATE.SHOWN\n ) {\n isInTemporaryPosition.value = true;\n const keyboardHeightInContainer = getKeyboardHeightInContainer();\n return Math.max(0, highestSnapPoint - keyboardHeightInContainer);\n }\n\n if (isInTemporaryPosition.value) {\n return animatedPosition.value;\n }\n\n return snapPoints[currentIndex];\n },\n [keyboardBehavior, keyboardBlurBehavior]\n );\n const handleOnChange = useCallback(\n function handleOnChange(index: number) {\n print({\n component: BottomSheet.name,\n method: handleOnChange.name,\n params: {\n index,\n animatedCurrentIndex: animatedCurrentIndex.value,\n },\n });\n\n if (_providedOnChange) {\n _providedOnChange(index);\n }\n },\n [_providedOnChange, animatedCurrentIndex]\n );\n const handleOnAnimate = useCallback(\n function handleOnAnimate(toPoint: number) {\n const snapPoints = animatedSnapPoints.value;\n const toIndex = snapPoints.indexOf(toPoint);\n\n print({\n component: BottomSheet.name,\n method: handleOnAnimate.name,\n params: {\n toIndex,\n fromIndex: animatedCurrentIndex.value,\n },\n });\n\n if (!_providedOnAnimate) {\n return;\n }\n\n if (toIndex !== animatedCurrentIndex.value) {\n _providedOnAnimate(animatedCurrentIndex.value, toIndex);\n }\n },\n [_providedOnAnimate, animatedSnapPoints, animatedCurrentIndex]\n );\n //#endregion\n\n //#region animation\n const stopAnimation = useWorkletCallback(() => {\n cancelAnimation(animatedPosition);\n isForcedClosing.value = false;\n animatedAnimationSource.value = ANIMATION_SOURCE.NONE;\n animatedAnimationState.value = ANIMATION_STATE.STOPPED;\n }, [animatedPosition, animatedAnimationState, animatedAnimationSource]);\n const animateToPositionCompleted = useWorkletCallback(\n function animateToPositionCompleted(isFinished?: boolean) {\n isForcedClosing.value = false;\n\n if (!isFinished) {\n return;\n }\n runOnJS(print)({\n component: BottomSheet.name,\n method: animateToPositionCompleted.name,\n params: {\n animatedCurrentIndex: animatedCurrentIndex.value,\n animatedNextPosition: animatedNextPosition.value,\n animatedNextPositionIndex: animatedNextPositionIndex.value,\n },\n });\n\n animatedAnimationSource.value = ANIMATION_SOURCE.NONE;\n animatedAnimationState.value = ANIMATION_STATE.STOPPED;\n animatedNextPosition.value = Number.NEGATIVE_INFINITY;\n animatedNextPositionIndex.value = Number.NEGATIVE_INFINITY;\n }\n );\n const animateToPosition: AnimateToPositionType = useWorkletCallback(\n function animateToPosition(\n position: number,\n source: ANIMATION_SOURCE,\n velocity: number = 0,\n configs?: WithTimingConfig | WithSpringConfig\n ) {\n if (\n position === animatedPosition.value ||\n position === undefined ||\n (animatedAnimationState.value === ANIMATION_STATE.RUNNING &&\n position === animatedNextPosition.value)\n ) {\n return;\n }\n\n runOnJS(print)({\n component: BottomSheet.name,\n method: animateToPosition.name,\n params: {\n currentPosition: animatedPosition.value,\n position,\n velocity,\n },\n });\n\n stopAnimation();\n\n /**\n * set animation state to running, and source\n */\n animatedAnimationState.value = ANIMATION_STATE.RUNNING;\n animatedAnimationSource.value = source;\n\n /**\n * store next position\n */\n animatedNextPosition.value = position;\n animatedNextPositionIndex.value =\n animatedSnapPoints.value.indexOf(position);\n\n /**\n * fire `onAnimate` callback\n */\n runOnJS(handleOnAnimate)(position);\n\n /**\n * force animation configs from parameters, if provided\n */\n if (configs !== undefined) {\n animatedPosition.value = animate({\n point: position,\n configs,\n velocity,\n onComplete: animateToPositionCompleted,\n });\n } else {\n /**\n * use animationConfigs callback, if provided\n */\n animatedPosition.value = animate({\n point: position,\n velocity,\n configs: _providedAnimationConfigs,\n onComplete: animateToPositionCompleted,\n });\n }\n },\n [handleOnAnimate, _providedAnimationConfigs]\n );\n //#endregion\n\n //#region public methods\n const handleSnapToIndex = useCallback(\n function handleSnapToIndex(\n index: number,\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n const snapPoints = animatedSnapPoints.value;\n invariant(\n index >= -1 && index <= snapPoints.length - 1,\n `'index' was provided but out of the provided snap points range! expected value to be between -1, ${\n snapPoints.length - 1\n }`\n );\n print({\n component: BottomSheet.name,\n method: handleSnapToIndex.name,\n params: {\n index,\n },\n });\n\n const nextPosition = snapPoints[index];\n\n /**\n * exit method if :\n * - layout is not calculated.\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n !isLayoutCalculated.value ||\n index === animatedNextPositionIndex.value ||\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * reset temporary position boolean.\n */\n isInTemporaryPosition.value = false;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n isLayoutCalculated,\n isInTemporaryPosition,\n isForcedClosing,\n animatedSnapPoints,\n animatedNextPosition,\n animatedNextPositionIndex,\n ]\n );\n const handleSnapToPosition = useWorkletCallback(\n function handleSnapToPosition(\n position: number | string,\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n print({\n component: BottomSheet.name,\n method: handleSnapToPosition.name,\n params: {\n position,\n },\n });\n\n /**\n * normalized provided position.\n */\n const nextPosition = normalizeSnapPoint(\n position,\n animatedContainerHeight.value,\n topInset,\n bottomInset\n );\n\n /**\n * exit method if :\n * - layout is not calculated.\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n !isLayoutCalculated ||\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * mark the new position as temporary.\n */\n isInTemporaryPosition.value = true;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n bottomInset,\n topInset,\n isLayoutCalculated,\n isForcedClosing,\n animatedContainerHeight,\n animatedPosition,\n ]\n );\n const handleClose = useCallback(\n function handleClose(\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n print({\n component: BottomSheet.name,\n method: handleClose.name,\n });\n\n const nextPosition = animatedClosedPosition.value;\n\n /**\n * exit method if :\n * - layout is not calculated.\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n !isLayoutCalculated.value ||\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * reset temporary position variable.\n */\n isInTemporaryPosition.value = false;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n isForcedClosing,\n isLayoutCalculated,\n isInTemporaryPosition,\n animatedNextPosition,\n animatedClosedPosition,\n ]\n );\n const handleForceClose = useCallback(\n function handleForceClose(\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n print({\n component: BottomSheet.name,\n method: handleForceClose.name,\n });\n\n const nextPosition = animatedClosedPosition.value;\n\n /**\n * exit method if :\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * reset temporary position variable.\n */\n isInTemporaryPosition.value = false;\n\n /**\n * set force closing variable.\n */\n isForcedClosing.value = true;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n isForcedClosing,\n isInTemporaryPosition,\n animatedNextPosition,\n animatedClosedPosition,\n ]\n );\n const handleExpand = useCallback(\n function handleExpand(\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n print({\n component: BottomSheet.name,\n method: handleExpand.name,\n });\n\n const snapPoints = animatedSnapPoints.value;\n const nextPosition = snapPoints[snapPoints.length - 1];\n\n /**\n * exit method if :\n * - layout is not calculated.\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n !isLayoutCalculated.value ||\n snapPoints.length - 1 === animatedNextPositionIndex.value ||\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * reset temporary position boolean.\n */\n isInTemporaryPosition.value = false;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n isInTemporaryPosition,\n isLayoutCalculated,\n isForcedClosing,\n animatedSnapPoints,\n animatedNextPosition,\n animatedNextPositionIndex,\n ]\n );\n const handleCollapse = useCallback(\n function handleCollapse(\n animationConfigs?: WithSpringConfig | WithTimingConfig\n ) {\n print({\n component: BottomSheet.name,\n method: handleCollapse.name,\n });\n\n const nextPosition = animatedSnapPoints.value[0];\n\n /**\n * exit method if :\n * - layout is not calculated.\n * - already animating to next position.\n * - sheet is forced closing.\n */\n if (\n !isLayoutCalculated ||\n animatedNextPositionIndex.value === 0 ||\n nextPosition === animatedNextPosition.value ||\n isForcedClosing.value\n ) {\n return;\n }\n\n /**\n * reset temporary position boolean.\n */\n isInTemporaryPosition.value = false;\n\n runOnUI(animateToPosition)(\n nextPosition,\n ANIMATION_SOURCE.USER,\n 0,\n animationConfigs\n );\n },\n [\n animateToPosition,\n isForcedClosing,\n isLayoutCalculated,\n isInTemporaryPosition,\n animatedSnapPoints,\n animatedNextPosition,\n animatedNextPositionIndex,\n ]\n );\n\n useImperativeHandle(ref, () => ({\n snapToIndex: handleSnapToIndex,\n snapToPosition: handleSnapToPosition,\n expand: handleExpand,\n collapse: handleCollapse,\n close: handleClose,\n forceClose: handleForceClose,\n }));\n //#endregion\n\n //#region contexts variables\n const internalContextVariables = useMemo(\n () => ({\n enableContentPanningGesture,\n overDragResistanceFactor,\n enableOverDrag,\n enablePanDownToClose,\n animatedAnimationState,\n animatedSheetState,\n animatedScrollableState,\n animatedScrollableOverrideState,\n animatedContentGestureState,\n animatedHandleGestureState,\n animatedKeyboardState,\n animatedScrollableType,\n animatedIndex,\n animatedPosition,\n animatedContentHeight,\n animatedClosedPosition,\n animatedHandleHeight,\n animatedFooterHeight,\n animatedKeyboardHeight,\n animatedContainerHeight,\n animatedSnapPoints,\n animatedHighestSnapPoint,\n animatedScrollableContentOffsetY,\n isInTemporaryPosition,\n isContentHeightFixed,\n isScrollableRefreshable,\n shouldHandleKeyboardEvents,\n simultaneousHandlers: _providedSimultaneousHandlers,\n waitFor: _providedWaitFor,\n activeOffsetX: _providedActiveOffsetX,\n activeOffsetY: _providedActiveOffsetY,\n failOffsetX: _providedFailOffsetX,\n failOffsetY: _providedFailOffsetY,\n animateToPosition,\n stopAnimation,\n getKeyboardHeightInContainer,\n setScrollableRef,\n removeScrollableRef,\n }),\n [\n animatedIndex,\n animatedPosition,\n animatedContentHeight,\n animatedScrollableType,\n animatedContentGestureState,\n animatedHandleGestureState,\n animatedClosedPosition,\n animatedFooterHeight,\n animatedContainerHeight,\n animatedHandleHeight,\n animatedAnimationState,\n animatedKeyboardState,\n animatedKeyboardHeight,\n animatedSheetState,\n animatedHighestSnapPoint,\n animatedScrollableState,\n animatedScrollableOverrideState,\n animatedSnapPoints,\n shouldHandleKeyboardEvents,\n animatedScrollableContentOffsetY,\n isScrollableRefreshable,\n isContentHeightFixed,\n isInTemporaryPosition,\n enableContentPanningGesture,\n overDragResistanceFactor,\n enableOverDrag,\n enablePanDownToClose,\n _providedSimultaneousHandlers,\n _providedWaitFor,\n _providedActiveOffsetX,\n _providedActiveOffsetY,\n _providedFailOffsetX,\n _providedFailOffsetY,\n getKeyboardHeightInContainer,\n setScrollableRef,\n removeScrollableRef,\n animateToPosition,\n stopAnimation,\n ]\n );\n const externalContextVariables = useMemo(\n () => ({\n animatedIndex,\n animatedPosition,\n snapToIndex: handleSnapToIndex,\n snapToPosition: handleSnapToPosition,\n expand: handleExpand,\n collapse: handleCollapse,\n close: handleClose,\n forceClose: handleForceClose,\n }),\n [\n animatedIndex,\n animatedPosition,\n handleSnapToIndex,\n handleSnapToPosition,\n handleExpand,\n handleCollapse,\n handleClose,\n handleForceClose,\n ]\n );\n //#endregion\n\n //#region styles\n const containerAnimatedStyle = useAnimatedStyle(\n () => ({\n opacity:\n Platform.OS === 'android' && animatedIndex.value === -1 ? 0 : 1,\n transform: [\n {\n translateY: animatedPosition.value,\n },\n ],\n }),\n [animatedPosition, animatedIndex]\n );\n const containerStyle = useMemo(\n () => [_providedStyle, styles.container, containerAnimatedStyle],\n [_providedStyle, containerAnimatedStyle]\n );\n const contentContainerAnimatedStyle = useAnimatedStyle(() => {\n /**\n * if content height was provided, then we skip setting\n * calculated height.\n */\n if (_providedContentHeight) {\n return {};\n }\n\n return {\n height: animate({\n point: animatedContentHeight.value,\n configs: _providedAnimationConfigs,\n }),\n };\n }, [animatedContentHeight, _providedContentHeight]);\n const contentContainerStyle = useMemo(\n () => [styles.contentContainer, contentContainerAnimatedStyle],\n [contentContainerAnimatedStyle]\n );\n /**\n * added safe area to prevent the sheet from floating above\n * the bottom of the screen, when sheet being over dragged or\n * when the sheet is resized.\n */\n const contentMaskContainerAnimatedStyle = useAnimatedStyle(() => {\n if (detached) {\n return {\n overflow: 'visible',\n };\n }\n return {\n paddingBottom: animatedContainerHeight.value,\n };\n }, [detached]);\n const contentMaskContainerStyle = useMemo(\n () => [styles.contentMaskContainer, contentMaskContainerAnimatedStyle],\n [contentMaskContainerAnimatedStyle]\n );\n //#endregion\n\n //#region effects\n /**\n * React to `isLayoutCalculated` change, to insure that the sheet will\n * appears/mounts only when all layout is been calculated.\n *\n * @alias OnMount\n */\n useAnimatedReaction(\n () => isLayoutCalculated.value,\n _isLayoutCalculated => {\n /**\n * exit method if:\n * - layout is not calculated yet.\n * - already did animate on mount.\n */\n if (!_isLayoutCalculated || isAnimatedOnMount.value) {\n return;\n }\n\n let nextPosition;\n if (_providedIndex === -1) {\n nextPosition = animatedClosedPosition.value;\n animatedNextPositionIndex.value = -1;\n } else {\n nextPosition = animatedSnapPoints.value[_providedIndex];\n }\n\n runOnJS(print)({\n component: BottomSheet.name,\n method: 'useAnimatedReaction::OnMount',\n params: {\n isLayoutCalculated: _isLayoutCalculated,\n animatedSnapPoints: animatedSnapPoints.value,\n nextPosition,\n },\n });\n\n /**\n * here we exit method early because the next position\n * is out of the screen, this happens when `snapPoints`\n * still being calculated.\n */\n if (\n nextPosition === INITIAL_POSITION ||\n nextPosition === animatedClosedPosition.value\n ) {\n isAnimatedOnMount.value = true;\n animatedCurrentIndex.value = _providedIndex;\n return;\n }\n\n if (animateOnMount) {\n animateToPosition(nextPosition, ANIMATION_SOURCE.MOUNT);\n } else {\n animatedPosition.value = nextPosition;\n }\n isAnimatedOnMount.value = true;\n },\n [_providedIndex, animateOnMount]\n );\n\n /**\n * React to `snapPoints` change, to insure that the sheet position reflect\n * to the current point correctly.\n *\n * @alias OnSnapPointsChange\n */\n useAnimatedReaction(\n () => ({\n snapPoints: animatedSnapPoints.value,\n containerHeight: animatedContainerHeight.value,\n }),\n (result, _previousResult) => {\n const { snapPoints, containerHeight } = result;\n const _previousSnapPoints = _previousResult?.snapPoints;\n const _previousContainerHeight = _previousResult?.containerHeight;\n\n if (\n JSON.stringify(snapPoints) === JSON.stringify(_previousSnapPoints) ||\n !isLayoutCalculated.value ||\n !isAnimatedOnMount.value\n ) {\n return;\n }\n\n runOnJS(print)({\n component: BottomSheet.name,\n method: 'useAnimatedReaction::OnSnapPointChange',\n params: {\n snapPoints,\n },\n });\n\n let nextPosition;\n let animationConfig;\n let animationSource = ANIMATION_SOURCE.SNAP_POINT_CHANGE;\n\n /**\n * if snap points changed while sheet is animating, then\n * we stop the animation and animate to the updated point.\n */\n if (animatedAnimationState.value === ANIMATION_STATE.RUNNING) {\n nextPosition =\n animatedNextPositionIndex.value !== -1\n ? snapPoints[animatedNextPositionIndex.value]\n : animatedNextPosition.value;\n } else if (animatedCurrentIndex.value === -1) {\n nextPosition = animatedClosedPosition.value;\n } else if (isInTemporaryPosition.value) {\n nextPosition = getNextPosition();\n } else {\n nextPosition = snapPoints[animatedCurrentIndex.value];\n\n /**\n * if snap points changes because of the container height change,\n * then we skip the snap animation by setting the duration to 0.\n */\n if (containerHeight !== _previousContainerHeight) {\n animationSource = ANIMATION_SOURCE.CONTAINER_RESIZE;\n animationConfig = {\n duration: 0,\n };\n }\n }\n animateToPosition(nextPosition, animationSource, 0, animationConfig);\n }\n );\n\n /**\n * React to keyboard appearance state.\n *\n * @alias OnKeyboardStateChange\n */\n useAnimatedReaction(\n () => ({\n _keyboardState: animatedKeyboardState.value,\n _keyboardHeight: animatedKeyboardHeight.value,\n }),\n (result, _previousResult) => {\n const { _keyboardState, _keyboardHeight } = result;\n const _previousKeyboardState = _previousResult?._keyboardState;\n const _previousKeyboardHeight = _previousResult?._keyboardHeight;\n\n const hasActiveGesture =\n animatedContentGestureState.value === State.ACTIVE ||\n animatedContentGestureState.value === State.BEGAN ||\n animatedHandleGestureState.value === State.ACTIVE ||\n animatedHandleGestureState.value === State.BEGAN;\n\n if (\n /**\n * if keyboard state is equal to the previous state, then exit the method\n */\n (_keyboardState === _previousKeyboardState &&\n _keyboardHeight === _previousKeyboardHeight) ||\n /**\n * if user is interacting with sheet, then exit the method\n */\n hasActiveGesture ||\n /**\n * if sheet not animated on mount yet, then exit the method\n */\n !isAnimatedOnMount.value ||\n /**\n * if new keyboard state is hidden and blur behavior is none, then exit the method\n */\n (_keyboardState === KEYBOARD_STATE.HIDDEN &&\n keyboardBlurBehavior === KEYBOARD_BLUR_BEHAVIOR.none) ||\n /**\n * if platform is android and the input mode is resize, then exit the method\n */\n (Platform.OS === 'android' &&\n keyboardBehavior === KEYBOARD_BEHAVIOR.interactive &&\n android_keyboardInputMode === KEYBOARD_INPUT_MODE.adjustResize)\n ) {\n return;\n }\n\n runOnJS(print)({\n component: BottomSheet.name,\n method: 'useAnimatedReaction::OnKeyboardStateChange',\n params: {\n keyboardState: _keyboardState,\n keyboardHeight: _keyboardHeight,\n },\n });\n\n let animationConfigs = getKeyboardAnimationConfigs(\n keyboardAnimationEasing.value,\n keyboardAnimationDuration.value\n );\n const nextPosition = getNextPosition();\n animateToPosition(\n nextPosition,\n ANIMATION_SOURCE.KEYBOARD,\n 0,\n animationConfigs\n );\n },\n [\n keyboardBehavior,\n keyboardBlurBehavior,\n android_keyboardInputMode,\n getNextPosition,\n ]\n );\n\n /**\n * sets provided animated position\n */\n useAnimatedReaction(\n () => animatedPosition.value,\n _animatedPosition => {\n if (_providedAnimatedPosition) {\n _providedAnimatedPosition.value = _animatedPosition + topInset;\n }\n }\n );\n\n /**\n * sets provided animated index\n */\n useAnimatedReaction(\n () => animatedIndex.value,\n _animatedIndex => {\n if (_providedAnimatedIndex) {\n _providedAnimatedIndex.value = _animatedIndex;\n }\n }\n );\n\n /**\n * React to internal variables to detect change in snap position.\n *\n * @alias OnChange\n */\n useAnimatedReaction(\n () => ({\n _animatedIndex: animatedIndex.value,\n _animatedPosition: animatedPosition.value,\n _animationState: animatedAnimationState.value,\n _contentGestureState: animatedContentGestureState.value,\n _handleGestureState: animatedHandleGestureState.value,\n }),\n ({\n _animatedIndex,\n _animationState,\n _contentGestureState,\n _handleGestureState,\n }) => {\n /**\n * exit the method if animation state is not stopped.\n */\n if (_animationState !== ANIMATION_STATE.STOPPED) {\n return;\n }\n\n /**\n * exit the method if animated index value\n * has fraction, e.g. 1.99, 0.52\n */\n if (_animatedIndex % 1 !== 0) {\n return;\n }\n\n /**\n * exit the method if there any active gesture.\n */\n const hasNoActiveGesture =\n (_contentGestureState === State.END ||\n _contentGestureState === State.UNDETERMINED ||\n _contentGestureState === State.CANCELLED) &&\n (_handleGestureState === State.END ||\n _handleGestureState === State.UNDETERMINED ||\n _handleGestureState === State.CANCELLED);\n if (!hasNoActiveGesture) {\n return;\n }\n\n /**\n * if the index is not equal to the current index,\n * than the sheet position had changed and we trigger\n * the `onChange` callback.\n */\n if (_animatedIndex !== animatedCurrentIndex.value) {\n runOnJS(print)({\n component: BottomSheet.name,\n method: 'useAnimatedReaction::OnChange',\n params: {\n animatedCurrentIndex: animatedCurrentIndex.value,\n animatedIndex: _animatedIndex,\n },\n });\n\n animatedCurrentIndex.value = _animatedIndex;\n runOnJS(handleOnChange)(_animatedIndex);\n }\n\n /**\n * if index is `-1` than we fire the `onClose` callback.\n */\n if (_animatedIndex === -1 && _providedOnClose) {\n runOnJS(print)({\n component: BottomSheet.name,\n method: 'useAnimatedReaction::onClose',\n params: {\n animatedCurrentIndex: animatedCurrentIndex.value,\n animatedIndex: _animatedIndex,\n },\n });\n runOnJS(_providedOnClose)();\n }\n },\n [handleOnChange, _providedOnClose]\n );\n\n /**\n * React to `index` prop to snap the sheet to the new position.\n *\n * @alias onIndexChange\n */\n useEffect(() => {\n if (isAnimatedOnMount.value) {\n handleSnapToIndex(_providedIndex);\n }\n }, [\n _providedIndex,\n animatedCurrentIndex,\n isAnimatedOnMount,\n handleSnapToIndex,\n ]);\n //#endregion\n\n // render\n print({\n component: BottomSheet.name,\n method: 'render',\n params: {\n animatedSnapPoints: animatedSnapPoints.value,\n animatedCurrentIndex: animatedCurrentIndex.value,\n providedIndex: _providedIndex,\n },\n });\n return (\n \n \n \n \n \n \n \n \n \n {typeof children === 'function'\n ? (children as Function)()\n : children}\n\n {footerComponent && (\n \n )}\n \n \n \n \n {/* */}\n \n \n \n \n );\n }\n);\n\nconst BottomSheet = memo(BottomSheetComponent);\nBottomSheet.displayName = 'BottomSheet';\n\nexport default BottomSheet;\n","import { useMemo } from 'react';\nimport invariant from 'invariant';\nimport { INITIAL_SNAP_POINT } from '../components/bottomSheet/constants';\nimport type { BottomSheetProps } from '../components/bottomSheet';\n\n/**\n * @todo\n * replace this with `prop-types`.\n */\n\nexport const usePropsValidator = ({\n index,\n snapPoints,\n topInset,\n bottomInset,\n}: BottomSheetProps) => {\n useMemo(() => {\n //#region snap points\n const _snapPoints = 'value' in snapPoints ? snapPoints.value : snapPoints;\n invariant(\n _snapPoints,\n `'snapPoints' was not provided! please provide at least one snap point.`\n );\n\n _snapPoints.map(snapPoint => {\n const _snapPoint =\n typeof snapPoint === 'number'\n ? snapPoint\n : parseInt(snapPoint.replace('%', ''), 10);\n\n invariant(\n _snapPoint > 0 || _snapPoint === INITIAL_SNAP_POINT,\n `Snap point '${snapPoint}' is invalid. if you want to allow user to close the sheet, Please use 'enablePanDownToClose' prop.`\n );\n });\n\n invariant(\n 'value' in _snapPoints || _snapPoints.length > 0,\n `'snapPoints' was provided with no points! please provide at least one snap point.`\n );\n //#endregion\n\n //#region index\n invariant(\n typeof index === 'number' || typeof index === 'undefined',\n `'index' was provided but with wrong type ! expected type is a number.`\n );\n\n invariant(\n typeof index === 'number'\n ? index >= -1 && index <= _snapPoints.length - 1\n : true,\n `'index' was provided but out of the provided snap points range! expected value to be between -1, ${\n _snapPoints.length - 1\n }`\n );\n //#endregion\n\n //#region insets\n invariant(\n typeof topInset === 'number' || typeof topInset === 'undefined',\n `'topInset' was provided but with wrong type ! expected type is a number.`\n );\n invariant(\n typeof bottomInset === 'number' || typeof bottomInset === 'undefined',\n `'bottomInset' was provided but with wrong type ! expected type is a number.`\n );\n //#endregion\n\n // animations\n }, [index, snapPoints, topInset, bottomInset]);\n};\n","import Animated, { useDerivedValue } from 'react-native-reanimated';\nimport { normalizeSnapPoint } from '../utilities';\nimport type { BottomSheetProps } from '../components/bottomSheet';\nimport {\n INITIAL_CONTAINER_HEIGHT,\n INITIAL_SNAP_POINT,\n} from '../components/bottomSheet/constants';\n\n/**\n * Convert percentage snap points to pixels in screen and calculate\n * the accurate snap points positions.\n * @param providedSnapPoints provided snap points.\n * @param containerHeight BottomSheetContainer height.\n * @param topInset top inset.\n * @param bottomInset bottom inset.\n * @param $modal is sheet in a modal.\n * @returns {Animated.SharedValue}\n */\nexport const useNormalizedSnapPoints = (\n providedSnapPoints: BottomSheetProps['snapPoints'],\n containerHeight: Animated.SharedValue,\n topInset: number,\n bottomInset: number,\n $modal: boolean\n) => {\n const normalizedSnapPoints = useDerivedValue(() =>\n ('value' in providedSnapPoints\n ? providedSnapPoints.value\n : providedSnapPoints\n ).map(snapPoint => {\n if (containerHeight.value === INITIAL_CONTAINER_HEIGHT) {\n return INITIAL_SNAP_POINT;\n }\n\n return normalizeSnapPoint(\n snapPoint,\n containerHeight.value,\n topInset,\n bottomInset,\n $modal\n );\n })\n );\n\n return normalizedSnapPoints;\n};\n","import { useCallback, RefObject, useRef } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport { useSharedValue } from 'react-native-reanimated';\nimport { SCROLLABLE_STATE, SCROLLABLE_TYPE } from '../constants';\nimport type { ScrollableRef, Scrollable } from '../types';\n\nexport const useScrollable = () => {\n // refs\n const scrollableRef = useRef(null);\n const previousScrollableRef = useRef(null);\n\n // variables\n const animatedScrollableType = useSharedValue(\n SCROLLABLE_TYPE.UNDETERMINED\n );\n const animatedScrollableContentOffsetY = useSharedValue(0);\n const animatedScrollableOverrideState = useSharedValue(\n SCROLLABLE_STATE.UNDETERMINED\n );\n const isScrollableRefreshable = useSharedValue(false);\n\n // callbacks\n const setScrollableRef = useCallback((ref: ScrollableRef) => {\n // get current node handle id\n let currentRefId = scrollableRef.current?.id ?? null;\n\n if (currentRefId !== ref.id) {\n if (scrollableRef.current) {\n // @ts-ignore\n previousScrollableRef.current = scrollableRef.current;\n }\n // @ts-ignore\n scrollableRef.current = ref;\n }\n }, []);\n\n const removeScrollableRef = useCallback((ref: RefObject) => {\n // find node handle id\n let id;\n try {\n id = findNodeHandle(ref.current);\n } catch {\n return;\n }\n\n // get current node handle id\n let currentRefId = scrollableRef.current?.id ?? null;\n\n /**\n * @DEV\n * when the incoming node is actually the current node, we reset\n * the current scrollable ref to the previous one.\n */\n if (id === currentRefId) {\n // @ts-ignore\n scrollableRef.current = previousScrollableRef.current;\n }\n }, []);\n\n return {\n scrollableRef,\n animatedScrollableType,\n animatedScrollableContentOffsetY,\n animatedScrollableOverrideState,\n isScrollableRefreshable,\n setScrollableRef,\n removeScrollableRef,\n };\n};\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\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","import { createContext } from 'react';\nimport type { ActionTypes } from '../state/types';\nimport type { PortalType } from '../types';\n\nexport const PortalStateContext = createContext\n> | null>(null);\nexport const PortalDispatchContext =\n createContext | null>(null);\n","import { ReactNode, useCallback, useContext } from 'react';\nimport { ACTIONS } from '../state/constants';\nimport { PortalDispatchContext } from '../contexts/portal';\n\nexport const usePortal = (hostName: string = 'root') => {\n const dispatch = useContext(PortalDispatchContext);\n\n if (dispatch === null) {\n throw new Error(\n \"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\"\n );\n }\n\n //#region methods\n const registerHost = useCallback(() => {\n dispatch({\n type: ACTIONS.REGISTER_HOST,\n hostName: hostName,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const deregisterHost = useCallback(() => {\n dispatch({\n type: ACTIONS.DEREGISTER_HOST,\n hostName: hostName,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const addUpdatePortal = useCallback((name: string, node: ReactNode) => {\n dispatch({\n type: ACTIONS.ADD_UPDATE_PORTAL,\n hostName,\n portalName: name,\n node,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const removePortal = useCallback((name: string) => {\n dispatch({\n type: ACTIONS.REMOVE_PORTAL,\n hostName,\n portalName: name,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n //#endregion\n\n return {\n registerHost,\n deregisterHost,\n addPortal: addUpdatePortal,\n updatePortal: addUpdatePortal,\n removePortal,\n };\n};\n","import React, { useEffect } from 'react';\nimport type { ReactNode } from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\n\ntype OverlayItem = {\n id: number;\n node: ReactNode;\n};\n\ninterface PortalContext {\n items: Array;\n setOverlayItem: (node: ReactNode) => number;\n removeOverlayItem: (id: number) => void;\n updateOverlayItem: (id: number, node: ReactNode) => void;\n}\n\ninterface ModalProviderProps extends ViewProps {\n children: ReactNode;\n provider?: boolean;\n}\n\nconst PortalContext = React.createContext(null);\n\nlet globalOverlayCounter = 0;\n\nexport function PortalProvider(props: { children: ReactNode }) {\n const [items, setItems] = React.useState>([]);\n\n const setOverlayItem = (item: ReactNode) => {\n const overlayId = ++globalOverlayCounter;\n setItems((prev) => prev.concat([{ id: overlayId, node: item }]));\n return overlayId;\n };\n\n const updateOverlayItem = (id: number, node: ReactNode) => {\n setItems((prev) =>\n prev.map((item) => {\n if (item.id === id) {\n return { id, node };\n }\n return item;\n })\n );\n };\n\n const removeOverlayItem = (id: number) => {\n setItems((prev) => {\n const newItems = prev.filter((item) => item.id !== id);\n return newItems;\n });\n };\n\n return (\n \n {props.children}\n\n {/* Render Overlays */}\n {items.map((item) => {\n return {item.node};\n })}\n \n );\n}\n\nfunction OverlayView({style, ...props}: ModalProviderProps) {\n return (\n \n );\n}\n\nexport const OverlayProvider = PortalProvider;\n\nexport function OverlayContainer(props: ModalProviderProps) {\n const context = usePortalProvider();\n const overlayId = React.useRef(undefined);\n let contents = ;\n\n useEffect(\n () => {\n // Mount\n if (overlayId.current === undefined) {\n overlayId.current = context?.setOverlayItem(contents);\n }\n // Update\n else {\n if (overlayId.current) {\n context?.updateOverlayItem(overlayId.current, contents);\n }\n }\n },\n // To re-render the child\n [props]\n );\n\n // Unmount\n useEffect(() => {\n return () => {\n if (overlayId.current) {\n context?.removeOverlayItem(overlayId.current);\n }\n };\n }, []);\n\n return null;\n}\n\nfunction usePortalProvider() {\n const context = React.useContext(PortalContext);\n return context;\n}\n","import { useContext } from 'react';\nimport { PortalStateContext } from '../contexts/portal';\n\nexport const usePortalState = (hostName: string) => {\n const state = useContext(PortalStateContext);\n\n if (state === null) {\n throw new Error(\n \"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.\"\n );\n }\n\n return state[hostName] || [];\n};\n","import React, { memo, useEffect } from 'react';\nimport { usePortalState } from '../../hooks/usePortalState';\nimport { usePortal } from '../../hooks/usePortal';\nimport type { PortalHostProps } from './types';\n\nconst PortalHostComponent = ({ name }: PortalHostProps) => {\n //#region hooks\n const state = usePortalState(name);\n const { registerHost, deregisterHost } = usePortal(name);\n //#endregion\n\n //#region effects\n useEffect(() => {\n registerHost();\n return () => {\n deregisterHost();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n //#endregion\n\n //#region render\n return <>{state.map(item => item.node)};\n //#endregion\n};\n\nexport const PortalHost = memo(PortalHostComponent);\nPortalHost.displayName = 'PortalHost';\n","import { ACTIONS } from './constants';\nimport { print } from '../utilities/logger';\nimport type { PortalType } from '../types';\nimport type {\n ActionTypes,\n AddUpdatePortalAction,\n RemovePortalAction,\n} from './types';\n\nconst registerHost = (\n state: Record>,\n hostName: string\n) => {\n if (!(hostName in state)) {\n state[hostName] = [];\n }\n return state;\n};\n\nconst deregisterHost = (\n state: Record>,\n hostName: string\n) => {\n delete state[hostName];\n return state;\n};\n\nconst addUpdatePortal = (\n state: Record>,\n hostName: string,\n portalName: string,\n node: any\n) => {\n if (!(hostName in state)) {\n state = registerHost(state, hostName);\n }\n\n /**\n * updated portal, if it was already added.\n */\n const index = state[hostName].findIndex(item => item.name === portalName);\n if (index !== -1) {\n state[hostName][index].node = node;\n } else {\n state[hostName].push({\n name: portalName,\n node,\n });\n }\n return state;\n};\n\nconst removePortal = (\n state: Record>,\n hostName: string,\n portalName: string\n) => {\n if (!(hostName in state)) {\n print({\n component: reducer.name,\n method: removePortal.name,\n params: `Failed to remove portal '${portalName}', '${hostName}' was not registered!`,\n });\n return state;\n }\n\n const index = state[hostName].findIndex(item => item.name === portalName);\n if (index !== -1) state[hostName].splice(index, 1);\n return state;\n};\n\nexport const reducer = (\n state: Record>,\n action: ActionTypes\n) => {\n const { type } = action;\n let clonedState = { ...state };\n switch (type) {\n case ACTIONS.REGISTER_HOST:\n return registerHost(clonedState, action.hostName);\n case ACTIONS.DEREGISTER_HOST:\n return deregisterHost(clonedState, action.hostName);\n case ACTIONS.ADD_UPDATE_PORTAL:\n return addUpdatePortal(\n clonedState,\n action.hostName,\n (action as AddUpdatePortalAction).portalName,\n (action as AddUpdatePortalAction).node\n );\n case ACTIONS.REMOVE_PORTAL:\n return removePortal(\n clonedState,\n action.hostName,\n (action as RemovePortalAction).portalName\n );\n default:\n return state;\n }\n};\n","import React, { memo, useReducer } from 'react';\nimport { PortalHost } from '../portalHost/PortalHost';\nimport {\n PortalDispatchContext,\n PortalStateContext,\n} from '../../contexts/portal';\nimport { INITIAL_STATE } from '../../state/constants';\nimport { reducer } from '../../state/reducer';\nimport type { PortalProviderProps } from './types';\n\nconst PortalProviderComponent = ({\n rootHostName = 'root',\n shouldAddRootHost = true,\n children,\n}: PortalProviderProps) => {\n const [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n return (\n \n \n {children}\n {shouldAddRootHost && }\n \n \n );\n};\n\nexport const PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = 'PortalProvider';\n","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\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","import React, {\n forwardRef,\n memo,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Portal, usePortal } from '@gorhom/portal';\nimport { nanoid } from 'nanoid/non-secure';\nimport BottomSheet from '../bottomSheet';\nimport { useBottomSheetModalInternal } from '../../hooks';\nimport { print } from '../../utilities';\nimport {\n DEFAULT_STACK_BEHAVIOR,\n DEFAULT_ENABLE_DISMISS_ON_CLOSE,\n} from './constants';\nimport type { BottomSheetModalMethods, BottomSheetMethods } from '../../types';\nimport type { BottomSheetModalProps } from './types';\n\ntype BottomSheetModal = BottomSheetModalMethods;\n\nconst BottomSheetModalComponent = forwardRef<\n BottomSheetModal,\n BottomSheetModalProps\n>(function BottomSheetModal(props, ref) {\n const {\n // modal props\n name,\n stackBehavior = DEFAULT_STACK_BEHAVIOR,\n enableDismissOnClose = DEFAULT_ENABLE_DISMISS_ON_CLOSE,\n onDismiss: _providedOnDismiss,\n\n // bottom sheet props\n index = 0,\n snapPoints,\n enablePanDownToClose = true,\n\n // callbacks\n onChange: _providedOnChange,\n\n // components\n children,\n ...bottomSheetProps\n } = props;\n\n //#region state\n const [mount, setMount] = useState(false);\n //#endregion\n\n //#region hooks\n const {\n containerHeight,\n containerOffset,\n mountSheet,\n unmountSheet,\n willUnmountSheet,\n } = useBottomSheetModalInternal();\n const { removePortal: unmountPortal } = usePortal();\n //#endregion\n\n //#region refs\n const bottomSheetRef = useRef(null);\n const currentIndexRef = useRef(-1);\n const restoreIndexRef = useRef(-1);\n const minimized = useRef(false);\n const forcedDismissed = useRef(false);\n const mounted = useRef(false);\n mounted.current = mount;\n //#endregion\n\n //#region variables\n const key = useMemo(() => name || `bottom-sheet-modal-${nanoid()}`, [name]);\n //#endregion\n\n //#region private methods\n const resetVariables = useCallback(function resetVariables() {\n print({\n component: BottomSheetModal.name,\n method: resetVariables.name,\n });\n currentIndexRef.current = -1;\n restoreIndexRef.current = -1;\n minimized.current = false;\n mounted.current = false;\n forcedDismissed.current = false;\n }, []);\n const unmount = useCallback(\n function unmount() {\n print({\n component: BottomSheetModal.name,\n method: unmount.name,\n });\n const _mounted = mounted.current;\n\n // reset variables\n resetVariables();\n\n // unmount sheet and portal\n unmountSheet(key);\n unmountPortal(key);\n\n // unmount the node, if sheet is still mounted\n if (_mounted) {\n setMount(false);\n }\n\n // fire `onDismiss` callback\n if (_providedOnDismiss) {\n _providedOnDismiss();\n }\n },\n [key, resetVariables, unmountSheet, unmountPortal, _providedOnDismiss]\n );\n //#endregion\n\n //#region bottom sheet methods\n const handleSnapToIndex = useCallback(\n (...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.snapToIndex(...args);\n },\n []\n );\n const handleSnapToPosition = useCallback<\n BottomSheetMethods['snapToPosition']\n >((...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.snapToPosition(...args);\n }, []);\n const handleExpand = useCallback((...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.expand(...args);\n }, []);\n const handleCollapse = useCallback((...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.collapse(...args);\n }, []);\n const handleClose = useCallback((...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.close(...args);\n }, []);\n const handleForceClose = useCallback((...args) => {\n if (minimized.current) {\n return;\n }\n bottomSheetRef.current?.forceClose(...args);\n }, []);\n //#endregion\n\n //#region bottom sheet modal methods\n const handlePresent = useCallback(\n function handlePresent() {\n requestAnimationFrame(() => {\n setMount(true);\n mountSheet(key, ref, stackBehavior);\n\n print({\n component: BottomSheetModal.name,\n method: handlePresent.name,\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [key, stackBehavior, mountSheet]\n );\n const handleDismiss = useCallback(\n function handleDismiss(animationConfigs) {\n print({\n component: BottomSheetModal.name,\n method: handleDismiss.name,\n params: {\n currentIndexRef: currentIndexRef.current,\n minimized: minimized.current,\n },\n });\n /**\n * if modal is already been dismiss, we exit the method.\n */\n if (currentIndexRef.current === -1 && minimized.current === false) {\n return;\n }\n\n if (\n minimized.current ||\n (currentIndexRef.current === -1 && enablePanDownToClose)\n ) {\n unmount();\n return;\n }\n willUnmountSheet(key);\n forcedDismissed.current = true;\n bottomSheetRef.current?.forceClose(animationConfigs);\n },\n [willUnmountSheet, unmount, key, enablePanDownToClose]\n );\n const handleMinimize = useCallback(\n function handleMinimize() {\n print({\n component: BottomSheetModal.name,\n method: handleMinimize.name,\n params: {\n minimized: minimized.current,\n },\n });\n if (minimized.current) {\n return;\n }\n minimized.current = true;\n\n /**\n * if modal got minimized before it finish its mounting\n * animation, we set the `restoreIndexRef` to the\n * provided index.\n */\n if (currentIndexRef.current === -1) {\n restoreIndexRef.current = index;\n } else {\n restoreIndexRef.current = currentIndexRef.current;\n }\n bottomSheetRef.current?.close();\n },\n [index]\n );\n const handleRestore = useCallback(function handleRestore() {\n print({\n component: BottomSheetModal.name,\n method: handleRestore.name,\n params: {\n minimized: minimized.current,\n forcedDismissed: forcedDismissed.current,\n },\n });\n if (!minimized.current || forcedDismissed.current) {\n return;\n }\n minimized.current = false;\n bottomSheetRef.current?.snapToIndex(restoreIndexRef.current);\n }, []);\n //#endregion\n\n //#region callbacks\n const handlePortalOnUnmount = useCallback(\n function handlePortalOnUnmount() {\n print({\n component: BottomSheetModal.name,\n method: handlePortalOnUnmount.name,\n params: {\n minimized: minimized.current,\n forcedDismissed: forcedDismissed.current,\n },\n });\n /**\n * if modal is already been dismiss, we exit the method.\n */\n if (currentIndexRef.current === -1 && minimized.current === false) {\n return;\n }\n\n mounted.current = false;\n forcedDismissed.current = true;\n\n if (minimized.current) {\n unmount();\n return;\n }\n willUnmountSheet(key);\n bottomSheetRef.current?.close();\n },\n [key, unmount, willUnmountSheet]\n );\n const handlePortalRender = useCallback(function handlePortalRender(\n render: () => void\n ) {\n if (mounted.current) {\n render();\n }\n },\n []);\n const handleBottomSheetOnChange = useCallback(\n function handleBottomSheetOnChange(_index: number) {\n print({\n component: BottomSheetModal.name,\n method: handleBottomSheetOnChange.name,\n params: {\n minimized: minimized.current,\n forcedDismissed: forcedDismissed.current,\n },\n });\n currentIndexRef.current = _index;\n\n if (_providedOnChange) {\n _providedOnChange(_index);\n }\n },\n [_providedOnChange]\n );\n const handleBottomSheetOnClose = useCallback(\n function handleBottomSheetOnClose() {\n print({\n component: BottomSheetModal.name,\n method: handleBottomSheetOnClose.name,\n params: {\n minimized: minimized.current,\n forcedDismissed: forcedDismissed.current,\n },\n });\n\n if (minimized.current) {\n return;\n }\n\n if (enableDismissOnClose) {\n unmount();\n }\n },\n [enableDismissOnClose, unmount]\n );\n //#endregion\n\n //#region expose methods\n useImperativeHandle(ref, () => ({\n // sheet\n snapToIndex: handleSnapToIndex,\n snapToPosition: handleSnapToPosition,\n expand: handleExpand,\n collapse: handleCollapse,\n close: handleClose,\n forceClose: handleForceClose,\n // modal methods\n dismiss: handleDismiss,\n present: handlePresent,\n // internal\n minimize: handleMinimize,\n restore: handleRestore,\n }));\n //#endregion\n\n // render\n // console.log('BottomSheetModal', index, snapPoints)\n return mount ? (\n \n \n \n ) : null;\n});\n\nconst BottomSheetModal = memo(BottomSheetModalComponent);\nBottomSheetModal.displayName = 'BottomSheetModal';\n\nexport default BottomSheetModal;\n","import { useContext } from 'react';\nimport {\n BottomSheetModalInternalContext,\n BottomSheetModalInternalContextType,\n} from '../contexts';\n\nexport function useBottomSheetModalInternal(\n unsafe?: false\n): BottomSheetModalInternalContextType;\n\nexport function useBottomSheetModalInternal(\n unsafe: true\n): BottomSheetModalInternalContextType | null;\n\nexport function useBottomSheetModalInternal(\n unsafe?: boolean\n): BottomSheetModalInternalContextType | null {\n const context = useContext(BottomSheetModalInternalContext);\n\n if (unsafe !== true && context === null) {\n throw \"'BottomSheetModalInternalContext' cannot be null!\";\n }\n\n return context;\n}\n","export default () => null;\n","import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { Platform } from 'react-native';\nimport { useAnimatedProps, useAnimatedStyle } from 'react-native-reanimated';\nimport { NativeViewGestureHandler } from 'react-native-gesture-handler';\nimport BottomSheetDraggableView from '../bottomSheetDraggableView';\nimport BottomSheetRefreshControl from '../bottomSheetRefreshControl';\nimport {\n useScrollHandler,\n useScrollableSetter,\n useBottomSheetInternal,\n} from '../../hooks';\nimport {\n GESTURE_SOURCE,\n SCROLLABLE_DECELERATION_RATE_MAPPER,\n SCROLLABLE_STATE,\n SCROLLABLE_TYPE,\n} from '../../constants';\nimport { styles } from './styles';\n\nexport function createBottomSheetScrollableComponent(\n type: SCROLLABLE_TYPE,\n ScrollableComponent: any\n) {\n return forwardRef((props, ref) => {\n // props\n const {\n // hooks\n focusHook,\n scrollEventsHandlersHook,\n // props\n enableFooterMarginAdjustment = false,\n overScrollMode = 'never',\n keyboardDismissMode = 'interactive',\n showsVerticalScrollIndicator = true,\n style,\n refreshing,\n onRefresh,\n progressViewOffset,\n refreshControl,\n ...rest\n }: any = props;\n\n //#region refs\n const nativeGestureRef = useRef(null);\n const refreshControlGestureRef = useRef(null);\n //#endregion\n\n //#region hooks\n const { scrollableRef, scrollableContentOffsetY, scrollHandler } =\n useScrollHandler(scrollEventsHandlersHook);\n const {\n enableContentPanningGesture,\n animatedFooterHeight,\n animatedScrollableState,\n } = useBottomSheetInternal();\n //#endregion\n\n //#region variables\n const scrollableAnimatedProps = useAnimatedProps(\n () => ({\n decelerationRate:\n SCROLLABLE_DECELERATION_RATE_MAPPER[animatedScrollableState.value],\n showsVerticalScrollIndicator: showsVerticalScrollIndicator\n ? animatedScrollableState.value === SCROLLABLE_STATE.UNLOCKED\n : showsVerticalScrollIndicator,\n }),\n [showsVerticalScrollIndicator]\n );\n //#endregion\n\n //#region styles\n const containerAnimatedStyle = useAnimatedStyle(\n () => ({\n marginBottom: enableFooterMarginAdjustment\n ? animatedFooterHeight.value\n : 0,\n }),\n [enableFooterMarginAdjustment]\n );\n const containerStyle = useMemo(() => {\n return enableFooterMarginAdjustment\n ? [\n ...(style ? ('length' in style ? style : [style]) : []),\n containerAnimatedStyle,\n ]\n : style;\n }, [enableFooterMarginAdjustment, style, containerAnimatedStyle]);\n //#endregion\n\n //#region effects\n // @ts-ignore\n useImperativeHandle(ref, () => scrollableRef.current);\n useScrollableSetter(\n scrollableRef,\n type,\n scrollableContentOffsetY,\n onRefresh !== undefined,\n focusHook\n );\n //#endregion\n\n //#region render\n if (Platform.OS === 'android') {\n const scrollableContent = (\n \n \n \n );\n return (\n \n {onRefresh ? (\n \n {scrollableContent}\n \n ) : (\n scrollableContent\n )}\n \n );\n }\n return (\n \n \n \n \n \n );\n //#endregion\n });\n}\n","import {\n useAnimatedRef,\n useAnimatedScrollHandler,\n useSharedValue,\n} from 'react-native-reanimated';\nimport { useScrollEventsHandlersDefault } from './useScrollEventsHandlersDefault';\nimport { workletNoop as noop } from '../utilities';\nimport type { Scrollable } from '../types';\n\nexport const useScrollHandler = (\n useScrollEventsHandlers = useScrollEventsHandlersDefault\n) => {\n // refs\n const scrollableRef = useAnimatedRef();\n\n // variables\n const scrollableContentOffsetY = useSharedValue(0);\n\n // hooks\n const {\n handleOnScroll = noop,\n handleOnBeginDrag = noop,\n handleOnEndDrag = noop,\n handleOnMomentumEnd = noop,\n handleOnMomentumBegin = noop,\n } = useScrollEventsHandlers(scrollableRef, scrollableContentOffsetY);\n\n // callbacks\n const scrollHandler = useAnimatedScrollHandler(\n {\n onScroll: handleOnScroll,\n onBeginDrag: handleOnBeginDrag,\n onEndDrag: handleOnEndDrag,\n onMomentumBegin: handleOnMomentumBegin,\n onMomentumEnd: handleOnMomentumEnd,\n },\n [\n handleOnScroll,\n handleOnBeginDrag,\n handleOnEndDrag,\n handleOnMomentumBegin,\n handleOnMomentumEnd,\n ]\n );\n\n return { scrollHandler, scrollableRef, scrollableContentOffsetY };\n};\n","import React, { useCallback, useEffect } from 'react';\nimport { findNodeHandle } from 'react-native';\nimport Animated from 'react-native-reanimated';\nimport { useBottomSheetInternal } from './useBottomSheetInternal';\nimport { SCROLLABLE_TYPE } from '../constants';\nimport type { Scrollable } from '../types';\n\nexport const useScrollableSetter = (\n ref: React.RefObject,\n type: SCROLLABLE_TYPE,\n contentOffsetY: Animated.SharedValue,\n refreshable: boolean,\n useFocusHook = useEffect\n) => {\n // hooks\n const {\n animatedScrollableType,\n animatedScrollableContentOffsetY: rootScrollableContentOffsetY,\n isContentHeightFixed,\n isScrollableRefreshable,\n setScrollableRef,\n removeScrollableRef,\n } = useBottomSheetInternal();\n\n // callbacks\n const handleSettingScrollable = useCallback(() => {\n // set current content offset\n rootScrollableContentOffsetY.value = contentOffsetY.value;\n animatedScrollableType.value = type;\n isScrollableRefreshable.value = refreshable;\n isContentHeightFixed.value = false;\n\n // set current scrollable ref\n const id = findNodeHandle(ref.current);\n if (id) {\n setScrollableRef({\n id: id,\n node: ref,\n });\n } else {\n console.warn(`Couldn't find the scrollable node handle id!`);\n }\n\n return () => {\n removeScrollableRef(ref);\n };\n }, [\n ref,\n type,\n refreshable,\n animatedScrollableType,\n rootScrollableContentOffsetY,\n contentOffsetY,\n isScrollableRefreshable,\n isContentHeightFixed,\n setScrollableRef,\n removeScrollableRef,\n ]);\n\n // effects\n useFocusHook(handleSettingScrollable);\n};\n","import { memo } from 'react';\nimport {\n DefaultSectionT,\n SectionList as RNSectionList,\n SectionListProps as RNSectionListProps,\n} from 'react-native';\nimport Animated from 'react-native-reanimated';\nimport { SCROLLABLE_TYPE } from '../../constants';\nimport { createBottomSheetScrollableComponent } from './createBottomSheetScrollableComponent';\nimport type {\n BottomSheetSectionListMethods,\n BottomSheetSectionListProps,\n} from './types';\n\nconst AnimatedSectionList =\n Animated.createAnimatedComponent>(RNSectionList);\n\nconst BottomSheetSectionListComponent = createBottomSheetScrollableComponent<\n BottomSheetSectionListMethods,\n BottomSheetSectionListProps\n>(SCROLLABLE_TYPE.SECTIONLIST, AnimatedSectionList);\n\nconst BottomSheetSectionList = memo(BottomSheetSectionListComponent);\nBottomSheetSectionList.displayName = 'BottomSheetSectionList';\n\nexport default BottomSheetSectionList as (\n props: BottomSheetSectionListProps\n) => ReturnType;\n","import { memo } from 'react';\nimport {\n FlatList as RNFlatList,\n FlatListProps as RNFlatListProps,\n} from 'react-native';\nimport Animated from 'react-native-reanimated';\nimport { SCROLLABLE_TYPE } from '../../constants';\nimport { createBottomSheetScrollableComponent } from './createBottomSheetScrollableComponent';\nimport type {\n BottomSheetFlatListMethods,\n BottomSheetFlatListProps,\n} from './types';\n\nconst AnimatedFlatList =\n Animated.createAnimatedComponent>(RNFlatList);\n\nconst BottomSheetFlatListComponent = createBottomSheetScrollableComponent<\n BottomSheetFlatListMethods,\n BottomSheetFlatListProps\n>(SCROLLABLE_TYPE.FLATLIST, AnimatedFlatList);\n\nconst BottomSheetFlatList = memo(BottomSheetFlatListComponent);\nBottomSheetFlatList.displayName = 'BottomSheetFlatList';\n\nexport default BottomSheetFlatList as (\n props: BottomSheetFlatListProps\n) => ReturnType;\n","import { memo } from 'react';\nimport {\n ScrollView as RNScrollView,\n ScrollViewProps as RNScrollViewProps,\n} from 'react-native';\nimport Animated from 'react-native-reanimated';\nimport { SCROLLABLE_TYPE } from '../../constants';\nimport { createBottomSheetScrollableComponent } from './createBottomSheetScrollableComponent';\nimport type {\n BottomSheetScrollViewMethods,\n BottomSheetScrollViewProps,\n} from './types';\n\nconst AnimatedScrollView =\n Animated.createAnimatedComponent(RNScrollView);\n\nconst BottomSheetScrollViewComponent = createBottomSheetScrollableComponent<\n BottomSheetScrollViewMethods,\n BottomSheetScrollViewProps\n>(SCROLLABLE_TYPE.SCROLLVIEW, AnimatedScrollView);\n\nconst BottomSheetScrollView = memo(BottomSheetScrollViewComponent);\nBottomSheetScrollView.displayName = 'BottomSheetScrollView';\n\nexport default BottomSheetScrollView as (\n props: BottomSheetScrollViewProps\n) => ReturnType;\n","import { memo } from 'react';\nimport {\n VirtualizedList as RNVirtualizedList,\n VirtualizedListProps as RNVirtualizedListProps,\n} from 'react-native';\nimport Animated from 'react-native-reanimated';\nimport { SCROLLABLE_TYPE } from '../../constants';\nimport { createBottomSheetScrollableComponent } from './createBottomSheetScrollableComponent';\nimport type {\n BottomSheetVirtualizedListMethods,\n BottomSheetVirtualizedListProps,\n} from './types';\n\nconst AnimatedVirtualizedList =\n Animated.createAnimatedComponent>(\n RNVirtualizedList\n );\n\nconst BottomSheetVirtualizedListComponent =\n createBottomSheetScrollableComponent<\n BottomSheetVirtualizedListMethods,\n BottomSheetVirtualizedListProps\n >(SCROLLABLE_TYPE.VIRTUALIZEDLIST, AnimatedVirtualizedList);\n\nconst BottomSheetVirtualizedList = memo(BottomSheetVirtualizedListComponent);\nBottomSheetVirtualizedList.displayName = 'BottomSheetVirtualizedList';\n\nexport default BottomSheetVirtualizedList as (\n props: BottomSheetVirtualizedListProps\n) => ReturnType;\n","import React, { memo, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\nimport { SCROLLABLE_TYPE } from '../../constants';\nimport { useBottomSheetInternal } from '../../hooks';\nimport type { BottomSheetViewProps } from './types';\n\nfunction BottomSheetViewComponent({\n focusHook: useFocusHook = useEffect,\n enableFooterMarginAdjustment = false,\n style,\n children,\n ...rest\n}: BottomSheetViewProps) {\n // hooks\n const {\n animatedScrollableContentOffsetY,\n animatedScrollableType,\n animatedFooterHeight,\n } = useBottomSheetInternal();\n\n // styles\n const containerStylePaddingBottom = useMemo(() => {\n const flattenStyle = StyleSheet.flatten(style);\n const paddingBottom =\n flattenStyle && 'paddingBottom' in flattenStyle\n ? flattenStyle.paddingBottom\n : 0;\n return typeof paddingBottom === 'number' ? paddingBottom : 0;\n }, [style]);\n const containerAnimatedStyle = useAnimatedStyle(\n () => ({\n paddingBottom: enableFooterMarginAdjustment\n ? animatedFooterHeight.value + containerStylePaddingBottom\n : containerStylePaddingBottom,\n }),\n [containerStylePaddingBottom, enableFooterMarginAdjustment]\n );\n const containerStyle = useMemo(\n () => [style, containerAnimatedStyle],\n [style, containerAnimatedStyle]\n );\n\n // callback\n const handleSettingScrollable = useCallback(() => {\n animatedScrollableContentOffsetY.value = 0;\n animatedScrollableType.value = SCROLLABLE_TYPE.VIEW;\n }, [animatedScrollableContentOffsetY, animatedScrollableType]);\n\n // effects\n useFocusHook(handleSettingScrollable);\n\n //render\n return (\n \n {children}\n \n );\n}\n\nconst BottomSheetView = memo(BottomSheetViewComponent);\nBottomSheetView.displayName = 'BottomSheetView';\n\nexport default BottomSheetView;\n","import React, { memo, useCallback, forwardRef } from 'react';\nimport { TextInput } from 'react-native-gesture-handler';\nimport { useBottomSheetInternal } from '../../hooks';\nimport type { BottomSheetTextInputProps } from './types';\n\nconst BottomSheetTextInputComponent = forwardRef<\n TextInput,\n BottomSheetTextInputProps\n>(({ onFocus, onBlur, ...rest }, ref) => {\n //#region hooks\n const { shouldHandleKeyboardEvents } = useBottomSheetInternal();\n //#endregion\n\n //#region callbacks\n const handleOnFocus = useCallback(\n args => {\n shouldHandleKeyboardEvents.value = true;\n if (onFocus) {\n onFocus(args);\n }\n },\n [onFocus, shouldHandleKeyboardEvents]\n );\n const handleOnBlur = useCallback(\n args => {\n shouldHandleKeyboardEvents.value = false;\n if (onBlur) {\n onBlur(args);\n }\n },\n [onBlur, shouldHandleKeyboardEvents]\n );\n //#endregion\n\n return (\n \n );\n});\n\nconst BottomSheetTextInput = memo(BottomSheetTextInputComponent);\nBottomSheetTextInput.displayName = 'BottomSheetTextInput';\n\nexport default BottomSheetTextInput;\n","import React, { memo, useCallback, useMemo, useRef } from 'react';\nimport Animated, {\n interpolate,\n Extrapolate,\n useAnimatedStyle,\n useAnimatedReaction,\n useAnimatedGestureHandler,\n runOnJS,\n} from 'react-native-reanimated';\nimport {\n TapGestureHandler,\n TapGestureHandlerGestureEvent,\n} from 'react-native-gesture-handler';\nimport { useBottomSheet } from '../../hooks';\nimport {\n DEFAULT_OPACITY,\n DEFAULT_APPEARS_ON_INDEX,\n DEFAULT_DISAPPEARS_ON_INDEX,\n DEFAULT_ENABLE_TOUCH_THROUGH,\n DEFAULT_PRESS_BEHAVIOR,\n} from './constants';\nimport { styles } from './styles';\nimport type { BottomSheetDefaultBackdropProps } from './types';\n\nconst BottomSheetBackdropComponent = ({\n animatedIndex,\n opacity: _providedOpacity,\n appearsOnIndex: _providedAppearsOnIndex,\n disappearsOnIndex: _providedDisappearsOnIndex,\n enableTouchThrough: _providedEnableTouchThrough,\n pressBehavior = DEFAULT_PRESS_BEHAVIOR,\n style,\n children,\n}: BottomSheetDefaultBackdropProps) => {\n //#region hooks\n const { snapToIndex, close } = useBottomSheet();\n //#endregion\n\n //#region defaults\n const opacity = _providedOpacity ?? DEFAULT_OPACITY;\n const appearsOnIndex = _providedAppearsOnIndex ?? DEFAULT_APPEARS_ON_INDEX;\n const disappearsOnIndex =\n _providedDisappearsOnIndex ?? DEFAULT_DISAPPEARS_ON_INDEX;\n const enableTouchThrough =\n _providedEnableTouchThrough ?? DEFAULT_ENABLE_TOUCH_THROUGH;\n //#endregion\n\n //#region variables\n const containerRef = useRef(null);\n const pointerEvents = enableTouchThrough ? 'none' : 'auto';\n //#endregion\n\n //#region callbacks\n const handleOnPress = useCallback(() => {\n if (pressBehavior === 'close') {\n close();\n } else if (pressBehavior === 'collapse') {\n snapToIndex(disappearsOnIndex as number);\n } else if (typeof pressBehavior === 'number') {\n snapToIndex(pressBehavior);\n }\n }, [snapToIndex, close, disappearsOnIndex, pressBehavior]);\n const handleContainerTouchability = useCallback(\n (shouldDisableTouchability: boolean) => {\n if (!containerRef.current) {\n return;\n }\n // @ts-ignore\n containerRef.current.setNativeProps({\n pointerEvents: shouldDisableTouchability ? 'none' : 'auto',\n });\n },\n []\n );\n //#endregion\n\n //#region tap gesture\n const gestureHandler =\n useAnimatedGestureHandler(\n {\n onFinish: () => {\n runOnJS(handleOnPress)();\n },\n },\n [handleOnPress]\n );\n //#endregion\n\n //#region styles\n const containerAnimatedStyle = useAnimatedStyle(() => ({\n opacity: interpolate(\n animatedIndex.value,\n [-1, disappearsOnIndex, appearsOnIndex],\n [0, 0, opacity],\n Extrapolate.CLAMP\n ),\n flex: 1,\n }));\n const containerStyle = useMemo(\n () => [styles.container, style, containerAnimatedStyle],\n [style, containerAnimatedStyle]\n );\n //#endregion\n\n //#region effects\n useAnimatedReaction(\n () => animatedIndex.value <= disappearsOnIndex,\n (shouldDisableTouchability, previous) => {\n if (shouldDisableTouchability === previous) {\n return;\n }\n runOnJS(handleContainerTouchability)(shouldDisableTouchability);\n },\n [disappearsOnIndex]\n );\n //#endregion\n\n return pressBehavior !== 'none' ? (\n \n \n {children}\n \n \n ) : (\n \n {children}\n \n );\n};\n\nconst BottomSheetBackdrop = memo(BottomSheetBackdropComponent);\nBottomSheetBackdrop.displayName = 'BottomSheetBackdrop';\n\nexport default BottomSheetBackdrop;\n","import { useContext } from 'react';\nimport { BottomSheetContext } from '../contexts/external';\n\nexport const useBottomSheet = () => {\n const context = useContext(BottomSheetContext);\n\n if (context === null) {\n throw \"'useBottomSheet' cannot be used out of the BottomSheet!\";\n }\n\n return context;\n};\n","import React, { memo, useCallback, useMemo } from 'react';\nimport { LayoutChangeEvent } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\nimport { KEYBOARD_STATE } from '../../constants';\nimport { useBottomSheetInternal } from '../../hooks';\nimport type { BottomSheetDefaultFooterProps } from './types';\nimport { styles } from './styles';\n\nfunction BottomSheetFooterComponent({\n animatedFooterPosition,\n bottomInset = 0,\n style,\n children,\n}: BottomSheetDefaultFooterProps) {\n //#region hooks\n const { animatedFooterHeight, animatedKeyboardState } =\n useBottomSheetInternal();\n //#endregion\n\n //#region styles\n const containerAnimatedStyle = useAnimatedStyle(() => {\n let footerTranslateY = animatedFooterPosition.value;\n\n /**\n * Offset the bottom inset only when keyboard is not shown\n */\n if (animatedKeyboardState.value !== KEYBOARD_STATE.SHOWN) {\n footerTranslateY = footerTranslateY - bottomInset;\n }\n\n return {\n transform: [\n {\n translateY: Math.max(0, footerTranslateY),\n },\n ],\n };\n }, [bottomInset, animatedKeyboardState, animatedFooterPosition]);\n const containerStyle = useMemo(\n () => [styles.container, style, containerAnimatedStyle],\n [style, containerAnimatedStyle]\n );\n //#endregion\n\n //#region callbacks\n const handleContainerLayout = useCallback(\n ({\n nativeEvent: {\n layout: { height },\n },\n }: LayoutChangeEvent) => {\n animatedFooterHeight.value = height;\n },\n [animatedFooterHeight]\n );\n //#endregion\n\n return children !== null ? (\n \n {typeof children === 'function' ? children() : children}\n \n ) : null;\n}\n\nconst BottomSheetFooter = memo(BottomSheetFooterComponent);\nBottomSheetFooter.displayName = 'BottomSheetFooter';\n\nexport default BottomSheetFooter;\n","import { ComponentClass } from 'react';\nimport {\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\n\nexport interface SharedValue {\n value: T;\n}\n\nlet Reanimated: {\n default: {\n // Slightly modified definition copied from 'react-native-reanimated'\n // eslint-disable-next-line @typescript-eslint/ban-types\n createAnimatedComponent

(\n component: ComponentClass

,\n options?: unknown\n ): ComponentClass

;\n };\n useEvent: (\n callback: (event: GestureUpdateEvent | GestureStateChangeEvent) => void,\n events: string[],\n rebuild: boolean\n ) => unknown;\n useSharedValue: (value: T) => SharedValue;\n setGestureState: (handlerTag: number, newState: number) => void;\n};\n\ntry {\n Reanimated = require('react-native-reanimated');\n\n if (!Reanimated.setGestureState) {\n Reanimated.setGestureState = () => {\n 'worklet';\n console.warn(\n 'Please use newer version of react-native-reanimated in order to control state of the gestures.'\n );\n };\n }\n // When 'react-native-reanimated' is not available we want to\n // quietly continue\n // eslint-disable-next-line no-empty\n} catch (e) {}\n\nexport { Reanimated };\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\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;","import React from 'react';\nimport { useStyledSystemPropsResolver } from '../hooks/';\n\nexport const makeStyledComponent = (Comp: any) => {\n return React.forwardRef(({ debug, ...props }: any, ref: any) => {\n const [style, restProps] = useStyledSystemPropsResolver(props);\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cstyleSystem`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log('%c props: ', 'color: #4ade80; font-weight: 700;', props);\n /* eslint-disable-next-line */\n console.log('%c style: ', 'color: #22d3ee; font-weight: 700;', style);\n /* eslint-disable-next-line */\n console.log(\n '%c restProps: ',\n 'color: #22d3ee; font-weight: 700;',\n restProps\n );\n }\n return (\n \n {props.children}\n \n );\n });\n};\n","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\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\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 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;","//@ts-ignore\nimport { unstable_createElement } from 'react-native-web';\nimport { forwardRef } from 'react';\n\nexport const Svg = forwardRef((props: any, ref: any) =>\n unstable_createElement('svg', { ...props, ref })\n);\nexport const G = forwardRef((props: any, ref: any) =>\n unstable_createElement('g', { ...props, ref })\n);\nexport const Path = forwardRef((props: any, ref: any) =>\n unstable_createElement('path', { ...props, ref })\n);\nexport const Polygon = forwardRef((props: any, ref: any) =>\n unstable_createElement('polygon', { ...props, ref })\n);\nexport const Line = forwardRef((props: any, ref: any) =>\n unstable_createElement('line', { ...props, ref })\n);\nexport const Circle = forwardRef((props: any, ref: any) =>\n unstable_createElement('circle', { ...props, ref })\n);\nexport const Rect = forwardRef((props: any, ref: any) =>\n unstable_createElement('rect', { ...props, ref })\n);\n","import { processColor } from './Colors';\nimport { makeShareable, isConfigured } from './core';\nimport { _updatePropsJS } from './js-reanimated';\nimport { shouldBeUseWeb } from './PlatformChecker';\n// copied from react-native/Libraries/Components/View/ReactNativeStyleAttributes\nexport const colorProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderColor',\n 'borderLeftColor',\n 'borderRightColor',\n 'borderTopColor',\n 'borderStartColor',\n 'borderEndColor',\n 'color',\n 'shadowColor',\n 'textDecorationColor',\n 'tintColor',\n 'textShadowColor',\n 'overlayColor',\n];\nexport const ColorProperties = !isConfigured() ? [] : makeShareable(colorProps);\nlet updatePropsByPlatform;\nif (shouldBeUseWeb()) {\n updatePropsByPlatform = (_, updates, maybeViewRef) => {\n 'worklet';\n if (maybeViewRef) {\n maybeViewRef.items.forEach((item, _) => {\n _updatePropsJS(updates, item);\n });\n }\n };\n}\nelse {\n updatePropsByPlatform = (viewDescriptors, updates, _) => {\n 'worklet';\n for (const key in updates) {\n if (ColorProperties.indexOf(key) !== -1) {\n updates[key] = processColor(updates[key]);\n }\n }\n viewDescriptors.value.forEach((viewDescriptor) => {\n _updateProps(viewDescriptor.tag, viewDescriptor.name || 'RCTView', updates);\n });\n };\n}\nexport const updateProps = updatePropsByPlatform;\nexport const updatePropsJestWrapper = (viewDescriptors, updates, maybeViewRef, animatedStyle, adapters) => {\n adapters.forEach((adapter) => {\n adapter(updates);\n });\n animatedStyle.current.value = Object.assign(Object.assign({}, animatedStyle.current.value), updates);\n updateProps(viewDescriptors, updates, maybeViewRef);\n};\nexport default updateProps;\n","var util;\n(function (util) {\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n})(util || (util = {}));\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.format = () => {\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(issue.message);\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n if (typeof el === \"string\") {\n curr[el] = curr[el] || { _errors: [] };\n }\n else if (typeof el === \"number\") {\n const errorArray = [];\n errorArray._errors = [];\n curr[el] = curr[el] || errorArray;\n }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(issue.message);\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n };\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, null, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\nconst defaultErrorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === \"undefined\") {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${issue.keys\n .map((k) => `'${k}'`)\n .join(\", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${issue.options\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(\" | \")}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${issue.options\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(\" | \")}`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (issue.validation !== \"regex\")\n message = `Invalid ${issue.validation}`;\n else\n message = \"Invalid\";\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be greater than ${issue.inclusive ? `or equal to ` : ``}${issue.minimum}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be less than ${issue.inclusive ? `or equal to ` : ``}${issue.maximum}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\nlet overrideErrorMap = defaultErrorMap;\nconst setErrorMap = (map) => {\n overrideErrorMap = map;\n};\n\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideErrorMap,\n defaultErrorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (typeof value.value !== \"undefined\" || pair.alwaysSet) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== undefined && x instanceof Promise;\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n return this._path.concat(this._key);\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n const error = new ZodError(ctx.common.issues);\n return { success: false, error };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid\" or \"required\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\" && required_error)\n return { message: required_error };\n if (params.invalid_type_error)\n return { message: params.invalid_type_error };\n return { message: ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this.superRefine = this._refinement;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.default = this.default.bind(this);\n this.describe = this.describe.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n typeCache: typeof Map !== \"undefined\" ? new Map() : undefined,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n typeCache: typeof Map !== \"undefined\" ? new Map() : undefined,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: [], parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n optional() {\n return ZodOptional.create(this);\n }\n nullable() {\n return ZodNullable.create(this);\n }\n nullish() {\n return this.optional().nullable();\n }\n array() {\n return ZodArray.create(this);\n }\n promise() {\n return ZodPromise.create(this);\n }\n or(option) {\n return ZodUnion.create([this, option]);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming);\n }\n transform(transform) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst uuidRegex = /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n// eslint-disable-next-line\nconst emailRegex = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nclass ZodString extends ZodType {\n constructor() {\n super(...arguments);\n this._regex = (regex, validation, message) => this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n /**\n * Deprecated.\n * Use z.string().min(1) instead.\n */\n this.nonempty = (message) => this.min(1, errorUtil.errToObj(message));\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n }\n return { status: status.value, value: input.data };\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get minLength() {\n let min = -Infinity;\n this._def.checks.map((ch) => {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min) {\n min = ch.value;\n }\n }\n });\n return min;\n }\n get maxLength() {\n let max = null;\n this._def.checks.map((ch) => {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max) {\n max = ch.value;\n }\n }\n });\n return max;\n }\n}\nZodString.create = (params) => {\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\");\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBigInt.create = (params) => {\n return new ZodBigInt({\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n return {\n status: \"valid\",\n value: new Date(input.data.getTime()),\n };\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all(ctx.data.map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = ctx.data.map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return this.min(len, message).max(len, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////\n/////////////////////////////////////////\n////////// //////////\n////////// ZodObject //////////\n////////// //////////\n/////////////////////////////////////////\n/////////////////////////////////////////\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst AugmentFactory = (def) => (augmentation) => {\n return new ZodObject({\n ...def,\n shape: () => ({\n ...def.shape(),\n ...augmentation,\n }),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return ZodArray.create(deepPartialify(schema.element));\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n this.augment = AugmentFactory(this._def);\n this.extend = AugmentFactory(this._def);\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const dataKeys = util.objectKeys(ctx.data);\n const extraKeys = dataKeys.filter((k) => !shapeKeys.includes(k));\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n // const mergedShape = objectUtil.mergeShapes(\n // this._def.shape(),\n // merging._def.shape()\n // );\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).map((key) => {\n shape[key] = this.shape[key];\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n if (mask) {\n util.objectKeys(this.shape).map((key) => {\n if (util.objectKeys(mask).indexOf(key) === -1) {\n newShape[key] = this.shape[key];\n }\n else {\n newShape[key] = this.shape[key].optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n else {\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n newShape[key] = fieldSchema.optional();\n }\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required() {\n const newShape = {};\n for (const key in this.shape) {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.options.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: this.validDiscriminatorValues,\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get validDiscriminatorValues() {\n return Array.from(this.options.keys());\n }\n get options() {\n return this._def.options;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, types, params) {\n // Get all the valid discriminator values\n const options = new Map();\n try {\n types.forEach((type) => {\n const discriminatorValue = type.shape[discriminator].value;\n options.set(discriminatorValue, type);\n });\n }\n catch (e) {\n throw new Error(\"The discriminator value could not be extracted from all the provided schemas\");\n }\n // Assert that all the discriminator values are unique\n if (options.size !== types.length) {\n throw new Error(\"Some of the discriminator values are not unique\");\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n type: \"array\",\n });\n status.dirty();\n }\n const items = ctx.data\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideErrorMap,\n defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideErrorMap,\n defaultErrorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n return OK(async (...args) => {\n const error = new ZodError([]);\n const parsedArgs = await this._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await fn(...parsedArgs);\n const parsedReturns = await this._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n return OK((...args) => {\n const parsedArgs = this._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = fn(...parsedArgs.data);\n const parsedReturns = this._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n}\nZodFunction.create = (args, returns, params) => {\n return new ZodFunction({\n args: (args\n ? args.rest(ZodUnknown.create())\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n};\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: getParsedType(this._def.value),\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values) {\n return new ZodEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n });\n}\nclass ZodEnum extends ZodType {\n _parse(input) {\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_enum_value,\n options: this._def.values,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n}\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_enum_value,\n options: util.objectValues(nativeEnumValues),\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data);\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed) => {\n return this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n });\n }\n else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n if (effect.type === \"refinement\") {\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n const executeRefinement = (acc\n // effect: RefinementEffect\n ) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return OK(result);\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n // if (base.status === \"aborted\") return INVALID;\n // if (base.status === \"dirty\") {\n // return { status: \"dirty\", value: base.value };\n // }\n return Promise.resolve(effect.transform(base.value)).then(OK);\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst custom = (check, params) => {\n if (check)\n return ZodAny.create().refine(check, params);\n return ZodAny.create();\n};\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (cls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\n\nvar mod = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n ZodType: ZodType,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n get objectUtil () { return objectUtil; },\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodNaN: ZodNaN,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError,\n defaultErrorMap: defaultErrorMap,\n get overrideErrorMap () { return overrideErrorMap; },\n setErrorMap: setErrorMap\n});\n\nexport { DIRTY, EMPTY_PATH, INVALID, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPromise, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, custom, dateType as date, mod as default, defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, overrideErrorMap, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, voidType as void, mod as z };\n","export function mergeRefs(\n refs: Array | React.LegacyRef>\n): React.RefCallback {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n (ref as React.MutableRefObject).current = value;\n }\n });\n };\n}\n\nexport function composeEventHandlers(\n originalEventHandler?: null | ((event: E) => void),\n ourEventHandler?: (event: E) => void\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n ourEventHandler?.(event);\n };\n}\n","import React, { forwardRef, memo } from 'react';\nimport { Pressable as RNPressable } from 'react-native';\nimport { composeEventHandlers } from '../../../utils';\nimport type { IPressableProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useFocusRing } from '@react-native-aria/focus';\n\nexport const useHover = () => {\n const [isHovered, setHovered] = React.useState(false);\n return {\n hoverProps: {\n onHoverIn: () => setHovered(true),\n onHoverOut: () => setHovered(false),\n },\n isHovered,\n };\n};\n\nexport const useFocus = () => {\n const [isFocused, setFocused] = React.useState(false);\n return {\n focusProps: {\n onFocus: () => setFocused(true),\n onBlur: () => setFocused(false),\n },\n isFocused,\n };\n};\n\nexport const useIsPressed = () => {\n const [isPressed, setIsPressed] = React.useState(false);\n return {\n pressableProps: {\n onPressIn: () => setIsPressed(true),\n onPressOut: () => setIsPressed(false),\n },\n isPressed,\n };\n};\n\nconst StyledPressable = makeStyledComponent(RNPressable);\n\nconst Pressable = (\n {\n children,\n isDisabled,\n disabled,\n isHovered: isHoveredProp,\n isPressed: isPressedProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n ...props\n }: IPressableProps,\n ref: any\n) => {\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n ...resolvedProps\n } = usePropsResolution('Pressable', props, {\n isPressed: isPressedProp || isPressed,\n isFocused: isFocusedProp || isFocused,\n isHovered: isHoveredProp || isHovered,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n isDisabled: disabled || isDisabled,\n });\n\n // TODO: Replace Render props with Context Hook\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n // TODO: Replace Render props with Context Hook\n return (\n \n {typeof children !== 'function'\n ? children\n : children({\n isPressed,\n isHovered,\n isFocused,\n })}\n \n );\n};\n\nexport default memo(forwardRef(Pressable));\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 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;","/**\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;","import {\n lessThan,\n multiply,\n sub,\n add,\n divide,\n greaterThan,\n lessOrEq,\n eq,\n} from '../operators';\nimport invariant from 'invariant';\n\nimport AnimatedNode from '../core/AnimatedNode';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\nimport { createAnimatedFunction as proc } from '../core/AnimatedFunction';\n\nconst interpolateInternalSingleProc = proc(function (\n value,\n inS,\n inE,\n outS,\n outE\n) {\n const progress = divide(sub(value, inS), sub(inE, inS));\n // logic below was made in order to provide a compatibility witn an Animated API\n const resultForNonZeroRange = add(outS, multiply(progress, sub(outE, outS)));\n const result = cond(\n eq(inS, inE),\n cond(lessOrEq(value, inS), outS, outE),\n resultForNonZeroRange\n );\n return result;\n});\n\nfunction interpolateInternalSingle(value, inputRange, outputRange, offset) {\n const inS = inputRange[offset];\n const inE = inputRange[offset + 1];\n const outS = outputRange[offset];\n const outE = outputRange[offset + 1];\n return interpolateInternalSingleProc(value, inS, inE, outS, outE);\n}\n\nfunction interpolateInternal(value, inputRange, outputRange, offset = 0) {\n if (inputRange.length - offset === 2) {\n return interpolateInternalSingle(value, inputRange, outputRange, offset);\n }\n return cond(\n lessThan(value, inputRange[offset + 1]),\n interpolateInternalSingle(value, inputRange, outputRange, offset),\n interpolateInternal(value, inputRange, outputRange, offset + 1)\n );\n}\n\nexport const Extrapolate = {\n EXTEND: 'extend',\n CLAMP: 'clamp',\n IDENTITY: 'identity',\n};\n\nfunction checkNonDecreasing(name, arr) {\n for (let i = 1; i < arr.length; ++i) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || arr[i - 1] instanceof AnimatedNode)\n continue;\n invariant(\n arr[i] >= arr[i - 1],\n '%s must be monotonically non-decreasing. (%s)',\n name,\n arr\n );\n }\n}\n\nfunction checkMinElements(name, arr) {\n invariant(\n arr.length >= 2,\n '%s must have at least 2 elements. (%s)',\n name,\n arr\n );\n}\n\nfunction checkValidNumbers(name, arr) {\n for (let i = 0; i < arr.length; i++) {\n // We can't validate animated nodes in JS.\n if (arr[i] instanceof AnimatedNode || typeof arr[i] !== 'number') continue;\n invariant(\n Number.isFinite(arr[i]),\n '%s cannot include %s. (%s)',\n name,\n arr[i],\n arr\n );\n }\n}\n\nfunction convertToRadians(outputRange) {\n for (const [i, value] of outputRange.entries()) {\n if (typeof value === 'string' && value.endsWith('deg')) {\n outputRange[i] = parseFloat(value) * (Math.PI / 180);\n } else if (typeof value === 'string' && value.endsWith('rad')) {\n outputRange[i] = parseFloat(value);\n }\n }\n}\n\nexport default function interpolate(value, config) {\n const {\n inputRange,\n outputRange,\n extrapolate = Extrapolate.EXTEND,\n extrapolateLeft,\n extrapolateRight,\n } = config;\n\n checkMinElements('inputRange', inputRange);\n checkValidNumbers('inputRange', inputRange);\n checkMinElements('outputRange', outputRange);\n checkValidNumbers('outputRange', outputRange);\n checkNonDecreasing('inputRange', inputRange);\n invariant(\n inputRange.length === outputRange.length,\n 'inputRange and outputRange must be the same length.'\n );\n\n convertToRadians(outputRange);\n const left = extrapolateLeft || extrapolate;\n const right = extrapolateRight || extrapolate;\n let output = interpolateInternal(value, inputRange, outputRange);\n\n if (left === Extrapolate.CLAMP) {\n output = cond(lessThan(value, inputRange[0]), outputRange[0], output);\n } else if (left === Extrapolate.IDENTITY) {\n output = cond(lessThan(value, inputRange[0]), value, output);\n }\n\n if (right === Extrapolate.CLAMP) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n outputRange[outputRange.length - 1],\n output\n );\n } else if (right === Extrapolate.IDENTITY) {\n output = cond(\n greaterThan(value, inputRange[inputRange.length - 1]),\n value,\n output\n );\n }\n\n return output;\n}\n","import React, { memo, forwardRef } from 'react';\nimport SVGIcon from './SVGIcon';\nimport { Path } from './nbSvg';\nimport type { IcreateIconProps } from './types';\nimport isEmpty from 'lodash.isempty';\n\nexport const createIcon = ({ path, d, ...initialProps }: IcreateIconProps) => {\n const createdIcon = (props: any, ref: any) => {\n let children = path;\n if (d && (!path || isEmpty(path))) {\n children = ;\n }\n return (\n \n );\n };\n return memo(forwardRef(createdIcon));\n};\n","import invariant from 'invariant';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './InternalAnimatedValue';\n\nclass AnimatedBlock extends AnimatedNode {\n _array;\n\n constructor(array) {\n invariant(\n array.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.block node argument should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'block', block: array }, array);\n this._array = array;\n }\n\n toString() {\n return `AnimatedBlock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n let result;\n this._array.forEach((node) => {\n result = val(node);\n });\n return result;\n }\n}\n\nexport function createAnimatedBlock(items) {\n return adapt(items);\n}\n\nfunction nodify(v) {\n if (typeof v === 'object' && v?.__isProxy) {\n if (!v.__val) {\n v.__val = new InternalAnimatedValue(0);\n }\n return v.__val;\n }\n // TODO: cache some typical static values (e.g. 0, 1, -1)\n return v instanceof AnimatedNode\n ? v\n : InternalAnimatedValue.valueForConstant(v);\n}\n\nexport function adapt(v) {\n return Array.isArray(v)\n ? new AnimatedBlock(v.map((node) => adapt(node)))\n : nodify(v);\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/*\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 */\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}","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","'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) 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 _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);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, passthruProps, {\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;","import * as React from 'react';\nimport {\n Platform,\n Touchable,\n UIManager,\n DeviceEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n// @ts-ignore - it isn't typed by TS & don't have definitelyTyped types\nimport deepEqual from 'lodash/isEqual';\nimport RNGestureHandlerModule from '../RNGestureHandlerModule';\nimport type RNGestureHandlerModuleWeb from '../RNGestureHandlerModule.web';\nimport { State } from '../State';\nimport { handlerIDToTag, getNextHandlerTag } from './handlersRegistry';\n\nimport {\n BaseGestureHandlerProps,\n filterConfig,\n GestureEvent,\n HandlerStateChangeEvent,\n findNodeHandle,\n} from './gestureHandlerCommon';\nimport { ValueOf } from '../typeUtils';\n\nconst UIManagerAny = UIManager as any;\n\nconst customGHEventsConfig = {\n onGestureHandlerEvent: { registrationName: 'onGestureHandlerEvent' },\n onGestureHandlerStateChange: {\n registrationName: 'onGestureHandlerStateChange',\n },\n};\n\n// Add gesture specific events to genericDirectEventTypes object exported from UIManager\n// native module.\n// Once new event types are registered with react it is possible to dispatch these\n// events to all kind of native views.\nUIManagerAny.genericDirectEventTypes = {\n ...UIManagerAny.genericDirectEventTypes,\n ...customGHEventsConfig,\n};\n// In newer versions of RN the `genericDirectEventTypes` is located in the object\n// returned by UIManager.getViewManagerConfig('getConstants') or in older RN UIManager.getConstants(), we need to add it there as well to make\n// it compatible with RN 61+\nconst UIManagerConstants =\n UIManagerAny.getViewManagerConfig?.('getConstants') ??\n UIManagerAny.getConstants?.();\n\nif (UIManagerConstants) {\n UIManagerConstants.genericDirectEventTypes = {\n ...UIManagerConstants.genericDirectEventTypes,\n ...customGHEventsConfig,\n };\n}\n\n// Wrap JS responder calls and notify gesture handler manager\nconst {\n setJSResponder: oldSetJSResponder = () => {\n //no operation\n },\n clearJSResponder: oldClearJSResponder = () => {\n //no operation\n },\n} = UIManagerAny;\nUIManagerAny.setJSResponder = (tag: number, blockNativeResponder: boolean) => {\n RNGestureHandlerModule.handleSetJSResponder(tag, blockNativeResponder);\n oldSetJSResponder(tag, blockNativeResponder);\n};\nUIManagerAny.clearJSResponder = () => {\n RNGestureHandlerModule.handleClearJSResponder();\n oldClearJSResponder();\n};\n\nlet allowTouches = true;\nconst DEV_ON_ANDROID = __DEV__ && Platform.OS === 'android';\n// Toggled inspector blocks touch events in order to allow inspecting on Android\n// This needs to be a global variable in order to set initial state for `allowTouches` property in Handler component\nif (DEV_ON_ANDROID) {\n DeviceEventEmitter.addListener('toggleElementInspector', () => {\n allowTouches = !allowTouches;\n });\n}\n\ntype HandlerProps> = Readonly<\n React.PropsWithChildren>\n>;\nfunction hasUnresolvedRefs>(\n props: HandlerProps\n) {\n // TODO(TS) - add type for extract arg\n const extract = (refs: any | any[]) => {\n if (!Array.isArray(refs)) {\n return refs && refs.current === null;\n }\n return refs.some((r) => r && r.current === null);\n };\n return extract(props['simultaneousHandlers']) || extract(props['waitFor']);\n}\n\nconst stateToPropMappings = {\n [State.UNDETERMINED]: undefined,\n [State.BEGAN]: 'onBegan',\n [State.FAILED]: 'onFailed',\n [State.CANCELLED]: 'onCancelled',\n [State.ACTIVE]: 'onActivated',\n [State.END]: 'onEnded',\n} as const;\n\ntype CreateHandlerArgs<\n HandlerPropsT extends Record\n> = Readonly<{\n name: string;\n allowedProps: Readonly[]>;\n config: Readonly>;\n transformProps?: (props: HandlerPropsT) => HandlerPropsT;\n customNativeProps?: Readonly;\n}>;\n\n// TODO(TS) fix event types\ntype InternalEventHandlers = {\n onGestureHandlerEvent?: (event: any) => void;\n onGestureHandlerStateChange?: (event: any) => void;\n};\n\nlet showedRngh2Notice = false;\nfunction showRngh2NoticeIfNeeded() {\n if (!showedRngh2Notice) {\n console.warn(\n \"[react-native-gesture-handler] Seems like you're using an old API with gesture components, check out new Gestures system!\"\n );\n showedRngh2Notice = true;\n }\n}\n\n// TODO(TS) - make sure that BaseGestureHandlerProps doesn't need other generic parameter to work with custom properties.\nexport default function createHandler<\n T extends BaseGestureHandlerProps,\n U extends Record\n>({\n name,\n allowedProps = [],\n config = {},\n transformProps,\n customNativeProps = [],\n}: CreateHandlerArgs): React.ComponentType> {\n interface HandlerState {\n allowTouches: boolean;\n }\n class Handler extends React.Component<\n T & InternalEventHandlers,\n HandlerState\n > {\n static displayName = name;\n\n private handlerTag: number;\n private config: Record;\n private propsRef: React.MutableRefObject;\n private viewNode: any;\n private viewTag?: number;\n private updateEnqueued: ReturnType | null = null;\n private inspectorToggleListener?: EmitterSubscription;\n\n constructor(props: T & InternalEventHandlers) {\n super(props);\n this.handlerTag = getNextHandlerTag();\n this.config = {};\n this.propsRef = React.createRef();\n this.state = { allowTouches };\n if (props.id) {\n if (handlerIDToTag[props.id] !== undefined) {\n throw new Error(`Handler with ID \"${props.id}\" already registered`);\n }\n handlerIDToTag[props.id] = this.handlerTag;\n }\n if (__DEV__) {\n showRngh2NoticeIfNeeded();\n }\n }\n\n componentDidMount() {\n const props: HandlerProps = this.props;\n\n if (DEV_ON_ANDROID) {\n this.inspectorToggleListener = DeviceEventEmitter.addListener(\n 'toggleElementInspector',\n () => {\n this.setState((_) => ({ allowTouches }));\n this.update();\n }\n );\n }\n if (hasUnresolvedRefs(props)) {\n // If there are unresolved refs (e.g. \".current\" has not yet been set)\n // passed as `simultaneousHandlers` or `waitFor`, we enqueue a call to\n // _update method that will try to update native handler props using\n // setImmediate. This makes it so update() function gets called after all\n // react components are mounted and we expect the missing ref object to\n // be resolved by then.\n this.updateEnqueued = setImmediate(() => {\n this.updateEnqueued = null;\n this.update();\n });\n }\n\n this.createGestureHandler(\n filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n )\n );\n\n this.attachGestureHandler(findNodeHandle(this.viewNode) as number); // TODO(TS) - check if this can be null\n }\n\n componentDidUpdate() {\n const viewTag = findNodeHandle(this.viewNode);\n if (this.viewTag !== viewTag) {\n this.attachGestureHandler(viewTag as number); // TODO(TS) - check interaction between _viewTag & findNodeHandle\n }\n this.update();\n }\n\n componentWillUnmount() {\n this.inspectorToggleListener?.remove();\n RNGestureHandlerModule.dropGestureHandler(this.handlerTag);\n if (this.updateEnqueued) {\n clearImmediate(this.updateEnqueued);\n }\n // We can't use this.props.id directly due to TS generic type narrowing bug, see https://github.com/microsoft/TypeScript/issues/13995 for more context\n const handlerID: string | undefined = this.props.id;\n if (handlerID) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete handlerIDToTag[handlerID];\n }\n }\n\n private onGestureHandlerEvent = (event: GestureEvent) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n this.props.onGestureEvent?.(event);\n } else {\n this.props.onGestureHandlerEvent?.(event);\n }\n };\n\n // TODO(TS) - make sure this is right type for event\n private onGestureHandlerStateChange = (\n event: HandlerStateChangeEvent\n ) => {\n if (event.nativeEvent.handlerTag === this.handlerTag) {\n this.props.onHandlerStateChange?.(event);\n\n const state: ValueOf = event.nativeEvent.state;\n const stateEventName = stateToPropMappings[state];\n const eventHandler = stateEventName && this.props[stateEventName];\n if (eventHandler && typeof eventHandler === 'function') {\n eventHandler(event);\n }\n } else {\n this.props.onGestureHandlerStateChange?.(event);\n }\n };\n\n private refHandler = (node: any) => {\n this.viewNode = node;\n\n const child = React.Children.only(this.props.children);\n // TODO(TS) fix ref type\n const { ref }: any = child;\n if (ref !== null) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n }\n };\n\n private createGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.createGestureHandler(\n name,\n this.handlerTag,\n newConfig\n );\n };\n\n private attachGestureHandler = (newViewTag: number) => {\n this.viewTag = newViewTag;\n\n if (Platform.OS === 'web') {\n // typecast due to dynamic resolution, attachGestureHandler should have web version signature in this branch\n (RNGestureHandlerModule.attachGestureHandler as typeof RNGestureHandlerModuleWeb.attachGestureHandler)(\n this.handlerTag,\n newViewTag,\n false,\n this.propsRef\n );\n } else {\n RNGestureHandlerModule.attachGestureHandler(\n this.handlerTag,\n newViewTag,\n false\n );\n }\n };\n\n private updateGestureHandler = (\n newConfig: Readonly>\n ) => {\n this.config = newConfig;\n\n RNGestureHandlerModule.updateGestureHandler(this.handlerTag, newConfig);\n };\n\n private update() {\n const newConfig = filterConfig(\n transformProps ? transformProps(this.props) : this.props,\n [...allowedProps, ...customNativeProps],\n config\n );\n if (!deepEqual(this.config, newConfig)) {\n this.updateGestureHandler(newConfig);\n }\n }\n\n setNativeProps(updates: any) {\n const mergedProps = { ...this.props, ...updates };\n const newConfig = filterConfig(\n transformProps ? transformProps(mergedProps) : mergedProps,\n [...allowedProps, ...customNativeProps],\n config\n );\n this.updateGestureHandler(newConfig);\n }\n\n render() {\n let gestureEventHandler = this.onGestureHandlerEvent;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureEventHandlers = {\n onGestureEvent?: BaseGestureHandlerProps['onGestureEvent'];\n onGestureHandlerEvent?: InternalEventHandlers['onGestureHandlerEvent'];\n };\n const {\n onGestureEvent,\n onGestureHandlerEvent,\n }: OnGestureEventHandlers = this.props;\n if (onGestureEvent && typeof onGestureEvent !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerEvent) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureEventHandler = onGestureEvent;\n } else {\n if (\n onGestureHandlerEvent &&\n typeof onGestureHandlerEvent !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n\n let gestureStateEventHandler = this.onGestureHandlerStateChange;\n // Another instance of https://github.com/microsoft/TypeScript/issues/13995\n type OnGestureStateChangeHandlers = {\n onHandlerStateChange?: BaseGestureHandlerProps['onHandlerStateChange'];\n onGestureHandlerStateChange?: InternalEventHandlers['onGestureHandlerStateChange'];\n };\n const {\n onHandlerStateChange,\n onGestureHandlerStateChange,\n }: OnGestureStateChangeHandlers = this.props;\n if (onHandlerStateChange && typeof onHandlerStateChange !== 'function') {\n // If it's not a method it should be an native Animated.event\n // object. We set it directly as the handler for the view\n // In this case nested handlers are not going to be supported\n if (onGestureHandlerStateChange) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n gestureStateEventHandler = onHandlerStateChange;\n } else {\n if (\n onGestureHandlerStateChange &&\n typeof onGestureHandlerStateChange !== 'function'\n ) {\n throw new Error(\n 'Nesting touch handlers with native animated driver is not supported yet'\n );\n }\n }\n const events = {\n onGestureHandlerEvent: this.state.allowTouches\n ? gestureEventHandler\n : undefined,\n onGestureHandlerStateChange: this.state.allowTouches\n ? gestureStateEventHandler\n : undefined,\n };\n\n this.propsRef.current = events;\n\n const child: any = React.Children.only(this.props.children);\n let grandChildren = child.props.children;\n if (\n Touchable.TOUCH_TARGET_DEBUG &&\n child.type &&\n (child.type === 'RNGestureHandlerButton' ||\n child.type.name === 'View' ||\n child.type.displayName === 'View')\n ) {\n grandChildren = React.Children.toArray(grandChildren);\n grandChildren.push(\n Touchable.renderDebugView({\n color: 'mediumspringgreen',\n hitSlop: child.props.hitSlop,\n })\n );\n }\n\n return React.cloneElement(\n child,\n {\n ref: this.refHandler,\n collapsable: false,\n ...events,\n },\n grandChildren\n );\n }\n }\n return Handler;\n}\n","import { useNativeBaseConfig } from './../core/NativeBaseContext';\n\nexport function useTheme() {\n const theme = useNativeBaseConfig('useTheme').theme;\n if (!theme) {\n throw Error(\n 'useTheme: `theme` is undefined. Seems you forgot to wrap your app in ``'\n );\n }\n\n return theme;\n}\n","import { createContext } from '../utils/createContext';\nimport type { ITheme } from './../theme';\nimport type { IModeType } from './StrictMode';\n\nexport interface INativebaseConfig {\n theme?: ITheme;\n suppressColorAccessibilityWarning?: boolean;\n dependencies?: {\n 'linear-gradient': any;\n };\n enableRem?: boolean;\n strictMode?: IModeType;\n disableContrastText?: boolean;\n}\n\nexport const defaultConfig: INativebaseConfig = {\n strictMode: 'off',\n};\n\nexport const [NativeBaseConfigProvider, useNativeBaseConfig] = createContext<{\n config: INativebaseConfig;\n currentBreakpoint: number;\n isSSR?: boolean;\n theme?: ITheme;\n disableContrastText?: boolean;\n}>('NativeBaseConfigProvider');\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';\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;","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {isIOS, runAfterTransition} from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\n\n// For non-iOS devices, we apply user-select: none to the pressed element instead to avoid possible\n// performance issues that arise from applying and removing user-select: none to the entire page\n// (see https://github.com/adobe/react-spectrum/issues/1609).\ntype State = 'default' | 'disabled' | 'restoring';\n\n// Note that state only matters here for iOS. Non-iOS gets user-select: none applied to the target element\n// rather than at the document level so we just need to apply/remove user-select: none for each pressed element individually\nlet state: State = 'default';\nlet savedUserSelect = '';\nlet modifiedElementMap = new WeakMap();\n\nexport function disableTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n } else if (target) {\n // If not iOS, store the target's original user-select and change to user-select: none\n // Ignore state since it doesn't apply for non iOS\n modifiedElementMap.set(target, target.style.userSelect);\n target.style.userSelect = 'none';\n }\n}\n\nexport function restoreTextSelection(target?: HTMLElement) {\n if (isIOS()) {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n } else {\n // If not iOS, restore the target's original user-select if any\n // Ignore state since it doesn't apply for non iOS\n if (target && modifiedElementMap.has(target)) {\n let targetOldUserSelect = modifiedElementMap.get(target);\n\n if (target.style.userSelect === 'none') {\n target.style.userSelect = targetOldUserSelect;\n }\n\n if (target.getAttribute('style') === '') {\n target.removeAttribute('style');\n }\n modifiedElementMap.delete(target);\n }\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusEvent as ReactFocusEvent, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n// Original licensing for the following method can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/blob/3c713d513195a53788b3f8bb4b70279d68b15bcc/packages/react-interactions/events/src/dom/shared/index.js#L74-L87\n\n// Keyboards, Assistive Technologies, and element.click() all produce a \"virtual\"\n// click event. This is a method of inferring such clicks. Every browser except\n// IE 11 only sets a zero value of \"detail\" for click events that are \"virtual\".\n// However, IE 11 uses a zero value for all click events. For IE 11 we rely on\n// the quirk that it produces click events that are of type PointerEvent, and\n// where only the \"virtual\" click lacks a pointerType field.\n\nexport function isVirtualClick(event: MouseEvent | PointerEvent): boolean {\n // JAWS/NVDA with Firefox.\n if ((event as any).mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n return event.detail === 0 && !(event as PointerEvent).pointerType;\n}\n\nexport class SyntheticFocusEvent implements ReactFocusEvent {\n nativeEvent: FocusEvent;\n target: Element;\n currentTarget: Element;\n relatedTarget: Element;\n bubbles: boolean;\n cancelable: boolean;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n timeStamp: number;\n type: string;\n\n constructor(type: string, nativeEvent: FocusEvent) {\n this.nativeEvent = nativeEvent;\n this.target = nativeEvent.target as Element;\n this.currentTarget = nativeEvent.currentTarget as Element;\n this.relatedTarget = nativeEvent.relatedTarget as Element;\n this.bubbles = nativeEvent.bubbles;\n this.cancelable = nativeEvent.cancelable;\n this.defaultPrevented = nativeEvent.defaultPrevented;\n this.eventPhase = nativeEvent.eventPhase;\n this.isTrusted = nativeEvent.isTrusted;\n this.timeStamp = nativeEvent.timeStamp;\n this.type = type;\n }\n\n isDefaultPrevented(): boolean {\n return this.nativeEvent.defaultPrevented;\n }\n\n preventDefault(): void {\n this.defaultPrevented = true;\n this.nativeEvent.preventDefault();\n }\n\n stopPropagation(): void {\n this.nativeEvent.stopPropagation();\n this.isPropagationStopped = () => true;\n }\n\n isPropagationStopped(): boolean {\n return false;\n }\n\n persist() {}\n}\n\nexport function useSyntheticBlurEvent(onBlur: (e: ReactFocusEvent) => void) {\n let stateRef = useRef({\n isFocused: false,\n onBlur,\n observer: null as MutationObserver\n });\n let state = stateRef.current;\n state.onBlur = onBlur;\n\n // Clean up MutationObserver on unmount. See below.\n // eslint-disable-next-line arrow-body-style\n useLayoutEffect(() => {\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, [state]);\n\n // This function is called during a React onFocus event.\n return (e: ReactFocusEvent) => {\n // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n state.isFocused = true;\n\n let target = e.target;\n let onBlurHandler = (e: FocusEvent) => {\n let state = stateRef.current;\n state.isFocused = false;\n\n if (target.disabled) {\n // For backward compatibility, dispatch a (fake) React synthetic event.\n state.onBlur?.(new SyntheticFocusEvent('blur', e));\n }\n\n // We no longer need the MutationObserver once the target is blurred.\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n\n target.addEventListener('focusout', onBlurHandler, {once: true});\n\n state.observer = new MutationObserver(() => {\n if (state.isFocused && target.disabled) {\n state.observer.disconnect();\n target.dispatchEvent(new FocusEvent('blur'));\n target.dispatchEvent(new FocusEvent('focusout', {bubbles: true}));\n }\n });\n\n state.observer.observe(target, {attributes: true, attributeFilter: ['disabled']});\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {PressProps} from './usePress';\nimport React, {MutableRefObject} from 'react';\n\ninterface IPressResponderContext extends PressProps {\n register(): void,\n ref?: MutableRefObject\n}\n\nexport const PressResponderContext = React.createContext(null);\nPressResponderContext.displayName = 'PressResponderContext';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {focusWithoutScrolling, mergeProps, useGlobalListeners, useSyncRef} from '@react-aria/utils';\nimport {HTMLAttributes, RefObject, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {isVirtualClick} from './utils';\nimport {PointerType, PressEvents} from '@react-types/shared';\nimport {PressResponderContext} from './context';\n\nexport interface PressProps extends PressEvents {\n /** Whether the target is in a controlled press state (e.g. an overlay it triggers is open). */\n isPressed?: boolean,\n /** Whether the press events should be disabled. */\n isDisabled?: boolean,\n /** Whether the target should not receive focus on press. */\n preventFocusOnPress?: boolean,\n /**\n * Whether press events should be canceled when the pointer leaves the target while pressed.\n * By default, this is `false`, which means if the pointer returns back over the target while\n * still pressed, onPressStart will be fired again. If set to `true`, the press is canceled\n * when the pointer leaves the target and onPressStart will not be fired if the pointer returns.\n */\n shouldCancelOnPointerExit?: boolean,\n /** Whether text selection should be enabled on the pressable element. */\n allowTextSelectionOnPress?: boolean\n}\n\nexport interface PressHookProps extends PressProps {\n /** A ref to the target element. */\n ref?: RefObject\n}\n\ninterface PressState {\n isPressed: boolean,\n ignoreEmulatedMouseEvents: boolean,\n ignoreClickAfterPress: boolean,\n didFirePressStart: boolean,\n activePointerId: any,\n target: HTMLElement | null,\n isOverTarget: boolean,\n pointerType: PointerType,\n userSelect?: string\n}\n\ninterface EventBase {\n currentTarget: EventTarget,\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\nexport interface PressResult {\n /** Whether the target is currently pressed. */\n isPressed: boolean,\n /** Props to spread on the target element. */\n pressProps: HTMLAttributes\n}\n\nfunction usePressResponderContext(props: PressHookProps): PressHookProps {\n // Consume context from and merge with props.\n let context = useContext(PressResponderContext);\n if (context) {\n let {register, ...contextProps} = context;\n props = mergeProps(contextProps, props) as PressHookProps;\n register();\n }\n useSyncRef(context, props.ref);\n\n return props;\n}\n\n/**\n * Handles press interactions across mouse, touch, keyboard, and screen readers.\n * It normalizes behavior across browsers and platforms, and handles many nuances\n * of dealing with pointer and keyboard events.\n */\nexport function usePress(props: PressHookProps): PressResult {\n let {\n onPress,\n onPressChange,\n onPressStart,\n onPressEnd,\n onPressUp,\n isDisabled,\n isPressed: isPressedProp,\n preventFocusOnPress,\n shouldCancelOnPointerExit,\n allowTextSelectionOnPress,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ref: _, // Removing `ref` from `domProps` because TypeScript is dumb\n ...domProps\n } = usePressResponderContext(props);\n let propsRef = useRef(null);\n propsRef.current = {onPress, onPressChange, onPressStart, onPressEnd, onPressUp, isDisabled, shouldCancelOnPointerExit};\n\n let [isPressed, setPressed] = useState(false);\n let ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n didFirePressStart: false,\n activePointerId: null,\n target: null,\n isOverTarget: false,\n pointerType: null\n });\n\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let pressProps = useMemo(() => {\n let state = ref.current;\n let triggerPressStart = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressStart, onPressChange, isDisabled} = propsRef.current;\n if (isDisabled || state.didFirePressStart) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n state.didFirePressStart = true;\n setPressed(true);\n };\n\n let triggerPressEnd = (originalEvent: EventBase, pointerType: PointerType, wasPressed = true) => {\n let {onPressEnd, onPressChange, onPress, isDisabled} = propsRef.current;\n if (!state.didFirePressStart) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n state.didFirePressStart = false;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed && !isDisabled) {\n onPress({\n type: 'press',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let triggerPressUp = (originalEvent: EventBase, pointerType: PointerType) => {\n let {onPressUp, isDisabled} = propsRef.current;\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType,\n target: originalEvent.currentTarget as HTMLElement,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n let cancel = (e: EventBase) => {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let pressProps: HTMLAttributes = {\n onKeyDown(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && e.currentTarget.contains(e.target as HTMLElement)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n // If the event is repeating, it may have started on a different element\n // after which focus moved to the current element. Ignore these events and\n // only handle the first key down event.\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget as HTMLElement;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n\n // Focus may move before the key up event, so register the event on the document\n // instead of the same element where the key down event occurred.\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n }\n },\n onKeyUp(e) {\n if (isValidKeyboardEvent(e.nativeEvent) && !e.repeat && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerPressUp(createEvent(state.target, e), 'keyboard');\n }\n },\n onClick(e) {\n if (e && !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e && e.button === 0) {\n e.stopPropagation();\n if (isDisabled) {\n e.preventDefault();\n }\n\n // If triggered from a screen reader or by using element.click(),\n // trigger as if it were a keyboard click.\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && (state.pointerType === 'virtual' || isVirtualClick(e.nativeEvent))) {\n // Ensure the element receives focus (VoiceOver on iOS does not do this)\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n let onKeyUp = (e: KeyboardEvent) => {\n if (state.isPressed && isValidKeyboardEvent(e)) {\n if (shouldPreventDefaultKeyboard(e.target as Element)) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n state.isPressed = false;\n let target = e.target as HTMLElement;\n triggerPressEnd(createEvent(state.target, e), 'keyboard', state.target.contains(target));\n removeAllGlobalListeners();\n\n // If the target is a link, trigger the click method to open the URL,\n // but defer triggering pressEnd until onClick event handler.\n if (state.target.contains(target) && isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link') {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = (e) => {\n // Only handle left clicks, and ignore events that bubbled through portals.\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // iOS safari fires pointer events from VoiceOver with incorrect coordinates/target.\n // Ignore and let the onClick handler take care of it instead.\n // https://bugs.webkit.org/show_bug.cgi?id=222627\n // https://bugs.webkit.org/show_bug.cgi?id=223202\n if (isVirtualPointerEvent(e.nativeEvent)) {\n state.pointerType = 'virtual';\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on pointer down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n state.pointerType = e.pointerType;\n\n e.stopPropagation();\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (e.button === 0) {\n // Chrome and Firefox on touch Windows devices require mouse down events\n // to be canceled in addition to pointer events, or an extra asynchronous\n // focus event will be fired.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n }\n };\n\n pressProps.onPointerUp = (e) => {\n // iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.\n if (!e.currentTarget.contains(e.target as HTMLElement) || state.pointerType === 'virtual') {\n return;\n }\n\n // Only handle left clicks\n // Safari on iOS sometimes fires pointerup events, even\n // when the touch isn't over the target, so double check.\n if (e.button === 0 && isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, state.pointerType || e.pointerType);\n }\n };\n\n // Safari on iOS < 13.2 does not implement pointerenter/pointerleave events correctly.\n // Use pointer move events instead to implement our own hit testing.\n // See https://bugs.webkit.org/show_bug.cgi?id=199803\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(createEvent(state.target, e), state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n state.pointerType = null;\n removeAllGlobalListeners();\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n }\n };\n\n let onPointerCancel = (e: PointerEvent) => {\n cancel(e);\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Safari does not call onPointerCancel when a drag starts, whereas Chrome and Firefox do.\n cancel(e);\n };\n } else {\n pressProps.onMouseDown = (e) => {\n // Only handle left clicks\n if (e.button !== 0 || !e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent\n // default on mouse down and handle focusing the pressable element ourselves.\n if (shouldPreventDefault(e.currentTarget as HTMLElement)) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n state.pointerType = isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse';\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n };\n\n pressProps.onMouseLeave = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onMouseUp = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, state.pointerType);\n }\n };\n\n let onMouseUp = (e: MouseEvent) => {\n // Only handle left clicks\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeAllGlobalListeners();\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n if (isOverTarget(e, state.target)) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(createEvent(state.target, e), state.pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n let touch = getTouchFromEvent(e.nativeEvent);\n if (!touch) {\n return;\n }\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n state.pointerType = 'touch';\n\n // Due to browser inconsistencies, especially on mobile browsers, we prevent default\n // on the emulated mouse event and handle focusing the pressable element ourselves.\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n if (!allowTextSelectionOnPress) {\n disableTextSelection(state.target);\n }\n\n triggerPressStart(e, state.pointerType);\n\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, state.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, state.pointerType, false);\n if (propsRef.current.shouldCancelOnPointerExit) {\n cancel(e);\n }\n }\n };\n\n pressProps.onTouchEnd = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (!state.isPressed) {\n return;\n }\n\n let touch = getTouchById(e.nativeEvent, state.activePointerId);\n if (touch && isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, state.pointerType);\n triggerPressEnd(e, state.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd(e, state.pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(state.target);\n }\n removeAllGlobalListeners();\n };\n\n pressProps.onTouchCancel = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n e.stopPropagation();\n if (state.isPressed) {\n cancel(e);\n }\n };\n\n let onScroll = (e: Event) => {\n if (state.isPressed && (e.target as HTMLElement).contains(state.target)) {\n cancel({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false,\n altKey: false\n });\n }\n };\n\n pressProps.onDragStart = (e) => {\n if (!e.currentTarget.contains(e.target as HTMLElement)) {\n return;\n }\n\n cancel(e);\n };\n }\n\n return pressProps;\n }, [addGlobalListener, isDisabled, preventFocusOnPress, removeAllGlobalListeners, allowTextSelectionOnPress]);\n\n // Remove user-select: none in case component unmounts immediately after pressStart\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => {\n if (!allowTextSelectionOnPress) {\n restoreTextSelection(ref.current.target);\n }\n };\n }, [allowTextSelectionOnPress]);\n\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction isHTMLAnchorLink(target: HTMLElement): boolean {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction isValidKeyboardEvent(event: KeyboardEvent): boolean {\n const {key, code, target} = event;\n const element = target as HTMLElement;\n const {tagName, isContentEditable} = element;\n const role = element.getAttribute('role');\n // Accessibility for keyboards. Space and Enter only.\n // \"Spacebar\" is for IE 11\n return (\n (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') &&\n (tagName !== 'INPUT' &&\n tagName !== 'TEXTAREA' &&\n isContentEditable !== true) &&\n // A link with a valid href should be handled natively,\n // unless it also has role='button' and was triggered using Space.\n (!isHTMLAnchorLink(element) || (role === 'button' && key !== 'Enter')) &&\n // An element with role='link' should only trigger with Enter key\n !(role === 'link' && key !== 'Enter')\n );\n}\n\nfunction getTouchFromEvent(event: TouchEvent): Touch | null {\n const {targetTouches} = event;\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n return null;\n}\n\nfunction getTouchById(\n event: TouchEvent,\n pointerId: null | number\n): null | Touch {\n const changedTouches = event.changedTouches;\n for (let i = 0; i < changedTouches.length; i++) {\n const touch = changedTouches[i];\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n return null;\n}\n\nfunction createEvent(target: HTMLElement, e: EventBase): EventBase {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n altKey: e.altKey\n };\n}\n\ninterface Rect {\n top: number,\n right: number,\n bottom: number,\n left: number\n}\n\ninterface EventPoint {\n clientX: number,\n clientY: number,\n width?: number,\n height?: number,\n radiusX?: number,\n radiusY?: number\n}\n\nfunction getPointClientRect(point: EventPoint): Rect {\n let offsetX = (point.width / 2) || point.radiusX || 0;\n let offsetY = (point.height / 2) || point.radiusY || 0;\n\n return {\n top: point.clientY - offsetY,\n right: point.clientX + offsetX,\n bottom: point.clientY + offsetY,\n left: point.clientX - offsetX\n };\n}\n\nfunction areRectanglesOverlapping(a: Rect, b: Rect) {\n // check if they cannot overlap on x axis\n if (a.left > b.right || b.left > a.right) {\n return false;\n }\n // check if they cannot overlap on y axis\n if (a.top > b.bottom || b.top > a.bottom) {\n return false;\n }\n return true;\n}\n\nfunction isOverTarget(point: EventPoint, target: HTMLElement) {\n let rect = target.getBoundingClientRect();\n let pointRect = getPointClientRect(point);\n return areRectanglesOverlapping(rect, pointRect);\n}\n\nfunction shouldPreventDefault(target: HTMLElement) {\n // We cannot prevent default if the target is a draggable element.\n return !target.draggable;\n}\n\nfunction shouldPreventDefaultKeyboard(target: Element) {\n return !((target.tagName === 'INPUT' || target.tagName === 'BUTTON') && (target as HTMLButtonElement | HTMLInputElement).type === 'submit');\n}\n\nfunction isVirtualPointerEvent(event: PointerEvent) {\n // If the pointer size is zero, then we assume it's from a screen reader.\n // Android TalkBack double tap will sometimes return a event with width and height of 1\n // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216\n return (\n (event.width === 0 && event.height === 0) ||\n (event.width === 1 &&\n event.height === 1 &&\n event.pressure === 0 &&\n event.detail === 0\n )\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport {PressProps, usePress} from './usePress';\nimport React, {HTMLAttributes, ReactElement, RefObject, useRef} from 'react';\n\ninterface PressableProps extends PressProps {\n children: ReactElement, string>\n}\n\nexport const Pressable = React.forwardRef(({children, ...props}: PressableProps, ref: RefObject) => {\n let newRef = useRef();\n ref = ref ?? newRef;\n let {pressProps} = usePress({...props, ref});\n let child = React.Children.only(children);\n return React.cloneElement(\n child,\n // @ts-ignore\n {ref, ...mergeProps(child.props, pressProps)}\n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport {PressProps} from './usePress';\nimport {PressResponderContext} from './context';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\n\ninterface PressResponderProps extends PressProps {\n children: ReactNode\n}\n\nexport const PressResponder = React.forwardRef(({children, ...props}: PressResponderProps, ref: RefObject) => {\n let isRegistered = useRef(false);\n let prevContext = useContext(PressResponderContext);\n let context = mergeProps(prevContext || {}, {\n ...props,\n ref: ref || prevContext?.ref,\n register() {\n isRegistered.current = true;\n if (prevContext) {\n prevContext.register();\n }\n }\n });\n\n useSyncRef(prevContext, ref);\n\n useEffect(() => {\n if (!isRegistered.current) {\n console.warn(\n 'A PressResponder was rendered without a pressable child. ' +\n 'Either call the usePress hook, or wrap your DOM node with component.'\n );\n }\n }, []);\n\n return (\n \n {children}\n \n );\n});\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes} from 'react';\nimport {FocusEvents} from '@react-types/shared';\nimport {useSyntheticBlurEvent} from './utils';\n\ninterface FocusProps extends FocusEvents {\n /** Whether the focus events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusResult {\n /** Props to spread onto the target element. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the immediate target.\n * Focus events on child elements will be ignored.\n */\nexport function useFocus(props: FocusProps): FocusResult {\n let onBlur: FocusProps['onBlur'];\n if (!props.isDisabled && (props.onBlur || props.onFocusChange)) {\n onBlur = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n\n return true;\n }\n };\n } else {\n onBlur = null;\n }\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n\n let onFocus: FocusProps['onFocus'];\n if (!props.isDisabled && (props.onFocus || props.onFocusChange || props.onBlur)) {\n onFocus = (e: FocusEvent) => {\n if (e.target === e.currentTarget) {\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n\n onSyntheticFocus(e);\n }\n };\n }\n\n return {\n focusProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {isMac} from '@react-aria/utils';\nimport {isVirtualClick} from './utils';\nimport {useEffect, useState} from 'react';\n\ntype Modality = 'keyboard' | 'pointer' | 'virtual';\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\ntype FocusVisibleHandler = (isFocusVisible: boolean) => void;\ninterface FocusVisibleProps {\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusVisibleResult {\n /** Whether keyboard focus is visible globally. */\n isFocusVisible: boolean\n}\n\nlet currentModality = null;\nlet changeHandlers = new Set();\nlet hasSetupGlobalListeners = false;\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\n\n// Only Tab or Esc keys will make focus visible on text input elements\nconst FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\n\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n hasEventBeforeFocus = true;\n triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n triggerChangeHandlers('virtual', e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */\nfunction setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n let focus = HTMLElement.prototype.focus;\n HTMLElement.prototype.focus = function () {\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', handleKeyboardEvent, true);\n document.addEventListener('keyup', handleKeyboardEvent, true);\n document.addEventListener('click', handleClickEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener('focus', handleFocusEvent, true);\n window.addEventListener('blur', handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', handlePointerEvent, true);\n document.addEventListener('pointermove', handlePointerEvent, true);\n document.addEventListener('pointerup', handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', handlePointerEvent, true);\n document.addEventListener('mousemove', handlePointerEvent, true);\n document.addEventListener('mouseup', handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n setupGlobalFocusEvents();\n } else {\n document.addEventListener('DOMContentLoaded', setupGlobalFocusEvents);\n }\n}\n\n/**\n * If true, keyboard focus is visible.\n */\nexport function isFocusVisible(): boolean {\n return currentModality !== 'pointer';\n}\n\nexport function getInteractionModality(): Modality {\n return currentModality;\n}\n\nexport function setInteractionModality(modality: Modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\n\n/**\n * Keeps state of the current modality.\n */\nexport function useInteractionModality(): Modality {\n setupGlobalFocusEvents();\n\n let [modality, setModality] = useState(currentModality);\n useEffect(() => {\n let handler = () => {\n setModality(currentModality);\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return modality;\n}\n\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */\nfunction isKeyboardFocusEvent(isTextInput: boolean, modality: Modality, e: HandlerEvent) {\n return !(isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\n\n/**\n * Manages focus visible state for the page, and subscribes individual components for updates.\n */\nexport function useFocusVisible(props: FocusVisibleProps = {}): FocusVisibleResult {\n let {isTextInput, autoFocus} = props;\n let [isFocusVisibleState, setFocusVisible] = useState(autoFocus || isFocusVisible());\n useFocusVisibleListener((isFocusVisible) => {\n setFocusVisible(isFocusVisible);\n }, [isTextInput], {isTextInput});\n\n return {isFocusVisible: isFocusVisibleState};\n}\n\n/**\n * Listens for trigger change and reports if focus is visible (i.e., modality is not pointer).\n */\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n if (!isKeyboardFocusEvent(opts?.isTextInput, modality, e)) {\n return;\n }\n fn(isFocusVisible());\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {FocusEvent, HTMLAttributes, useRef} from 'react';\nimport {useSyntheticBlurEvent} from './utils';\n\ninterface FocusWithinProps {\n /** Whether the focus within events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when the target element or a descendant receives focus. */\n onFocusWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the target element and all descendants lose focus. */\n onBlurWithin?: (e: FocusEvent) => void,\n /** Handler that is called when the the focus within state changes. */\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\ninterface FocusWithinResult {\n /** Props to spread onto the target element. */\n focusWithinProps: HTMLAttributes\n}\n\n/**\n * Handles focus events for the target and its descendants.\n */\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let state = useRef({\n isFocusWithin: false\n }).current;\n\n let onBlur = props.isDisabled ? null : (e: FocusEvent) => {\n // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n // when moving focus inside the element. Only trigger if the currentTarget doesn't\n // include the relatedTarget (where focus is moving).\n if (state.isFocusWithin && !(e.currentTarget as Element).contains(e.relatedTarget as Element)) {\n state.isFocusWithin = false;\n\n if (props.onBlurWithin) {\n props.onBlurWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(false);\n }\n }\n };\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = props.isDisabled ? null : (e: FocusEvent) => {\n if (!state.isFocusWithin) {\n if (props.onFocusWithin) {\n props.onFocusWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(true);\n }\n\n state.isFocusWithin = true;\n onSyntheticFocus(e);\n }\n };\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {HoverEvents} from '@react-types/shared';\nimport {HTMLAttributes, useEffect, useMemo, useRef, useState} from 'react';\n\nexport interface HoverProps extends HoverEvents {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: HTMLAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n let target = event.currentTarget;\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: HTMLAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as HTMLElement)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}\n\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\nimport {RefObject, SyntheticEvent, useEffect, useRef} from 'react';\n\ninterface InteractOutsideProps {\n ref: RefObject,\n onInteractOutside?: (e: SyntheticEvent) => void,\n onInteractOutsideStart?: (e: SyntheticEvent) => void,\n /** Whether the interact outside events should be disabled. */\n isDisabled?: boolean\n}\n\n/**\n * Example, used in components like Dialogs and Popovers so they can close\n * when a user clicks outside them.\n */\nexport function useInteractOutside(props: InteractOutsideProps) {\n let {ref, onInteractOutside, isDisabled, onInteractOutsideStart} = props;\n let stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false,\n onInteractOutside,\n onInteractOutsideStart\n });\n let state = stateRef.current;\n state.onInteractOutside = onInteractOutside;\n state.onInteractOutsideStart = onInteractOutsideStart;\n\n useEffect(() => {\n if (isDisabled) {\n return;\n }\n\n let onPointerDown = (e) => {\n if (isValidEvent(e, ref) && state.onInteractOutside) {\n if (state.onInteractOutsideStart) {\n state.onInteractOutsideStart(e);\n }\n state.isPointerDown = true;\n }\n };\n\n // Use pointer events if available. Otherwise, fall back to mouse and touch events.\n if (typeof PointerEvent !== 'undefined') {\n let onPointerUp = (e) => {\n if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n // changing these to capture phase fixed combobox\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n\n return () => {\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n };\n } else {\n let onMouseUp = (e) => {\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && state.onInteractOutside && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n let onTouchEnd = (e) => {\n state.ignoreEmulatedMouseEvents = true;\n if (state.onInteractOutside && state.isPointerDown && isValidEvent(e, ref)) {\n state.isPointerDown = false;\n state.onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n\n return () => {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }\n }, [ref, state, isDisabled]);\n}\n\nfunction isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n // if the event target is no longer in the document\n if (event.target) {\n const ownerDocument = event.target.ownerDocument;\n if (!ownerDocument || !ownerDocument.documentElement.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BaseEvent} from '@react-types/shared';\nimport {SyntheticEvent} from 'react';\n\n/**\n * This function wraps a React event handler to make stopPropagation the default, and support continuePropagation instead.\n */\nexport function createEventHandler(handler: (e: BaseEvent) => void): (e: T) => void {\n if (!handler) {\n return;\n }\n\n let shouldStopPropagation = true;\n return (e: T) => {\n let event: BaseEvent = {\n ...e,\n preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation() {\n shouldStopPropagation = false;\n }\n };\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {createEventHandler} from './createEventHandler';\nimport {HTMLAttributes} from 'react';\nimport {KeyboardEvents} from '@react-types/shared';\n\nexport interface KeyboardProps extends KeyboardEvents {\n /** Whether the keyboard events should be disabled. */\n isDisabled?: boolean\n}\n\ninterface KeyboardResult {\n /** Props to spread onto the target element. */\n keyboardProps: HTMLAttributes\n}\n\n/**\n * Handles keyboard interactions for a focusable element.\n */\nexport function useKeyboard(props: KeyboardProps): KeyboardResult {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: createEventHandler(props.onKeyDown),\n onKeyUp: createEventHandler(props.onKeyUp)\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {MoveEvents, PointerType} from '@react-types/shared';\nimport React, {HTMLAttributes, useMemo, useRef} from 'react';\nimport {useGlobalListeners} from '@react-aria/utils';\n\ninterface MoveResult {\n /** Props to spread on the target element. */\n moveProps: HTMLAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let moveProps = useMemo(() => {\n let moveProps: HTMLAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n let move = (originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n };\n let end = (originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n };\n\n if (typeof PointerEvent === 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(e, 'mouse', e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n move(e, 'touch', pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n end(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n move(e, pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n end(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);\n\n return {moveProps};\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useCallback} from 'react';\nimport {ScrollEvents} from '@react-types/shared';\nimport {useEvent} from '@react-aria/utils';\n\nexport interface ScrollWheelProps extends ScrollEvents {\n /** Whether the scroll listener should be disabled. */\n isDisabled?: boolean\n}\n\n// scroll wheel needs to be added not passively so it's cancelable, small helper hook to remember that\nexport function useScrollWheel(props: ScrollWheelProps, ref: RefObject): void {\n let {onScroll, isDisabled} = props;\n let onScrollHandler = useCallback((e) => {\n // If the ctrlKey is pressed, this is a zoom event, do nothing.\n if (e.ctrlKey) {\n return;\n }\n\n // stop scrolling the page\n e.preventDefault();\n e.stopPropagation();\n\n if (onScroll) {\n onScroll({deltaX: e.deltaX, deltaY: e.deltaY});\n }\n }, [onScroll]);\n\n useEvent(ref, 'wheel', isDisabled ? null : onScrollHandler);\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HTMLAttributes, useRef} from 'react';\nimport {LongPressEvent} from '@react-types/shared';\nimport {mergeProps, useDescription, useGlobalListeners} from '@react-aria/utils';\nimport {usePress} from './usePress';\n\ninterface LongPressProps {\n /** Whether long press events should be disabled. */\n isDisabled?: boolean,\n /** Handler that is called when a long press interaction starts. */\n onLongPressStart?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when a long press interaction ends, either\n * over the target or when the pointer leaves the target.\n */\n onLongPressEnd?: (e: LongPressEvent) => void,\n /**\n * Handler that is called when the threshold time is met while\n * the press is over the target.\n */\n onLongPress?: (e: LongPressEvent) => void,\n /**\n * The amount of time in milliseconds to wait before triggering a long press.\n * @default 500ms\n */\n threshold?: number,\n /**\n * A description for assistive techology users indicating that a long press\n * action is available, e.g. \"Long press to open menu\".\n */\n accessibilityDescription?: string\n}\n\ninterface LongPressResult {\n /** Props to spread on the target element. */\n longPressProps: HTMLAttributes\n}\n\nconst DEFAULT_THRESHOLD = 500;\n\n/**\n * Handles long press interactions across mouse and touch devices. Supports a customizable time threshold,\n * accessibility description, and normalizes behavior across browsers and devices.\n */\nexport function useLongPress(props: LongPressProps): LongPressResult {\n let {\n isDisabled,\n onLongPressStart,\n onLongPressEnd,\n onLongPress,\n threshold = DEFAULT_THRESHOLD,\n accessibilityDescription\n } = props;\n\n const timeRef = useRef(null);\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let {pressProps} = usePress({\n isDisabled,\n onPressStart(e) {\n if (e.pointerType === 'mouse' || e.pointerType === 'touch') {\n if (onLongPressStart) {\n onLongPressStart({\n ...e,\n type: 'longpressstart'\n });\n }\n\n timeRef.current = setTimeout(() => {\n // Prevent other usePress handlers from also handling this event.\n e.target.dispatchEvent(new PointerEvent('pointercancel', {bubbles: true}));\n if (onLongPress) {\n onLongPress({\n ...e,\n type: 'longpress'\n });\n }\n timeRef.current = null;\n }, threshold);\n\n // Prevent context menu, which may be opened on long press on touch devices\n if (e.pointerType === 'touch') {\n let onContextMenu = e => {\n e.preventDefault();\n };\n\n addGlobalListener(e.target, 'contextmenu', onContextMenu, {once: true});\n addGlobalListener(window, 'pointerup', () => {\n // If no contextmenu event is fired quickly after pointerup, remove the handler\n // so future context menu events outside a long press are not prevented.\n setTimeout(() => {\n removeGlobalListener(e.target, 'contextmenu', onContextMenu);\n }, 30);\n }, {once: true});\n }\n }\n },\n onPressEnd(e) {\n if (timeRef.current) {\n clearTimeout(timeRef.current);\n }\n\n if (onLongPressEnd && (e.pointerType === 'mouse' || e.pointerType === 'touch')) {\n onLongPressEnd({\n ...e,\n type: 'longpressend'\n });\n }\n }\n });\n\n let descriptionProps = useDescription(onLongPress && !isDisabled ? accessibilityDescription : null);\n\n return {\n longPressProps: mergeProps(pressProps, descriptionProps)\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 */\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';","import AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nimport invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\n\nfunction reduce(fn) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)));\n}\n\nfunction reduceFrom(fn, initialValue) {\n return (input) => input.reduce((a, b) => fn(val(a), val(b)), initialValue);\n}\n\nfunction infix(fn) {\n return (input) => fn(val(input[0]), val(input[1]));\n}\n\nfunction single(fn) {\n return (input) => fn(val(input[0]));\n}\n\nconst OPERATIONS = {\n // arithmetic\n add: reduce((a, b) => a + b),\n sub: reduce((a, b) => a - b),\n multiply: reduce((a, b) => a * b),\n divide: reduce((a, b) => a / b),\n pow: reduce((a, b) => Math.pow(a, b)),\n modulo: reduce((a, b) => ((a % b) + b) % b),\n sqrt: single((a) => Math.sqrt(a)),\n log: single((a) => Math.log(a)),\n sin: single((a) => Math.sin(a)),\n cos: single((a) => Math.cos(a)),\n tan: single((a) => Math.tan(a)),\n acos: single((a) => Math.acos(a)),\n asin: single((a) => Math.asin(a)),\n atan: single((a) => Math.atan(a)),\n exp: single((a) => Math.exp(a)),\n round: single((a) => Math.round(a)),\n abs: single((a) => Math.abs(a)),\n ceil: single((a) => Math.ceil(a)),\n floor: single((a) => Math.floor(a)),\n max: reduce((a, b) => Math.max(a, b)),\n min: reduce((a, b) => Math.min(a, b)),\n\n // logical\n and: reduceFrom((a, b) => a && b, true),\n or: reduceFrom((a, b) => a || b, false),\n not: single((a) => !a),\n defined: single((a) => a !== null && a !== undefined && !isNaN(a)),\n\n // comparing\n lessThan: infix((a, b) => a < b),\n /* eslint-disable-next-line eqeqeq */\n eq: infix((a, b) => a == b),\n greaterThan: infix((a, b) => a > b),\n lessOrEq: infix((a, b) => a <= b),\n greaterOrEq: infix((a, b) => a >= b),\n /* eslint-disable-next-line eqeqeq */\n neq: infix((a, b) => a != b),\n};\n\nclass AnimatedOperator extends AnimatedNode {\n _input;\n _op;\n _operation;\n\n constructor(operator, input) {\n invariant(\n typeof operator === 'string',\n `Reanimated: Animated.operator node first argument should be of type String, but got: ${operator}`\n );\n invariant(\n input.every(\n (el) =>\n el instanceof AnimatedNode ||\n typeof el === 'string' ||\n typeof el === 'number'\n ),\n `Reanimated: Animated.operator node second argument should be one or more of type AnimatedNode, String or Number but got ${input}`\n );\n super({ type: 'op', op: operator, input }, input);\n this._op = operator;\n this._input = input;\n }\n\n toString() {\n return `AnimatedOperator, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (!this._operation) {\n this._operation = OPERATIONS[this._op];\n invariant(this._operation, `Illegal operator '%s'`, this._op);\n }\n return this._operation(this._input);\n }\n}\n\nexport function createAnimatedOperator(name) {\n return (...args) => new AnimatedOperator(name, args.map(adapt));\n}\n","import { createAnimatedOperator } from './core/AnimatedOperator';\n\nconst operator = createAnimatedOperator;\n\nexport const add = operator('add');\nexport const sub = operator('sub');\nexport const multiply = operator('multiply');\nexport const divide = operator('divide');\nexport const pow = operator('pow');\nexport const modulo = operator('modulo');\nexport const sqrt = operator('sqrt');\nexport const log = operator('log');\nexport const sin = operator('sin');\nexport const cos = operator('cos');\nexport const exp = operator('exp');\nexport const round = operator('round');\nexport const lessThan = operator('lessThan');\nexport const eq = operator('eq');\nexport const greaterThan = operator('greaterThan');\nexport const lessOrEq = operator('lessOrEq');\nexport const greaterOrEq = operator('greaterOrEq');\nexport const neq = operator('neq');\nexport const and = operator('and');\nexport const or = operator('or');\nexport const defined = operator('defined');\nexport const not = operator('not');\nexport const tan = operator('tan');\nexport const acos = operator('acos');\nexport const asin = operator('asin');\nexport const atan = operator('atan');\nexport const abs = operator('abs');\nexport const ceil = operator('ceil');\nexport const floor = operator('floor');\nexport const max = operator('max');\nexport const min = operator('min');\n","export const EventType = {\n UNDETERMINED: 0,\n TOUCHES_DOWN: 1,\n TOUCHES_MOVE: 2,\n TOUCHES_UP: 3,\n TOUCHES_CANCELLED: 4,\n} as const;\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; it can be used as a type and as a value\nexport type EventType = typeof EventType[keyof typeof EventType];\n","import get from 'lodash.get';\nimport merge from 'lodash.merge';\nimport isEmpty from 'lodash.isempty';\nimport { Platform } from 'react-native';\nimport { useNativeBase } from '../useNativeBase';\nimport { useColorMode } from '../../core/color-mode';\nimport { omitUndefined, extractInObject } from '../../theme/tools';\nimport { useBreakpointResolvedProps } from '../useBreakpointResolvedProps';\nimport {\n propsFlattener,\n compareSpecificity,\n IStateProps,\n} from './propsFlattener';\nimport { useResponsiveSSRProps } from '../useResponsiveSSRProps';\nimport React from 'react';\nimport { ResponsiveQueryContext } from '../../utils/useResponsiveQuery/ResponsiveQueryProvider';\nimport type { ComponentTheme } from '../../theme';\n\nconst SPREAD_PROP_SPECIFICITY_ORDER = [\n 'p',\n 'padding',\n 'px',\n 'py',\n 'pt',\n 'pb',\n 'pl',\n 'pr',\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'm',\n 'margin',\n 'mx',\n 'my',\n 'mt',\n 'mb',\n 'ml',\n 'mr',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst FINAL_SPREAD_PROPS = [\n 'paddingTop',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'marginTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n];\n\nconst MARGIN_MAP: any = {\n mx: ['marginRight', 'marginLeft'],\n my: ['marginTop', 'marginBottom'],\n mt: ['marginTop'],\n mb: ['marginBottom'],\n mr: ['marginRight'],\n ml: ['marginLeft'],\n};\n\nMARGIN_MAP.margin = [...MARGIN_MAP.mx, ...MARGIN_MAP.my];\nMARGIN_MAP.m = MARGIN_MAP.margin;\nMARGIN_MAP.marginTop = MARGIN_MAP.mt;\nMARGIN_MAP.marginBottom = MARGIN_MAP.mb;\nMARGIN_MAP.marginLeft = MARGIN_MAP.ml;\nMARGIN_MAP.marginRight = MARGIN_MAP.mr;\n\nconst PADDING_MAP: any = {\n px: ['paddingRight', 'paddingLeft'],\n py: ['paddingTop', 'paddingBottom'],\n pt: ['paddingTop'],\n pb: ['paddingBottom'],\n pr: ['paddingRight'],\n pl: ['paddingLeft'],\n};\n\nPADDING_MAP.padding = [...PADDING_MAP.px, ...PADDING_MAP.py];\nPADDING_MAP.p = PADDING_MAP.padding;\nPADDING_MAP.paddingTop = PADDING_MAP.pt;\nPADDING_MAP.paddingBottom = PADDING_MAP.pb;\nPADDING_MAP.paddingLeft = PADDING_MAP.pl;\nPADDING_MAP.paddingRight = PADDING_MAP.pr;\n\nconst SPREAD_PROP_SPECIFICITY_MAP: any = {\n ...PADDING_MAP,\n ...MARGIN_MAP,\n};\n\nfunction propsSpreader(incomingProps: any, incomingSpecifity: any) {\n const flattenedDefaultProps: any = { ...incomingProps };\n const specificity: any = {};\n\n SPREAD_PROP_SPECIFICITY_ORDER.forEach((prop) => {\n if (prop in flattenedDefaultProps) {\n const val = incomingProps[prop] || flattenedDefaultProps[prop];\n if (!FINAL_SPREAD_PROPS.includes(prop)) {\n delete flattenedDefaultProps[prop];\n specificity[prop] = incomingSpecifity[prop];\n }\n\n SPREAD_PROP_SPECIFICITY_MAP[prop].forEach((newProp: string) => {\n if (compareSpecificity(specificity[newProp], specificity[prop])) {\n specificity[newProp] = incomingSpecifity[prop];\n flattenedDefaultProps[newProp] = val;\n }\n });\n }\n });\n\n return merge({}, flattenedDefaultProps);\n}\n\n/**\n * @summary Combines provided porps with component's theme props and resloves them.\n * @arg {string} component - Name of the component.\n * @arg {object} incomingProps - Props passed by the user.\n * @arg {object} state - dependent states.\n * @arg {object} config - configuration for resolution. Accepts key like ignoreProps, resolveResponsively.\n * @returns {object} Resolved and flattened props.\n */\nexport function usePropsResolution(\n component: string,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) {\n const { theme } = useNativeBase();\n const componentTheme =\n config?.componentTheme ?? get(theme, `components.${component}`, {});\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c${component}`,\n 'background: #d97706; color: #111; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n `%cusePropsResolution`,\n 'background: #4b5563; color: #d97706; font-weight: 700; padding: 2px 8px;'\n );\n /* eslint-disable-next-line */\n console.log(\n '%c incomingProps: ',\n 'color: #4ade80; font-weight: 700;',\n incomingProps\n );\n /* eslint-disable-next-line */\n console.log('%c state: ', 'color: #4ade80; font-weight: 700;', state);\n /* eslint-disable-next-line */\n console.log(\n '%c componentTheme: ',\n 'color: #4ade80; font-weight: 700;',\n componentTheme\n );\n }\n\n const resolvedProps = usePropsResolutionWithComponentTheme(\n componentTheme,\n incomingProps,\n state,\n config\n );\n\n // Not Resolve theme props and pseudo props\n if (incomingProps?.INTERNAL_notResolveThemeAndPseudoProps) {\n delete incomingProps.INTERNAL_notResolveThemeAndPseudoProps;\n return incomingProps;\n }\n\n if (process.env.NODE_ENV === 'development' && incomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n '%c resolvedProps: ',\n 'color: #22d3ee; font-weight: 700;',\n resolvedProps\n );\n }\n return resolvedProps;\n}\n\nexport const usePropsResolutionWithComponentTheme = (\n componentTheme: ComponentTheme,\n incomingProps: any,\n state?: IStateProps,\n config?: {\n componentTheme?: any;\n resolveResponsively?: string[];\n ignoreProps?: string[];\n cascadePseudoProps?: boolean;\n extendTheme?: string[];\n }\n) => {\n const modifiedPropsForSSR = useResponsiveSSRProps(incomingProps);\n\n const [ignoredProps, cleanIncomingProps] = extractInObject(\n modifiedPropsForSSR,\n ['children', 'onPress', 'icon', 'onOpen', 'onClose'].concat(\n config?.ignoreProps || []\n )\n );\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n const resolveResponsively = [\n 'colorScheme',\n 'size',\n 'variant',\n ...(config?.resolveResponsively || []),\n ];\n\n const { theme } = useNativeBase();\n const colorModeProps = useColorMode();\n\n const extendedTheme: Array = [];\n if (config?.extendTheme) {\n config?.extendTheme.map((componentName: string) => {\n extendedTheme.push(get(theme, `components.${componentName}`, {}));\n });\n }\n if (!isEmpty(componentTheme)) extendedTheme.push(componentTheme);\n\n const resolveComponentTheme = (\n themeType: Array,\n providedTheme: any\n ): any => {\n try {\n if (themeType[1]) {\n return typeof providedTheme[themeType[0]][themeType[1]] !== 'function'\n ? providedTheme[themeType[0]][themeType[1]]\n : providedTheme[themeType[0]][themeType[1]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n } else {\n return typeof providedTheme[themeType[0]] !== 'function'\n ? providedTheme[themeType[0]]\n : providedTheme[themeType[0]]({\n theme,\n ...incomingWithDefaultProps,\n ...colorModeProps,\n });\n }\n } catch {\n return {};\n }\n };\n const callPropsFlattener = (\n targetProps = {},\n latestSpecifictyMap = {},\n specificity = 1\n ): any => {\n return propsFlattener(\n {\n props:\n process.env.NODE_ENV === 'development' && cleanIncomingProps.debug\n ? { ...targetProps, debug: true }\n : targetProps,\n platform: Platform.OS,\n colormode: colorModeProps.colorMode,\n state: state || {},\n currentSpecificityMap: latestSpecifictyMap,\n previouslyFlattenProps: flattenProps || {},\n cascadePseudoProps: config?.cascadePseudoProps,\n },\n specificity\n );\n };\n\n // STEP 1: combine default props and incoming props\n\n const incomingWithDefaultProps = merge(\n {},\n componentTheme.defaultProps || {},\n cleanIncomingProps\n );\n\n // STEP 1.5: resolving component theme\n let combinedBaseStyle = {};\n let combinedVariantStyle = {};\n let combinedSizeStyle = {};\n extendedTheme.map((extededComponentTheme: any) => {\n if (extededComponentTheme.baseStyle) {\n combinedBaseStyle = {\n ...combinedBaseStyle,\n ...resolveComponentTheme(['baseStyle'], extededComponentTheme),\n };\n }\n if (incomingWithDefaultProps.variant) {\n if (extededComponentTheme.variants) {\n combinedVariantStyle = {\n ...combinedVariantStyle,\n ...resolveComponentTheme(\n ['variants', incomingWithDefaultProps.variant],\n extededComponentTheme\n ),\n };\n }\n }\n if (\n incomingWithDefaultProps.size &&\n extededComponentTheme?.sizes &&\n extededComponentTheme?.sizes[incomingWithDefaultProps.size]\n ) {\n if (\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'string' ||\n typeof extededComponentTheme.sizes[incomingWithDefaultProps.size] ===\n 'number'\n ) {\n incomingWithDefaultProps.size =\n extededComponentTheme.sizes[incomingWithDefaultProps.size];\n } else {\n combinedSizeStyle = {\n ...combinedSizeStyle,\n ...resolveComponentTheme(\n ['sizes', incomingWithDefaultProps.size],\n extededComponentTheme\n ),\n };\n incomingWithDefaultProps.size = undefined;\n }\n }\n });\n\n // STEP 2: flatten them\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening incoming and Default`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n //TODO: hack\n let flattenProps: any, specificityMap;\n [flattenProps, specificityMap] = callPropsFlattener(\n incomingWithDefaultProps,\n {},\n 2\n );\n const responsiveProps = {};\n if (disableCSSMediaQueries) {\n // STEP 2.5: resolving responsive props\n resolveResponsively.map((propsName) => {\n if (flattenProps[propsName]) {\n // @ts-ignore\n responsiveProps[propsName] = flattenProps[propsName];\n }\n });\n }\n if (resolveResponsively.includes('direction')) {\n const propName = 'direction';\n if (flattenProps[propName]) {\n // @ts-ignore\n responsiveProps[propName] = flattenProps[propName];\n }\n }\n const responsivelyResolvedProps = useBreakpointResolvedProps(responsiveProps);\n\n flattenProps = {\n ...flattenProps,\n ...responsivelyResolvedProps,\n };\n // STEP 3: Pass it to baseStyle, then variant and then size and resolve them.\n\n // NOTE: Resoloving baseStyle\n let flattenBaseStyle, baseSpecificityMap;\n if (combinedBaseStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening baseStyle`,\n 'background: #4b5563; color: #eee; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenBaseStyle, baseSpecificityMap] = callPropsFlattener(\n combinedBaseStyle,\n specificityMap\n );\n }\n\n // NOTE: Resolving variants\n let flattenVariantStyle, variantSpecificityMap;\n // Extracting props from variant\n if (combinedVariantStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening variantStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenVariantStyle, variantSpecificityMap] = callPropsFlattener(\n combinedVariantStyle,\n baseSpecificityMap || specificityMap\n );\n\n // We remove variant from original props if we found it in the componentTheme\n //@ts-ignore\n flattenProps.variant = undefined;\n }\n\n // NOTE: Resolving size\n\n let flattenSizeStyle, sizeSpecificityMap;\n // Extracting props from size\n if (combinedSizeStyle) {\n if (process.env.NODE_ENV === 'development' && cleanIncomingProps.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%cFlattening sizeStyle`,\n 'background: #4b5563; color: #FFF; font-weight: 700; padding: 2px 8px;'\n );\n }\n [flattenSizeStyle, sizeSpecificityMap] = callPropsFlattener(\n combinedSizeStyle,\n variantSpecificityMap || baseSpecificityMap || specificityMap\n );\n }\n\n // STEP 4: merge\n const defaultStyles = merge(\n {},\n flattenBaseStyle,\n flattenVariantStyle,\n flattenSizeStyle\n );\n\n /*Resolve all the internal used Pseudo Props*/\n const resolvePseudoProps = (\n flatPseudoProp: any /** Props coming from Pseudo inside flattenProps */,\n baseStylePseudoProp: any /** Props coming from Pseudo inside defaultStyles(baseStyle) */\n ) => {\n for (const prop in flatPseudoProp) {\n baseStylePseudoProp[prop] =\n flatPseudoProp[\n prop\n ]; /* Replace all the similar prop from from internal props */\n }\n return baseStylePseudoProp;\n };\n\n for (const prop in defaultStyles) {\n if (prop.startsWith('_') && flattenProps.hasOwnProperty(prop)) {\n /*Resolve all the internal used Pseudo Props*/\n defaultStyles[prop] = resolvePseudoProps(\n flattenProps[prop],\n defaultStyles[prop]\n );\n }\n delete flattenProps[prop];\n }\n\n const defaultSpecificity = merge(\n {},\n specificityMap,\n baseSpecificityMap,\n variantSpecificityMap,\n sizeSpecificityMap\n );\n\n flattenProps = propsSpreader(\n { ...defaultStyles, ...flattenProps },\n defaultSpecificity\n );\n\n const resolvedProps = omitUndefined({\n ...flattenProps,\n ...ignoredProps,\n });\n\n // STEP 5: Return\n return resolvedProps;\n};\n","export const ariaAttr = (condition: boolean | undefined) =>\n condition ? true : undefined;\n","import React from 'react';\nimport { useId } from '@react-native-aria/utils';\nimport omit from 'lodash.omit';\nimport type { IFormControlProps } from './types';\nimport { ariaAttr } from '../../../utils';\n\nexport type IFormControlContext = Omit<\n ReturnType,\n 'htmlProps'\n>;\n\nexport const FormControlContext = React.createContext({});\n\nexport function useFormControlProvider(props: IFormControlProps) {\n const {\n nativeID: idProp,\n isRequired,\n isInvalid,\n isDisabled,\n isReadOnly,\n ...htmlProps\n } = props;\n\n const id = useId();\n // Generate all the required ids\n const nativeID = idProp || `field-${id}`;\n\n const labelId = `${nativeID}-label`;\n const feedbackId = `${nativeID}-feedback`;\n const helpTextId = `${nativeID}-helptext`;\n\n /**\n * Track whether the `FormErrorMessage` has been rendered.\n * We use this to append its id the the `aria-describedby` of the `input`.\n */\n const [hasFeedbackText, setHasFeedbackText] = React.useState(false);\n\n /**\n * Track whether the `FormHelperText` has been rendered.\n * We use this to append its id the the `aria-describedby` of the `input`.\n */\n const [hasHelpText, setHasHelpText] = React.useState(false);\n\n const context = {\n isRequired: !!isRequired,\n isInvalid: !!isInvalid,\n isReadOnly: !!isReadOnly,\n isDisabled: !!isDisabled,\n hasFeedbackText,\n setHasFeedbackText,\n hasHelpText,\n setHasHelpText,\n nativeID,\n labelId,\n feedbackId,\n helpTextId,\n htmlProps,\n };\n\n return context;\n}\n\n/**\n * React hook that provides the props that should be spread on to\n * input fields (`input`, `select`, `textarea`, etc.).\n *\n * It provides a convenient way to control a form fields, validation\n * and helper text.\n */\nexport function useFormControl(props: IFormControlProps) {\n const field = useFormControlContext();\n const describedBy: any[] = [];\n\n // Error message must be described first in all scenarios.\n if (field?.hasFeedbackText) describedBy.push(field?.feedbackId);\n if (field?.hasHelpText) describedBy.push(field?.helpTextId);\n const ariaDescribedBy = describedBy.join(' ');\n\n const cleanProps = omit(props, [\n 'isInvalid',\n 'isDisabled',\n 'isReadOnly',\n 'isRequired',\n ]);\n\n return {\n ...cleanProps,\n nativeID: props.nativeID ?? field?.nativeID,\n disabled: props.isDisabled || field?.isDisabled,\n readOnly: props.isReadOnly || field?.isReadOnly,\n required: props.isRequired || field?.isRequired,\n accessibilityInvalid: ariaAttr(props.isInvalid || field?.isInvalid),\n accessibilityRequired: ariaAttr(props.isRequired || field?.isRequired),\n accessibilityReadOnly: ariaAttr(props.isReadOnly || field?.isReadOnly),\n accessibilityDescribedBy: ariaDescribedBy || undefined,\n };\n}\n\nexport const useFormControlContext = () => {\n return (React.useContext(\n FormControlContext\n ) as unknown) as IFormControlContext;\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\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;","import RCTDeviceEventEmitter from '../../vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter';\nexport default RCTDeviceEventEmitter;","import { GestureType } from './gestures/gesture';\n\nexport const handlerIDToTag: Record = {};\nconst handlers = new Map();\n\nlet handlerTag = 1;\n\nexport function getNextHandlerTag(): number {\n return handlerTag++;\n}\n\nexport function registerHandler(handlerTag: number, handler: GestureType) {\n handlers.set(handlerTag, handler);\n}\n\nexport function unregisterHandler(handlerTag: number) {\n handlers.delete(handlerTag);\n}\n\nexport function findHandler(handlerTag: number) {\n return handlers.get(handlerTag);\n}\n","import { mode } from '../tools/colors';\n\n// Accordion\nconst accordionBaseStyle = (props: Record) => {\n return {\n borderWidth: 1,\n borderColor: mode('gray.300', 'gray.600')(props),\n borderRadius: 'lg',\n };\n};\nexport const Accordion = {\n baseStyle: accordionBaseStyle,\n};\n\n// AccordionItem\nexport const AccordionItem = {};\n\n// AccordionIcon\nexport const AccordionIcon = {};\n\n// AccordionSummary\nconst accordionSummaryBaseStyle = (props: Record) => {\n return {\n borderTopWidth: 1,\n borderTopColor: mode('gray.300', 'gray.600')(props),\n p: 3,\n _hover: {\n bg: mode('primary.200', 'primary.300')(props),\n },\n _expanded: {\n bg: 'primary.600',\n borderBottomColor: mode('gray.300', 'gray.600')(props),\n _text: { color: 'white' },\n },\n _disabled: {\n bg: mode('gray.200', 'gray.700')(props),\n },\n };\n};\nexport const AccordionSummary = {\n baseStyle: accordionSummaryBaseStyle,\n};\n\n// AccordionDetails\nconst accordionPanelBaseStyle = {\n p: 3,\n};\n\nexport const AccordionDetails = {\n baseStyle: accordionPanelBaseStyle,\n};\n","import { getColor, getColorScheme, transparentize } from '../tools';\n\nfunction getBg(props: Record) {\n let { theme, colorScheme, status, variant } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n const lightBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.700`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n const darkBg =\n variant === 'solid'\n ? getColor(theme, `${colorScheme}.600`, colorScheme)\n : getColor(theme, `${colorScheme}.200`, colorScheme);\n\n return { lightBg, darkBg };\n}\n\nconst variantSubtle = (props: Record) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n _light: {\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n },\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n },\n };\n};\n\nconst variantOutline = (props: Record) => {\n let { colorScheme, status } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _light: {\n _icon: { color: `${colorScheme}.700` },\n borderColor: `${colorScheme}.700`,\n },\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantOutlineLight = (props: Record) => {\n let { colorScheme, status, theme } = props;\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderWidth: 1,\n _light: {\n _icon: { color: `${colorScheme}.700` },\n borderColor: transparentize(`${colorScheme}.700`, 0.4)(theme),\n },\n _dark: {\n _icon: { color: `${colorScheme}.600` },\n borderColor: transparentize(`${colorScheme}.600`, 0.4)(theme),\n },\n };\n};\n\nconst variantSolid = (props: Record) => {\n const { lightBg, darkBg } = getBg(props);\n return {\n _light: {\n bg: lightBg,\n },\n _dark: {\n bg: darkBg,\n },\n _icon: { color: `muted.50` },\n };\n};\n\nconst variantLeftAccent = (props: Record) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderLeftWidth: 4,\n _light: {\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderLeftColor: `${colorScheme}.700`,\n },\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderLeftColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variantTopAccent = (props: Record) => {\n let { colorScheme, status } = props;\n const { lightBg, darkBg } = getBg(props);\n\n colorScheme = getColorScheme(props, !status ? colorScheme : status);\n\n return {\n borderTopWidth: 4,\n _light: {\n bg: lightBg,\n _icon: { color: `${colorScheme}.700` },\n borderTopColor: `${colorScheme}.700`,\n },\n _dark: {\n bg: darkBg,\n _icon: { color: `${colorScheme}.600` },\n borderTopColor: `${colorScheme}.600`,\n },\n };\n};\n\nconst variants = {\n 'subtle': variantSubtle,\n 'solid': variantSolid,\n 'left-accent': variantLeftAccent,\n 'top-accent': variantTopAccent,\n 'outline': variantOutline,\n 'outline-light': variantOutlineLight,\n};\n\nexport const Alert = {\n baseStyle: {\n alignItems: 'center',\n justifyContent: 'flex-start',\n p: 3,\n space: 3,\n borderRadius: 'sm',\n },\n variants,\n defaultProps: {\n colorScheme: 'info',\n variant: 'subtle',\n },\n};\n\n// AlertIcon\n\nexport const AlertIcon = {\n baseStyle: {\n size: 4,\n },\n};\n","const baseStyle = {};\nconst defaultProps = {\n ratio: 4 / 3,\n};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { randomColor, getRandomString } from './../tools';\n\nconst baseStyle = (props: Record) => {\n const { name } = props;\n const bg = name\n ? randomColor({ string: getRandomString(5) + name })\n : 'gray.400';\n return {\n bg,\n position: 'relative',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 'full',\n _text: {\n fontWeight: 600,\n color: 'text.50',\n },\n _image: {\n borderRadius: 'full',\n alt: '--',\n _alt: {\n fontWeight: 600,\n },\n style: {\n height: '100%',\n width: '100%',\n },\n },\n _light: {\n borderColor: 'gray.800',\n },\n _dark: {\n borderColor: 'white',\n },\n };\n};\n\nfunction getSize(size: any, fontSize: string, badgeSize: any) {\n return {\n width: size,\n height: size,\n _text: {\n fontSize: fontSize,\n },\n _badgeSize: badgeSize,\n };\n}\n\nconst sizes = {\n 'xs': getSize('6', '2xs', '2'),\n 'sm': getSize('8', 'xs', '3'),\n 'md': getSize('12', 'md', '4'),\n 'lg': getSize('16', 'xl', '5'),\n 'xl': getSize('24', '3xl', '6'),\n '2xl': getSize('32', '5xl', '7'),\n};\n\nconst defaultProps = {\n size: 'md',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","function baseStyle() {\n return {\n borderRadius: 'full',\n borderWidth: 2,\n bg: 'success.600',\n size: 3,\n position: 'absolute',\n right: 0,\n bottom: 0,\n _light: {\n borderColor: 'muted.50',\n },\n _dark: {\n borderColor: 'muted.900',\n },\n };\n}\n\nexport default { baseStyle };\n","function baseStyle({ isVertical }: Record) {\n return {\n flexDirection: isVertical ? 'column-reverse' : 'row-reverse',\n space: -4,\n _avatar: {\n borderWidth: 2,\n },\n _hiddenAvatarPlaceholder: {\n _text: {\n color: 'text.50',\n },\n },\n _light: {\n _avatar: {\n borderColor: 'muted.50',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n _dark: {\n _avatar: {\n borderColor: 'muted.900',\n },\n _hiddenAvatarPlaceholder: {\n bg: 'gray.600',\n },\n },\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n isVertical: false,\n },\n};\n","import { getColorScheme } from '../tools';\n\nconst baseStyle = {\n flexDirection: 'row',\n space: 1,\n px: '2',\n py: '0.5',\n alignItems: 'center',\n _text: { fontSize: 'xs', fontWeight: 'medium' },\n};\n\nfunction variantSolid(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n bg: `${colorScheme}.600`,\n borderWidth: '1',\n borderColor: 'transparent',\n borderRadius: '2',\n };\n}\n\nfunction variantSubtle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n _text: { color: `${colorScheme}.900` },\n _icon: { color: `${colorScheme}.900` },\n _light: { bg: `${colorScheme}.100` },\n _dark: { bg: `${colorScheme}.300` },\n borderWidth: '1',\n borderRadius: '2',\n borderColor: 'transparent',\n };\n}\n\nfunction variantOutline(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n _light: {\n _text: { color: `${colorScheme}.600` },\n _icon: { color: `${colorScheme}.600` },\n borderColor: `${colorScheme}.600`,\n },\n _dark: {\n _text: {\n color: `${colorScheme}.300`,\n },\n _icon: {\n color: `${colorScheme}.300`,\n },\n borderColor: `${colorScheme}.300`,\n },\n borderRadius: '2',\n borderWidth: '1',\n };\n}\n\nconst variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'muted',\n size: 'md',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","const baseStyle = {\n width: 'auto',\n height: 'auto',\n display: 'flex',\n flexDirection: 'row',\n spacing: '2',\n};\nconst defaultProps = {\n direction: 'row',\n wrap: 'wrap',\n};\n\nexport const Breadcrumb = {\n baseStyle,\n defaultProps,\n};\n\nexport const BreadcrumbText = {\n baseStyle: { ...baseStyle, _current: { fontWeight: 'bold' } },\n defaultProps,\n};\n\nexport const BreadcrumbIcon = {\n baseStyle: { ...baseStyle },\n defaultProps,\n};\n","import { mode } from './../tools';\n\nconst baseStyle = (props: Record) => {\n const { primary } = props.theme.colors;\n const focusRing = mode(\n {\n boxShadow: `${primary[400]} 0px 0px 0px 2px`,\n },\n {\n boxShadow: `${primary[500]} 0px 0px 0px 2px`,\n }\n )(props);\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { ...focusRing },\n },\n },\n _stack: {\n space: '1.5',\n alignItems: 'center',\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n _spinner: {\n size: 'sm',\n focusable: false,\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: Record) {\n return {\n _light: {\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n },\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: Record) {\n return {\n borderWidth: '1px',\n\n _light: {\n borderColor: 'muted.300',\n _text: {\n color: `${colorScheme}.600`,\n },\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n },\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: `${colorScheme}.500`,\n },\n _icon: {\n color: `${colorScheme}.500`,\n },\n _spinner: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: Record) {\n return {\n _text: {\n color: 'text.50',\n },\n _icon: {\n color: 'text.50',\n },\n _spinner: {\n color: 'text.50',\n },\n\n _light: {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n },\n _dark: {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: Record) {\n return {\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n _spinner: {\n color: `${colorScheme}.900`,\n },\n\n _light: {\n bg: `${colorScheme}.100`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n },\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: Record) {\n return {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _hover: {\n _text: {\n textDecorationLine: 'underline',\n },\n },\n _pressed: {\n _text: {\n textDecorationLine: 'underline',\n },\n },\n _light: {\n _text: {\n color: `${colorScheme}.600`,\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.800`,\n },\n },\n },\n _dark: {\n _text: {\n color: `${colorScheme}.500`,\n },\n _pressed: {\n _text: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n subtle: variantSubtle,\n link: variantLink,\n unstyled: {},\n};\n\nconst sizes = {\n lg: {\n px: '3',\n py: '3',\n _text: {\n fontSize: 'md',\n },\n _icon: {\n size: 'md',\n },\n },\n md: {\n px: '3',\n py: '2.5',\n _text: {\n fontSize: 'sm',\n },\n _icon: {\n size: 'sm',\n },\n },\n sm: {\n px: '3',\n py: '2',\n _text: {\n fontSize: 'xs',\n },\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n px: '3',\n py: '2',\n _text: {\n fontSize: '2xs',\n },\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'solid',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport const ButtonGroup = {\n baseStyle: { direction: 'row' },\n defaultProps: { space: 2 },\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","const baseStyle = {\n shadow: 4,\n borderRadius: 'md',\n padding: 4,\n overflow: 'hidden',\n};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","// For Square and circle variation\nconst sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nexport default {\n baseStyle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n justifyContent: 'flex-start',\n flexDirection: 'row',\n borderWidth: 2,\n borderRadius: 'sm',\n opacity: 1,\n p: 0.5,\n\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.400',\n _text: {\n color: 'darkText',\n },\n _icon: {\n color: `muted.50`,\n },\n _checked: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n _hover: {\n borderColor: `${c}.700`,\n bg: `${c}.700`,\n _disabled: {\n borderColor: `${c}.600`,\n bg: `${c}.600`,\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n bg: `${c}.800`,\n },\n },\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n },\n _pressed: {\n borderColor: 'muted.600',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n _text: {\n color: 'lightText',\n },\n _icon: {\n color: `muted.900`,\n },\n _checked: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n _hover: {\n borderColor: `${c}.400`,\n bg: `${c}.400`,\n _disabled: {\n borderColor: `${c}.500`,\n bg: `${c}.500`,\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n bg: `${c}.300`,\n },\n },\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n },\n _pressed: {\n borderColor: 'muted.300',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _text: {\n ml: 2,\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n\n _disabled: {\n _web: {\n cursor: 'not-allowed',\n },\n opacity: 0.4,\n },\n };\n};\n\nconst sizes = {\n lg: { _icon: { size: 5 }, _text: { fontSize: 'xl' } },\n md: { _icon: { size: 4 }, _text: { fontSize: 'lg' } },\n sm: { _icon: { size: 3 }, _text: { fontSize: 'md' } },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'sm',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","import { mode, getColorScheme } from '../tools';\n\nconst sizes = {\n 'xs': {\n height: 6,\n width: 6,\n },\n 'sm': {\n height: 8,\n width: 8,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 20,\n width: 20,\n },\n 'xl': {\n height: 24,\n width: 24,\n },\n '2xl': {\n height: 32,\n width: 32,\n },\n};\nconst defaultProps = {\n thickness: 8,\n colorScheme: 'primary',\n size: 'lg',\n};\n\nfunction baseStyle(props: Record) {\n const colorScheme = getColorScheme(props);\n return {\n color: mode(`${colorScheme}.600`, `${colorScheme}.500`)(props),\n trackColor: mode(`${colorScheme}.200`, `${colorScheme}.800`)(props),\n };\n}\n\nexport default { baseStyle, sizes, defaultProps };\n","import Badge from './badge';\nimport { Platform } from 'react-native';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n _text: {\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n fontSize: 'sm',\n },\n borderRadius: 'sm',\n px: 2,\n py: 1,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import type { Dict } from './../tools';\n\nconst baseStyle = (props: Dict) => {\n const { centerContent } = props;\n\n return {\n maxWidth: '80%',\n alignItems: centerContent ? 'center' : 'flex-start',\n _text: { textAlign: centerContent ? 'center' : 'left' },\n };\n};\n\nexport default {\n baseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","function baseStyle(props: Record) {\n const { orientation, thickness } = props;\n const orientationProps =\n orientation === 'vertical'\n ? {\n width: `${thickness}px`, // handle for web : To be discussed\n height: '100%',\n }\n : {\n width: '100%',\n height: `${thickness}px`,\n };\n\n return {\n _light: {\n bg: 'muted.300',\n },\n _dark: {\n bg: 'muted.600',\n },\n ...orientationProps,\n };\n}\n\nexport default {\n baseStyle,\n defaultProps: {\n orientation: 'horizontal',\n thickness: '1',\n },\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n rounded: 'full',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n _light: {\n color: 'text.900',\n },\n _dark: {\n color: 'text.50',\n },\n fontWeight: 'bold',\n lineHeight: 'sm',\n };\n};\n\nconst sizes = {\n '4xl': {\n fontSize: ['6xl', null, '7xl'],\n letterSpacing: 'xl',\n },\n '3xl': {\n fontSize: ['5xl', null, '6xl'],\n letterSpacing: 'xl',\n },\n '2xl': {\n fontSize: ['4xl', null, '5xl'],\n },\n 'xl': {\n fontSize: ['3xl', null, '4xl'],\n },\n 'lg': {\n fontSize: ['2xl', null, '3xl'],\n },\n 'md': { fontSize: 'xl' },\n 'sm': { fontSize: 'md' },\n 'xs': { fontSize: 'sm' },\n};\n\nconst defaultProps = {\n size: 'lg',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n _light: {\n color: 'muted.500',\n },\n _dark: {\n color: 'muted.400',\n },\n };\n};\n\nconst sizes = {\n '2xs': 2,\n 'xs': 3,\n 'sm': 4,\n 'md': 5,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n '3xl': 9,\n '4xl': 10,\n '5xl': 12,\n '6xl': 16,\n};\n\nconst defaultProps = { size: 'xs' };\nexport default { baseStyle, sizes, defaultProps };\n","import { mode } from './../tools';\n\nconst baseStyle = (props: any) => {\n const { colorScheme } = props;\n const colors = props.theme.colors;\n const focusRing = mode(\n {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][600]}`,\n outlineStyle: 'solid',\n },\n {\n outlineWidth: '2px',\n outlineColor: `${colors[colorScheme][500]}`,\n outlineStyle: 'solid',\n }\n )(props);\n\n return {\n borderRadius: 'sm', // '4px'\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n _web: {\n _disabled: {\n cursor: 'not-allowed',\n },\n _loading: {\n cursor: 'not-allowed',\n },\n cursor: 'pointer',\n userSelect: 'none',\n },\n _focus: {\n borderColor: `${colorScheme}.400`,\n },\n _focusVisible: {\n _web: {\n style: { ...focusRing },\n },\n },\n _loading: {\n opacity: '40',\n },\n _disabled: {\n opacity: '40',\n },\n };\n};\n\nfunction variantGhost({ colorScheme }: Record) {\n return {\n _light: {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.600:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.600:alpha.20`,\n },\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.500:alpha.10`,\n },\n _pressed: {\n bg: `${colorScheme}.500:alpha.20`,\n },\n },\n };\n}\n\nfunction variantOutline({ colorScheme }: Record) {\n return {\n borderWidth: '1px',\n _light: {\n borderColor: `${colorScheme}.600`,\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n bg: `${colorScheme}.700`,\n _icon: {\n color: 'muted.50',\n },\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n _icon: {\n color: 'muted.50',\n },\n },\n _focus: {\n bg: `${colorScheme}.600`,\n _icon: {\n color: 'muted.50',\n },\n },\n },\n _dark: {\n borderColor: `${colorScheme}.500`,\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n bg: `${colorScheme}.400`,\n _icon: {\n color: 'muted.900',\n },\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _focus: {\n bg: `${colorScheme}.500`,\n _icon: {\n color: 'muted.900',\n },\n },\n },\n };\n}\n\nfunction variantSolid({ colorScheme }: Record) {\n return {\n _light: {\n bg: `${colorScheme}.600`,\n _hover: {\n bg: `${colorScheme}.700`,\n },\n _pressed: {\n bg: `${colorScheme}.800`,\n },\n _icon: {\n color: 'muted.50',\n },\n },\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n bg: `${colorScheme}.400`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n _icon: {\n color: 'muted.900',\n },\n },\n _icon: {\n color: 'muted.900',\n },\n },\n };\n}\n\nfunction variantSubtle({ colorScheme }: Record) {\n return {\n _text: {\n color: `${colorScheme}.900`,\n },\n _icon: {\n color: `${colorScheme}.900`,\n },\n _light: {\n bg: `${colorScheme}.100`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.300`,\n },\n },\n _dark: {\n bg: `${colorScheme}.300`,\n _hover: {\n bg: `${colorScheme}.200`,\n },\n _pressed: {\n bg: `${colorScheme}.100`,\n },\n },\n };\n}\n\nfunction variantLink({ colorScheme }: Record) {\n return {\n _spinner: {\n color: `${colorScheme}.600`,\n },\n\n _light: {\n _icon: {\n color: `${colorScheme}.600`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.700`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.800`,\n },\n },\n },\n _dark: {\n _icon: {\n color: `${colorScheme}.500`,\n },\n _hover: {\n _icon: {\n color: `${colorScheme}.400`,\n },\n },\n _pressed: {\n _icon: {\n color: `${colorScheme}.300`,\n },\n },\n },\n };\n}\n\nfunction variantUnstyled() {\n return {\n _light: {\n _icon: {\n color: 'muted.900',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.50',\n },\n },\n };\n}\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n subtle: variantSubtle,\n link: variantLink,\n unstyled: variantUnstyled,\n};\n\nconst sizes = {\n lg: {\n p: '3',\n _icon: {\n size: 'lg',\n },\n },\n md: {\n p: '2.5',\n _icon: {\n size: 'md',\n },\n },\n sm: {\n p: '2',\n _icon: {\n size: 'sm',\n },\n },\n xs: {\n p: '1.5',\n _icon: {\n size: 'xs',\n },\n },\n};\n\nconst defaultProps = {\n variant: 'ghost',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","// Image\nconst sizes = {\n '2xs': '6',\n 'xs': '10',\n 'sm': '16',\n 'md': '20',\n 'lg': '24',\n 'xl': '32',\n '2xl': '64',\n 'full': '100%',\n};\n\nexport const Image = {\n baseStyle: {\n maxWidth: '100%',\n },\n sizes,\n defaultProps: {},\n};\n","import { transparentize } from '../tools';\nconst baseStyle = (props: any) => {\n const { primary, error } = props.theme.colors;\n\n return {\n fontFamily: 'body',\n py: '2',\n px: '3',\n borderRadius: 'sm',\n overflow: 'hidden',\n _disabled: {\n opacity: '0.4',\n _web: {\n disabled: true,\n cursor: 'not-allowed',\n },\n },\n _web: {\n outlineWidth: '0',\n overflow: 'auto',\n lineHeight: 'lg', // Todo: Move to _web inside size so that sm and xs don't have this much height\n style: { outline: 'none' },\n cursor: 'auto',\n },\n\n _input: {\n bg: 'transparent',\n flex: 1,\n w: '100%',\n h: '100%',\n },\n _light: {\n placeholderTextColor: 'text.400',\n color: 'text.900',\n borderColor: 'muted.300',\n _hover: {\n borderColor: 'primary.600',\n },\n _focus: {\n borderColor: 'primary.600',\n _hover: { borderColor: 'primary.600' },\n _stack: {\n style: {\n outlineWidth: '1px',\n outlineColor: `${props.focusOutlineColor || primary[600]}`,\n outlineStyle: 'solid',\n },\n },\n },\n _invalid: {\n borderColor: 'error.600',\n _hover: { borderColor: 'error.600' },\n _stack: {\n style: {\n outlineWidth: '1px',\n outlineColor: `${props.inValidOutlineColor || error[600]}`,\n outlineStyle: 'solid',\n },\n },\n },\n _ios: {\n selectionColor: 'coolGray.800',\n },\n _android: {\n selectionColor: 'coolGray.800',\n },\n _disabled: {\n placeholderTextColor: 'muted.700',\n _hover: {\n borderColor: 'muted.300',\n },\n },\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n },\n _dark: {\n placeholderTextColor: 'text.600',\n color: 'text.50',\n borderColor: 'muted.700',\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n _hover: { borderColor: 'primary.500' },\n _stack: {\n style: {\n outlineWidth: '1px',\n outlineColor: `${props.focusOutlineColor || primary[500]}`,\n outlineStyle: 'solid',\n },\n },\n },\n _invalid: {\n borderColor: 'error.500',\n _stack: {\n style: {\n outlineWidth: '1px',\n outlineColor: `${props.inValidOutlineColor || error[500]}`,\n outlineStyle: 'solid',\n },\n },\n _hover: { borderColor: 'error.500' },\n },\n _ios: {\n selectionColor: 'warmGray.50',\n },\n _android: {\n selectionColor: 'warmGray.50',\n },\n _disabled: {\n placeholderTextColor: 'text.50',\n _hover: {\n borderColor: 'muted.700',\n },\n },\n _stack: {\n flexDirection: 'row',\n alignItems: 'center',\n // justifyContent: 'space-between',\n overflow: 'hidden',\n },\n },\n };\n};\n\nfunction roundedStyle(props: Record) {\n const { theme } = props;\n return {\n borderRadius: 'full',\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction outlineStyle(props: Record) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n };\n}\nfunction filledStyle(props: Record) {\n const { theme } = props;\n return {\n borderWidth: '1',\n _focus: {\n bg: transparentize('primary.600', 0.1)(theme),\n },\n _hover: {\n borderWidth: '1',\n _disabled: {\n borderWidth: 0,\n },\n },\n _light: {\n bg: 'muted.100',\n borderColor: 'muted.100',\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.800',\n },\n };\n}\nfunction unstyledStyle() {\n return {\n borderWidth: '0',\n _focus: {\n bg: 'transparent',\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n },\n },\n },\n _stack: {\n _focus: {\n style: {\n outlineWidth: '0',\n },\n },\n },\n };\n}\nfunction underlinedStyle(props: Record) {\n const { primary, error } = props.theme.colors;\n\n return {\n borderWidth: '0',\n pl: '0',\n borderBottomWidth: '1',\n _light: {\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${props.focusOutlineColor || primary[600]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${props.inValidOutlineColor || error[600]}`,\n },\n },\n },\n },\n _dark: {\n _focus: {\n _stack: {\n style: {\n outlineWidth: '0',\n boxShadow: `0 1px 0 0 ${props.focusOutlineColor || primary[500]}`,\n },\n },\n },\n _invalid: {\n _stack: {\n style: {\n outlineWidth: 0,\n boxShadow: `0 1px 0 0 ${props.focusOutlineColor || error[500]}`,\n },\n },\n },\n },\n borderRadius: 0,\n };\n}\n\nconst variants = {\n outline: outlineStyle,\n underlined: underlinedStyle,\n rounded: roundedStyle,\n filled: filledStyle,\n unstyled: unstyledStyle,\n};\n\nconst sizes = {\n '2xl': { fontSize: 'xl' },\n 'xl': { fontSize: 'lg' },\n 'lg': { fontSize: 'md' },\n 'md': { fontSize: 'sm' },\n 'sm': { fontSize: 'xs' },\n 'xs': { fontSize: '2xs' },\n};\n\nconst defaultProps = {\n size: 'sm',\n variant: 'outline',\n};\n\n// Input\nexport const Input = {\n baseStyle,\n defaultProps,\n variants,\n sizes,\n};\n\nexport default {};\n","const baseStyle = () => {\n return {\n py: 1,\n px: 2,\n shadow: 6,\n rounded: 'sm',\n _text: {\n fontSize: 'sm',\n },\n _light: {\n bg: `muted.800`,\n _text: {\n color: `text.50`,\n },\n },\n _dark: {\n bg: `muted.50`,\n _text: {\n color: `text.900`,\n },\n },\n };\n};\n\nexport const Tooltip = {\n baseStyle,\n};\n","import { mode } from '../tools';\nimport { Platform } from 'react-native';\n\nfunction baseStyle(props: Record) {\n return {\n bg: mode('muted.200', 'muted.700')(props),\n borderColor: mode('muted.300', 'muted.600')(props),\n borderWidth: 2,\n borderBottomWidth: 4,\n shadow: 1,\n borderRadius: 'md',\n px: 2,\n _text: {\n fontSize: 'sm',\n fontWeight: 'bold',\n fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',\n },\n };\n}\n\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = (props: Record) => {\n const { isUnderlined } = props;\n return {\n _text: {\n textDecorationLine: isUnderlined ? 'underline' : 'none',\n },\n width: 'auto',\n height: 'auto',\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n isUnderlined: true,\n },\n};\n","import { StyleSheet } from 'react-native';\n\nconst baseStyle = {\n py: 2,\n borderRadius: 'sm',\n shadow: 6,\n _light: {\n bg: 'muted.50',\n },\n _dark: {\n bg: 'muted.800',\n },\n _presenceTransition: {\n initial: { opacity: 0 },\n animate: {\n opacity: 1,\n translateY: 0,\n transition: { duration: 200 },\n },\n exit: { opacity: 0, transition: { duration: 150 } },\n style: StyleSheet.absoluteFill,\n },\n _overlay: {},\n _backdrop: {\n bg: 'transparent',\n },\n};\n\nexport default {\n baseStyle,\n};\n\nexport const MenuGroup = {\n baseStyle: {\n _title: {\n fontSize: 'xs',\n textTransform: 'uppercase',\n _light: {\n color: 'text.500',\n },\n _dark: {\n color: 'text.400',\n },\n },\n p: 3,\n },\n};\nexport const MenuItem = {\n baseStyle: {\n px: 3,\n py: 2,\n _web: {\n outlineWidth: 0,\n },\n _stack: {\n alignItems: 'center',\n px: 3,\n space: 3,\n },\n _icon: {\n size: 4,\n opacity: 0,\n },\n _light: {\n _text: {\n color: 'text.900',\n },\n _disabled: {\n _text: {\n color: 'text.400',\n },\n },\n _hover: {\n bg: 'muted.200',\n },\n _focus: {\n bg: 'muted.300',\n },\n _pressed: {\n bg: 'muted.400',\n },\n\n _icon: {\n color: 'muted.500',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n },\n },\n _dark: {\n _text: {\n color: 'text.50',\n },\n _disabled: {\n _text: {\n color: 'text.600',\n },\n },\n _hover: {\n bg: 'muted.700',\n },\n _focus: {\n bg: 'muted.600',\n },\n _pressed: {\n bg: 'muted.500',\n },\n\n _icon: {\n color: 'muted.400',\n },\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n _checked: {\n _icon: {\n opacity: 1,\n },\n },\n },\n defaultProps: {},\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const Modal = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _slide: { overlay: false, duration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const ModalContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n _light: {\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n colorScheme: 'coolGray',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n },\n _light: {\n _icon: {\n color: 'muted.500',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const ModalHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalBody = {\n baseStyle: () => {\n return {\n p: '4',\n _light: {\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const ModalFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const ModalOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","import { Dimensions } from 'react-native';\n\nconst sizes = {\n xs: {\n contentSize: {\n width: '60%',\n maxWidth: '280',\n },\n },\n sm: {\n contentSize: {\n width: '65%',\n maxWidth: '320',\n },\n },\n md: {\n contentSize: {\n width: '75%',\n maxWidth: '380',\n },\n },\n lg: {\n contentSize: {\n width: '80%',\n maxWidth: '520',\n },\n },\n xl: {\n contentSize: {\n width: '90%',\n maxWidth: '580',\n },\n },\n full: {\n contentSize: {\n width: '100%',\n },\n },\n};\n\nexport const AlertDialog = {\n baseStyle: {\n width: '100%',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n _web: { pointerEvents: 'box-none' },\n _backdropFade: { exitDuration: 150, entryDuration: 200 },\n _fade: { exitDuration: 100, entryDuration: 200 },\n _slide: { duration: 200, overlay: false },\n },\n sizes,\n defaultProps: {\n size: 'md',\n closeOnOverlayClick: true,\n },\n};\n\nexport const AlertDialogContent = {\n baseStyle: () => {\n return {\n shadow: 1,\n rounded: 'lg',\n maxHeight: `${Dimensions.get('window').height - 150}px`,\n overflow: 'hidden',\n _light: {\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n color: 'text.50',\n },\n };\n },\n};\nexport const AlertDialogCloseButton = {\n baseStyle: () => {\n return {\n position: 'absolute',\n right: '3',\n top: '3',\n zIndex: '1',\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n },\n _light: {\n _icon: {\n color: 'muted.500',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n };\n },\n};\nexport const AlertDialogHeader = {\n baseStyle: () => {\n return {\n p: '4',\n borderBottomWidth: '1',\n _text: {\n fontSize: 'md',\n fontWeight: 'semibold',\n lineHeight: 'sm',\n },\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogBody = {\n baseStyle: () => {\n return {\n p: '4',\n _light: {\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n };\n },\n};\nexport const AlertDialogFooter = {\n baseStyle: () => {\n return {\n p: '4',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: '1',\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\nexport const AlertDialogOverlay = {\n baseStyle: {\n position: 'absolute',\n left: '0',\n top: '0',\n opacity: '50',\n right: '0',\n bottom: '0',\n },\n};\n","export const PopoverCloseButton = {\n baseStyle: () => ({\n position: 'absolute',\n right: 3,\n top: 3,\n zIndex: 1,\n p: '2',\n bg: 'transparent',\n borderRadius: 'sm',\n _web: {\n outlineWidth: 0,\n cursor: 'pointer',\n },\n _icon: {\n size: '4',\n },\n _light: {\n _icon: {\n color: 'muted.500',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.300',\n },\n },\n _dark: {\n _icon: {\n color: 'muted.400',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.600',\n },\n },\n }),\n};\n\nexport const PopoverBody = {\n baseStyle: () => ({\n p: '3',\n shadow: '6',\n _light: {\n bg: 'muted.50',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverContent = {\n baseStyle: () => ({\n //TODO: Box inside PopperContent is not able to resolve shadow\n // shadow: '6',\n _light: {\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n borderWidth: 1,\n rounded: 'md',\n overflow: 'hidden',\n }),\n};\n\nexport const PopoverHeader = {\n baseStyle: () => ({\n _web: {\n accessibilityRole: 'header',\n },\n p: '4',\n borderBottomWidth: '1',\n _text: {\n fontSize: 'md',\n fontWeight: '700',\n lineHeight: 'sm',\n },\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n }),\n};\n\nexport const PopoverArrow = {\n baseStyle: () => ({\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n }),\n};\n\nexport const PopoverFooter = {\n baseStyle: () => {\n return {\n p: '4',\n shadow: '6',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n flexWrap: 'wrap',\n borderTopWidth: 1,\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n },\n };\n },\n};\n","import { mode } from '../tools';\n\nconst defaultProps = {\n size: 'sm',\n step: 1,\n min: -Infinity,\n max: Infinity,\n defaultValue: '0',\n keepWithinRange: true,\n clampValueOnBlur: true,\n focusInputOnChange: true,\n getAriaValueText: true,\n};\n\nexport default {\n defaultProps,\n};\n\n//Steppers\nconst stepperbaseStyle = (props: Record) => {\n return {\n bg: mode('primary.600', 'primary.200')(props),\n iconColor: mode('gray.50', 'gray.800')(props),\n _active: {},\n _disabled: {\n // iconColor: mode('gray.50', 'gray.300')(props),\n // bg: mode('blackAlpha.200', 'whiteAlpha.300')(props),\n opacity: 0.5,\n },\n };\n};\n\nexport const NumberInputStepper = {\n baseStyle: stepperbaseStyle,\n};\n","const defaultProps = {\n placeholder: '○',\n size: 'md',\n manageFocus: true,\n space: 1,\n};\n\nconst sizes = {\n '2xl': {\n fontSize: '2xl',\n p: 3,\n width: '56px',\n height: '56px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'xl': {\n fontSize: 'xl',\n p: 3,\n width: '52px',\n height: '52px',\n textAlign: 'center',\n borderRadius: 'lg',\n },\n 'lg': {\n fontSize: 'lg',\n p: 2,\n width: '48px',\n height: '48px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'md': {\n fontSize: 'md',\n p: 2,\n width: '40px',\n height: '40px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'sm': {\n fontSize: 'sm',\n p: 1,\n width: '30px',\n height: '30px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n 'xs': {\n fontSize: 'xs',\n p: 1,\n width: '24px',\n height: '24px',\n textAlign: 'center',\n borderRadius: 'md',\n },\n};\n\nexport default {\n sizes,\n defaultProps,\n};\n","import { mode } from '../tools';\n\nconst baseStyle = (props: any) => {\n const { primary } = props.theme.colors;\n const focusRing = mode(\n {\n boxShadow: `${primary[400]} 0px 0px 0px 2px`,\n },\n {\n boxShadow: `${primary[500]} 0px 0px 0px 2px`,\n }\n )(props);\n\n return {\n _focusVisible: {\n _web: { style: { ...focusRing, outlineWidth: 0 } },\n },\n };\n};\n\nexport default {\n baseStyle,\n defaultProps: {},\n};\n","const defaultProps = {\n colorScheme: 'primary',\n size: 'sm',\n rounded: 'full',\n min: 0,\n max: 100,\n value: 0,\n isIndeterminate: false,\n};\n\nfunction baseStyle(props: Record) {\n const { colorScheme: c } = props;\n\n return {\n overflow: 'hidden',\n _filledTrack: {\n shadow: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n rounded: 'full',\n _text: {\n color: 'white',\n fontWeight: 'bold',\n },\n },\n _light: {\n bg: 'muted.200',\n _filledTrack: {\n bg: `${c}.600`,\n },\n },\n _dark: {\n bg: 'muted.700',\n _filledTrack: {\n bg: `${c}.400`,\n },\n },\n };\n}\n\nconst sizes = {\n 'xs': {\n height: 1,\n },\n 'sm': {\n height: 2,\n },\n 'md': {\n height: 3,\n },\n 'lg': {\n height: 4,\n },\n 'xl': {\n height: 5,\n },\n '2xl': {\n height: 6,\n },\n};\n\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c, theme } = props;\n const { colors } = theme;\n return {\n borderWidth: 2,\n borderRadius: 'full',\n p: 1,\n\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.400',\n\n _checked: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n _hover: {\n borderColor: `${c}.700`,\n _icon: { color: `${c}.700` },\n _disabled: {\n borderColor: `${c}.600`,\n _icon: {\n color: `${c}.600`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.800`,\n _icon: { color: `${c}.800` },\n },\n },\n\n _hover: {\n borderColor: 'muted.500',\n _disabled: {\n borderColor: 'muted.400',\n },\n },\n\n _pressed: {\n borderColor: 'muted.600',\n },\n\n _invalid: {\n borderColor: 'error.600',\n },\n },\n\n _dark: {\n bg: 'muted.900',\n borderColor: 'muted.500',\n\n _checked: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n _hover: {\n borderColor: `${c}.400`,\n _icon: { color: `${c}.400` },\n _disabled: {\n borderColor: `${c}.500`,\n _icon: {\n color: `${c}.500`,\n },\n },\n },\n _pressed: {\n borderColor: `${c}.300`,\n _icon: { color: `${c}.300` },\n },\n },\n\n _hover: {\n borderColor: 'muted.400',\n _disabled: {\n borderColor: 'muted.500',\n },\n },\n\n _pressed: {\n borderColor: 'muted.300',\n },\n\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n _stack: {\n direction: 'row',\n alignItems: 'center',\n space: 2,\n _web: {\n cursor: props.isDisabled ? 'not-allowed' : 'pointer',\n },\n },\n\n _disabled: {\n opacity: '0.6',\n _icon: {\n bg: 'transparent',\n },\n _stack: {\n opacity: '0.6',\n },\n },\n\n _focusVisible: {\n _web: {\n style: {\n outlineWidth: '2px',\n outlineColor: colors[c][400],\n outlineStyle: 'solid',\n },\n },\n },\n };\n};\n\nconst sizes = {\n lg: {\n _icon: { size: 4 },\n _text: { fontSize: 'lg' },\n },\n md: {\n _icon: { size: 3 },\n _text: { fontSize: 'md' },\n },\n sm: {\n _icon: { size: 2 },\n _text: { fontSize: 'sm' },\n },\n};\n\nconst defaultProps = {\n defaultIsChecked: false,\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n alignItems: 'flex-start',\n };\n};\n\nexport default {\n baseStyle,\n};\n","import { mode } from '../tools';\n\n// Skeleton\nexport const Skeleton = {\n baseStyle: (props: Record) => {\n return {\n startColor: mode('muted.200', 'muted.600')(props),\n endColor: 'transparent',\n overflow: 'hidden',\n fadeDuration: 0.1,\n speed: 1.0,\n h: '10',\n w: '100%',\n };\n },\n};\n\n// SkeletonText\nexport const SkeletonText = {\n baseStyle: (props: Record) => {\n return {\n startColor: mode('muted.200', 'muted.600')(props),\n endColor: 'transparent',\n fadeDuration: 0.1,\n w: '100%',\n speed: 1.0,\n flexDirection: 'column',\n _line: {\n h: 3,\n rounded: 'full',\n },\n };\n },\n defaultProps: {\n lines: 3,\n space: 3,\n },\n};\n","const defaultProps = {\n _statLabel: {\n fontSize: 'xl',\n },\n _statNumber: {\n fontSize: '4xl',\n fontWeight: 'bold',\n my: 2,\n },\n _statHelpText: {\n _text: {\n color: 'gray.500',\n fontSize: 'xl',\n },\n flexDirection: 'row',\n alignItems: 'center',\n },\n _statGroup: {\n flexWrap: 'wrap',\n space: 4,\n justifyContent: 'space-between',\n },\n};\n\nexport default {\n defaultProps,\n};\n","const baseStyle = (props: Record) => {\n const { colorScheme: c } = props;\n return {\n _disabled: {\n opacity: 0.4,\n },\n _invalid: {\n borderWidth: 2,\n borderRadius: 12,\n },\n onThumbColor: 'muted.50',\n offThumbColor: 'muted.50',\n _light: {\n offTrackColor: 'muted.300',\n onTrackColor: `${c}.600`,\n _hover: {\n offTrackColor: 'muted.400',\n onTrackColor: `${c}.700`,\n },\n _invalid: {\n borderColor: 'error.600',\n },\n },\n _dark: {\n offTrackColor: 'muted.700',\n onTrackColor: `${c}.500`,\n _hover: {\n offTrackColor: 'muted.600',\n onTrackColor: `${c}.400`,\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n };\n};\n\nconst sizes = {\n sm: {\n style: {\n transform: [{ scale: 0.75 }],\n },\n },\n md: {},\n lg: {\n style: {\n transform: [{ scale: 1.25 }],\n },\n margin: 1,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColorFormColorScheme, getColorScheme, mode } from '../tools';\n\nfunction baseStyle(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n return {\n activeTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: { fontSize: 'sm', fontWeight: 'bold' },\n },\n inactiveTabStyle: {\n justifyContent: 'center',\n alignItems: 'center',\n mb: '-2px',\n flexDirection: 'row',\n _text: {\n color: mode('gray.500', 'gray.400')(props),\n fontSize: 'sm',\n fontWeight: 'bold',\n },\n },\n activeIconProps: {\n color: activeColor,\n name: 'home',\n mx: 2,\n },\n inactiveIconProps: {\n name: 'home',\n mx: 2,\n },\n };\n}\n\nconst sizes = {\n sm: {\n activeTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'sm' },\n py: 2,\n px: 3,\n },\n },\n md: {\n activeTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'md' },\n py: 3,\n px: 4,\n },\n },\n lg: {\n activeTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n inactiveTabStyle: {\n _text: { fontSize: 'lg' },\n py: 4,\n px: 5,\n },\n },\n};\n\nfunction variantOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: {\n color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props),\n },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\nfunction variantFilled(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n },\n };\n}\n\n// function variantEnclosed(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderTopWidth: 2,\n// borderLeftWidth: 2,\n// borderRightWidth: 2,\n// borderColor: activeColor,\n// },\n// inactiveTabStyle: {\n// borderColor: 'muted.200',\n// borderBottomWidth: 2,\n// },\n// tabBarStyle: {},\n// };\n// }\n\nfunction variantFilledOutline(props: Record) {\n const activeColor = getColorFormColorScheme(props);\n let { colorScheme, status } = props;\n colorScheme = getColorScheme(\n props,\n colorScheme !== 'primary' ? colorScheme : status\n );\n return {\n activeTabStyle: {\n borderColor: activeColor,\n _text: { color: mode(`${colorScheme}.600`, `${colorScheme}.200`)(props) },\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n borderBottomWidth: 2,\n },\n inactiveTabStyle: {\n borderColor: 'transparent',\n borderBottomWidth: 2,\n _hover: {\n bg: mode(`${colorScheme}.50`, `${colorScheme}.800`)(props),\n },\n },\n tabBarStyle: {\n borderBottomWidth: 2,\n borderColor: mode('muted.200', 'muted.500')(props),\n bg: mode(`${colorScheme}.100`, `${colorScheme}.700`)(props),\n },\n };\n}\n\n// function varientSoftRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: transparentize(activeColor, 0.7)(props.theme),\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidRounded(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// borderRadius: 'full',\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\n// function varientSolidBox(props: Record) {\n// const activeColor = getColorFormColorScheme(props);\n// return {\n// activeTabStyle: {\n// bg: activeColor,\n// color: 'white',\n// },\n// inactiveTabStyle: {},\n// tabBarStyle: {},\n// };\n// }\n\nconst variants = {\n 'outline': variantOutline,\n 'filled': variantFilled,\n 'filled-outline': variantFilledOutline,\n // 'soft-rounded': varientSoftRounded,\n // 'solid-rounded': varientSolidRounded,\n // 'solid-box': varientSolidBox,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'outline',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","import Badge from './badge';\n\nconst { variants } = Badge;\nconst baseStyle = {\n _text: {\n fontWeight: 'medium',\n // lineHeight: 1.2,\n },\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n display: 'flex',\n};\nconst sizes = {\n sm: {\n minH: 5,\n minW: 5,\n _text: {\n fontSize: 'xs',\n },\n p: 1,\n borderRadius: 'sm',\n },\n md: {\n minH: 6,\n minW: 6,\n _text: {\n fontSize: 'sm',\n },\n borderRadius: 'md',\n p: 2,\n },\n lg: {\n minH: 8,\n minW: 8,\n _text: {\n fontSize: 'md',\n },\n borderRadius: 'md',\n p: 3,\n },\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'subtle',\n colorScheme: 'primary',\n};\n\nexport default {\n variants,\n baseStyle,\n sizes,\n defaultProps,\n};\n","const baseStyle = () => {\n return {\n _light: {\n color: 'text.900',\n },\n _dark: {\n color: 'text.50',\n },\n fontWeight: '400',\n fontFamily: 'body',\n fontStyle: 'normal',\n fontSize: 'sm',\n letterSpacing: 'md',\n lineHeight: 'lg',\n };\n};\nconst defaultProps = {};\n\nexport default { baseStyle, defaultProps };\n","import { mode, getColorScheme } from './../tools';\n\nconst baseStyle = (props: Record) => {\n let colorScheme = getColorScheme(props);\n return {\n bg: mode(`${colorScheme}.500`, `${colorScheme}.300`)(props),\n px: 2,\n };\n};\nconst defaultProps = {\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {\n multiline: true,\n p: '2',\n textAlignVertical: 'top',\n h: '20',\n};\n\nexport default {\n baseStyle,\n defaultProps: {\n size: 'sm',\n variant: 'outline',\n },\n};\n","import { mode } from '../tools';\n\n// TextField\nconst baseStyle = (props: Record) => {\n return {\n _errorMessageProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: 'error.400',\n },\n _helperTextProps: {\n mt: 1,\n ml: 3,\n fontSize: 'xs',\n color: mode('muted.400', 'muted.500')(props),\n },\n };\n};\n\nexport const TextField = {\n baseStyle,\n defaultProps: {\n component: 'input',\n },\n};\n","import { mode } from './../tools';\nimport { Easing } from 'react-native';\n\nconst baseStyle = (props: Record) => {\n // NOTE: Internal pseudo props like _stack, _overlay nad _presenceTransition can only be update by the theme.\n return {\n bg: mode(`muted.700`, `muted.600`)(props),\n p: '2',\n rounded: 'sm',\n shadow: 6,\n // The stack in which toast are being rendered\n _stack: {\n margin: 'auto',\n position: 'absolute',\n space: 2,\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'box-none',\n },\n _overlay: {},\n _presenceTransition: {\n animate: {\n opacity: 1,\n transition: { easing: Easing.ease, duration: 250 },\n },\n exit: {\n opacity: 0,\n scale: 0.85,\n transition: { easing: Easing.ease, duration: 100 },\n },\n },\n _title: {\n color: 'text.50',\n fontWeight: 700,\n },\n _description: {\n color: 'text.50',\n fontWeight: 400,\n },\n };\n};\n\nexport const Toast = {\n baseStyle,\n defaultProps: {},\n};\n","//Fade\n// const fadeDefaultProps = {\n// entryDuration: 500,\n// exitDuration: 500,\n// };\n\nexport const fadeBaseStyle = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: 500 } },\n exit: { opacity: 0, transition: { duration: 500 } },\n};\nexport const Fade = {\n baseStyle: fadeBaseStyle,\n};\n\n//ScaleFade\n//Can be commented if not used anywhere else\n// const scaleFadeDefaultProps = {\n// duration: 500,\n// initialScale: 0.9,\n// };\n\nconst scaleBaseStyle = {\n initial: { opacity: 0, scale: 0.9 },\n animate: { opacity: 1, scale: 1, transition: 500 },\n exit: { opacity: 0, scale: 0.9, transition: 500 },\n};\nexport const ScaleFade = {\n baseStyle: scaleBaseStyle,\n};\n\n//Slide\nconst slideDefaultProps = {\n duration: 500,\n placement: 'bottom',\n overlay: true,\n _overlay: { isOpen: true },\n};\n\nexport const Slide = {\n baseStyle: {\n h: '100%',\n pointerEvents: 'box-none',\n _overlay: { style: { overflow: 'hidden' } },\n },\n defaultProps: slideDefaultProps,\n};\n\n//SlideFade\nconst slideFadeDefaultProps = {\n duration: 500,\n offsetX: 10,\n offsetY: 10,\n};\n\nexport const SlideFade = {\n defaultProps: slideFadeDefaultProps,\n};\n","import { mode } from '../tools/colors';\n\nconst typeaheadSearchItemBaseStyle = (props: Record) => {\n return {\n backgroundColor: mode('gray.100', 'gray.600')(props),\n _focus: {\n backgroundColor: mode('primary.300', 'primary.700')(props),\n },\n _disabled: {\n backgroundColor: 'gray.200',\n },\n };\n};\n\nexport const TypeAheadSearchItem = {\n baseStyle: typeaheadSearchItemBaseStyle,\n};\n","const baseStyle = {};\nconst defaultProps = {};\n// sizes in stack means the height or width of the spacer elements that get's added between the children, in other\n// words it maps to space prop that user passes.\nconst sizes = {\n 'gutter': 0,\n '2xs': 1,\n 'xs': 2,\n 'sm': 3,\n 'md': 4,\n 'lg': 6,\n 'xl': 7,\n '2xl': 8,\n};\nexport default {\n baseStyle,\n defaultProps,\n sizes,\n};\n","const sizes = {\n 'xs': {\n height: 10,\n width: 10,\n },\n 'sm': {\n height: 12,\n width: 12,\n },\n 'md': {\n height: 16,\n width: 16,\n },\n 'lg': {\n height: 24,\n width: 24,\n },\n 'xl': {\n height: 32,\n width: 32,\n },\n '2xl': {\n height: 40,\n width: 40,\n },\n};\n\nconst baseStyle = {\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nexport default {\n baseStyle,\n sizes,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","const baseStyle = {};\nconst defaultProps = {};\nexport default {\n baseStyle,\n defaultProps,\n};\n","export const SliderTrack = {\n baseStyle: ({ isVertical, size }: any) => {\n return {\n borderRadius: 'lg',\n overflow: 'hidden',\n style: {\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n },\n _pressable: {\n alignItems: 'center',\n justifyContent: 'center',\n height: isVertical ? '100%' : size,\n width: !isVertical ? '100%' : size,\n py: !isVertical ? '3' : undefined,\n px: isVertical ? '3' : undefined,\n },\n _light: {\n bg: 'muted.200',\n },\n _dark: {\n bg: 'muted.700',\n },\n };\n },\n};\n\nexport const SliderThumb = {\n baseStyle: (props: any) => {\n const { colorScheme } = props;\n const { primary } = props.theme.colors;\n return {\n borderRadius: 'full',\n zIndex: 999,\n alignItems: 'center',\n justifyContent: 'center',\n scaleOnPressed: 1,\n _interactionBox: {\n position: 'absolute',\n borderRadius: 'full',\n zIndex: -1,\n },\n _stack: {\n direction: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n space: 2,\n },\n _light: {\n bg: `${colorScheme}.600`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[300],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.300`,\n },\n },\n },\n _dark: {\n bg: `${colorScheme}.500`,\n _hover: {\n _web: {\n outlineWidth: '4px',\n outlineColor: primary[800],\n outlineStyle: 'solid',\n },\n },\n _focus: {\n _web: {\n outlineWidth: '2px',\n outlineColor: primary[400],\n outlineStyle: 'solid',\n },\n },\n _pressed: {\n _interactionBox: {\n borderWidth: '8',\n borderColor: `${colorScheme}.800`,\n },\n },\n },\n // shadow: 6,\n _web: {\n cursor: 'pointer',\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n sizes: {\n lg: {\n _interactionBox: '3',\n },\n md: {\n _interactionBox: '2',\n },\n sm: {\n _interactionBox: '2.5',\n },\n },\n};\n\nexport const SliderFilledTrack = {\n baseStyle: ({\n orientation,\n isReversed,\n sliderTrackPosition,\n size,\n colorScheme,\n }: any) => {\n return {\n left: orientation !== 'vertical' && !isReversed ? 0 : undefined,\n bottom: orientation === 'vertical' && !isReversed ? 0 : undefined,\n right: orientation !== 'vertical' && isReversed ? 0 : undefined,\n top: orientation === 'vertical' && isReversed ? 0 : undefined,\n style:\n orientation === 'vertical'\n ? { height: sliderTrackPosition, width: size }\n : { width: sliderTrackPosition, height: size },\n _light: {\n bg: `${colorScheme}.600`,\n },\n _dark: {\n bg: `${colorScheme}.500`,\n },\n };\n },\n defaultProps: {\n colorScheme: 'primary',\n },\n};\n\nconst sizes = {\n lg: { thumbSize: 6, sliderTrackHeight: 6, _interactionBox: { p: '3' } },\n md: { thumbSize: 5, sliderTrackHeight: 5, _interactionBox: { p: '2.5' } },\n sm: { thumbSize: 4, sliderTrackHeight: 4, _interactionBox: { p: '2' } },\n};\n\nexport const Slider = {\n baseStyle: (props: any) => {\n return {\n alignItems: 'center',\n justifyContent: 'center',\n height: props.orientation === 'vertical' ? '100%' : undefined,\n width: props.orientation !== 'vertical' ? '100%' : undefined,\n _disabled: {\n opacity: 0.4,\n _web: {\n cursor: 'not-allowed',\n },\n },\n };\n },\n defaultProps: {\n size: 'sm',\n },\n sizes,\n};\n","// Actionsheet\nexport const Actionsheet = {\n defaultProps: {\n size: 'full',\n justifyContent: 'flex-end',\n animationPreset: 'slide',\n },\n};\n\n// ActionsheetContent\nexport const ActionsheetContent = {\n baseStyle: () => ({\n alignItems: 'center',\n px: 2,\n py: 2,\n borderRadius: 'none',\n roundedTop: 20,\n _light: {\n _dragIndicator: {\n bg: 'muted.500',\n },\n },\n _dark: {\n _dragIndicator: {\n bg: 'muted.400',\n },\n },\n _dragIndicator: {\n height: 1,\n width: 10,\n borderRadius: 2,\n },\n _dragIndicatorWrapper: {\n pt: 3,\n pb: 3,\n mt: -2,\n width: '100%',\n alignItems: 'center',\n collapsable: false,\n },\n _dragIndicatorWrapperOffSet: {\n py: 2,\n collapsable: false,\n },\n }),\n};\n\n// ActionsheetItem\nexport const ActionsheetItem = {\n baseStyle: () => ({\n width: '100%',\n justifyContent: 'flex-start',\n _stack: {\n space: 4,\n },\n p: 4,\n _text: {\n fontSize: 'md',\n fontWeight: 'normal',\n },\n _disabled: {\n opacity: 40,\n },\n _light: {\n bg: 'muted.50',\n _icon: {\n color: 'muted.500',\n },\n _text: {\n color: 'text.900',\n },\n _hover: {\n bg: 'muted.200',\n },\n _pressed: {\n bg: 'muted.400',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.300',\n },\n bg: 'muted.300',\n },\n },\n _dark: {\n bg: 'muted.800',\n _icon: {\n color: 'muted.400',\n },\n _text: {\n color: 'muted.50',\n },\n _hover: {\n bg: 'muted.700',\n },\n _pressed: {\n bg: 'muted.500',\n },\n _focusVisible: {\n _web: {\n outlineWidth: '0',\n style: { boxShadow: `none` },\n bg: 'muted.600',\n },\n },\n },\n }),\n};\n","const placementProps: any = {\n 'top-right': { top: 4, right: 4, position: 'absolute' },\n 'top-left': { top: 4, left: 4, position: 'absolute' },\n 'bottom-right': { bottom: 4, right: 4, position: 'absolute' },\n 'bottom-left': { bottom: 4, left: 4, position: 'absolute' },\n};\nconst baseStyle = {\n shadow: 7,\n rounded: 'full',\n zIndex: 20,\n placementProps,\n px: 4,\n py: 4,\n};\nconst defaultProps = {\n renderInPortal: true,\n variant: 'solid',\n colorScheme: 'primary',\n placement: 'bottom-right',\n};\n\nexport default { baseStyle, defaultProps };\n","export const Flex = {\n baseStyle: {\n display: 'flex',\n flexDirection: 'column',\n },\n};\n\nexport const Spacer = {\n baseStyle: {\n flexGrow: 1,\n },\n};\n","// FormControl\nexport const FormControl = {\n baseStyle: {\n width: '100%',\n },\n};\n\n// FormControlErrorMessage\nexport const FormControlErrorMessage = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n },\n _stack: { space: 1, alignItems: 'center' },\n _light: {\n _text: {\n color: 'error.600',\n },\n },\n _dark: {\n _text: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlLabel\nexport const FormControlLabel = {\n baseStyle: () => {\n return {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n _text: {\n fontSize: 'sm',\n fontWeight: 'medium',\n },\n my: '1',\n _light: {\n _text: {\n color: 'text.500',\n },\n _astrick: {\n color: 'error.600',\n },\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n _astrick: {\n color: 'error.500',\n },\n },\n };\n },\n};\n\n// FormControlHelperText\nexport const FormControlHelperText = {\n baseStyle: () => {\n return {\n mt: '2',\n _text: {\n fontSize: 'xs',\n },\n _light: {\n _text: {\n color: 'text.500',\n },\n },\n _dark: {\n _text: {\n color: 'text.400',\n },\n },\n };\n },\n};\n","const baseStyle = () => {\n return {\n // roundedLeft: '4',\n p: '2',\n borderWidth: '1',\n borderRightWidth: '0',\n borderLeftRadius: 'sm',\n _text: {\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","const baseStyle = () => {\n return {\n // roundedRight: '4',\n p: '2',\n borderWidth: '1',\n borderLeftWidth: '0',\n borderRightRadius: 'sm',\n _text: {\n fontWeight: 400,\n },\n alignItems: 'center',\n justifyContent: 'center',\n _light: {\n bg: 'muted.50',\n borderColor: 'muted.300',\n _text: {\n color: 'text.900',\n },\n },\n _dark: {\n bg: 'muted.800',\n borderColor: 'muted.700',\n _text: {\n color: 'text.50',\n },\n },\n };\n};\n\nexport default { baseStyle };\n","import { mode } from '../tools';\n// List\nexport const List = {\n baseStyle: (props: Record) => {\n return {\n py: 2,\n borderWidth: 1,\n borderColor: 'gray.300',\n _hover: { bg: mode('primary.100', 'primary.700')(props) },\n };\n },\n};\n\n// ListItem\nexport const ListItem = {\n baseStyle: {\n // borderTopWidth: 1,\n py: 2,\n borderColor: 'gray.300',\n },\n defaultProps: {\n start: 1,\n },\n};\n\n// ListIcon\nexport const ListIcon = {\n baseStyle: {\n mr: 8,\n size: 'md',\n },\n};\n","export const Select = {\n baseStyle: () => {\n return {\n _light: {\n customDropdownIconProps: { color: 'muted.500', mr: '3' },\n _hover: {\n borderColor: 'primary.600',\n },\n _focus: {\n borderColor: 'primary.600',\n // bg: transparentize('primary.600', 0.1)(theme),\n },\n _disabled: {\n bg: 'muted.100',\n placeholderTextColor: 'muted.700',\n },\n _invalid: {\n borderColor: 'error.600',\n },\n },\n\n _dark: {\n customDropdownIconProps: { color: 'muted.400', mr: '3' },\n _hover: {\n borderColor: 'primary.500',\n },\n _focus: {\n borderColor: 'primary.500',\n // bg: transparentize('primary.500', 0.1)(theme),\n },\n _disabled: {\n bg: 'muted.800',\n placeholderTextColor: 'text.50',\n },\n _invalid: {\n borderColor: 'error.500',\n },\n },\n\n customDropdownIconProps: {\n size: '6',\n p: '1',\n },\n _webSelect: {\n style: {\n appearance: 'none',\n WebkitAppearance: 'none',\n MozAppearance: 'none',\n position: 'absolute',\n width: '100%',\n height: '100%',\n opacity: 0,\n zIndex: 1,\n },\n },\n _web: {\n pointerEvents: 'none',\n },\n _disabled: {\n opacity: '80',\n },\n _actionSheetBody: {\n w: '100%',\n },\n _actionSheetContent: {},\n };\n },\n defaultProps: {\n optimized: true,\n },\n};\n\n// SelectIcon - only for custom variant\nexport const SelectItem = {\n baseStyle: {\n p: '1',\n px: '2',\n borderRadius: '0',\n minH: '0',\n },\n};\n","export default {\n baseStyle: {\n color: 'primary.600',\n },\n sizes: {\n sm: 'small',\n lg: 'large',\n },\n defaultProps: {\n size: 'small',\n },\n};\n","// Wrap\nexport const Wrap = {};\n","import React, { RefObject } from 'react';\n\nconst ariaToAccessibilityMap: any = {\n 'aria-activedescendant': 'accessibilityActiveDescendant',\n 'aria-atomic': 'accessibilityAtomic',\n 'aria-autocomplete': 'accessibilityAutoComplete',\n 'aria-busy': 'accessibilityBusy',\n 'aria-checked': 'accessibilityChecked',\n 'aria-colcount': 'accessibilityColumnCount',\n 'aria-colindex': 'accessibilityColumnIndex',\n 'aria-colspan': 'accessibilityColumnSpan',\n 'aria-controls': 'accessibilityControls',\n 'aria-describedby': 'accessibilityDescribedBy',\n 'aria-details': 'accessibilityDetails',\n 'aria-disabled': 'accessibilityDisabled',\n 'aria-errormessage': 'accessibilityErrorMessage',\n 'aria-expanded': 'accessibilityExpanded',\n 'aria-flowto': 'accessibilityFlowTo',\n 'aria-haspopup': 'accessibilityHasPopup',\n 'aria-hidden': 'accessibilityHidden',\n 'aria-invalid': 'accessibilityInvalid',\n 'aria-keyshortcuts': 'accessibilityKeyShortcuts',\n 'aria-label': 'accessibilityLabel',\n 'aria-labelledby': 'accessibilityLabelledBy',\n 'aria-live': 'accessibilityLiveRegion',\n 'aria-modal': 'accessibilityModal',\n 'aria-multiline': 'accessibilityMultiline',\n 'aria-multiselectable': 'accessibilityMultiSelectable',\n 'aria-orientation': 'accessibilityOrientation',\n 'aria-owns': 'accessibilityOwns',\n 'aria-placeholder': 'accessibilityPlaceholder',\n 'aria-posinset': 'accessibilityPosInSet',\n 'aria-pressed': 'accessibilityPressed',\n 'aria-readonly': 'accessibilityReadOnly',\n 'aria-required': 'accessibilityRequired',\n 'aria-roledescription': 'accessibilityRoleDescription',\n 'aria-rowcount': 'accessibilityRowCount',\n 'aria-rowindex': 'accessibilityRowIndex',\n 'aria-rowspan': 'accessibilityRowSpan',\n 'aria-selected': 'accessibilitySelected',\n 'aria-setsize': 'accessibilitySetSize',\n 'aria-sort': 'accessibilitySort',\n 'aria-valuemax': 'accessibilityValueMax',\n 'aria-valuemin': 'accessibilityValueMin',\n 'aria-valuenow': 'accessibilityValueNow',\n 'aria-valuetext': 'accessibilityValueText',\n};\n\n// Refer - https://necolas.github.io/react-native-web/docs/accessibility/\nexport const mapDomPropsToRN = (props: any) => {\n let newProps: any = { ...props };\n\n if (props.tabIndex === '0' || props.tabIndex === 0) {\n newProps.focusable = true;\n }\n // use the below hook for tabIndex\n // useMapDomPropsToRN\n // if (props.tabIndex === '-1' || props.tabIndex === -1) {\n // newProps.focusable = false;\n // }\n\n if (props.role) {\n newProps.accessibilityRole = props.role;\n }\n\n if (props.id) {\n newProps.nativeID = props.id;\n }\n\n for (let key in props) {\n // Map aria to RN web accessibility equivalents\n if (key.indexOf('aria') > -1) {\n if (ariaToAccessibilityMap[key]) {\n newProps[ariaToAccessibilityMap[key]] = props[key];\n } else {\n console.warn(\n '@react-native-aria/utils:: ',\n 'No equivalent mapping of ' +\n key +\n ' found in ariaToAccessibilityMap. Please raise a PR to support this attribute.'\n );\n }\n } else if (key.indexOf('data-') > -1) {\n if (!newProps.dataSet) {\n newProps.dataSet = {};\n }\n\n newProps.dataSet[key.split('data-')[1]] = props[key];\n }\n }\n\n return newProps;\n};\n\n// RN web currently doesn't allow setting tabIndex via props, so need to be set using setNativeProps or ref\n// https://github.com/necolas/react-native-web/issues/1916\n// https://github.com/necolas/react-native-web/issues/1099\nexport const useMapDomPropsToRN = (props: any, ref: RefObject) => {\n React.useEffect(() => {\n if (ref.current) {\n ref.current.tabIndex = props.tabIndex;\n }\n }, [props.tabIndex]);\n\n return mapDomPropsToRN(props);\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 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}","/*! Hammer.JS - v2.0.17-rc - 2019-12-16\n * http://naver.github.io/egjs\n *\n * Forked By Naver egjs\n * Copyright (c) hammerjs\n * Licensed under the MIT license */\nfunction _extends() {\n _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 };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _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\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\n\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\nvar assign$1 = assign;\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = typeof document === \"undefined\" ? {\n style: {}\n} : document.createElement('div');\nvar TYPE_FUNCTION = 'function';\nvar round = Math.round,\n abs = Math.abs;\nvar now = Date.now;\n\n/**\n * @private\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n\nfunction prefixed(obj, property) {\n var prefix;\n var prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n\n i++;\n }\n\n return undefined;\n}\n\n/* eslint-disable no-new-func, no-nested-ternary */\nvar win;\n\nif (typeof window === \"undefined\") {\n // window is undefined in node.js\n win = {};\n} else {\n win = window;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n\n var touchMap = {};\n var cssSupports = win.CSS && win.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n return touchMap[val] = cssSupports ? win.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\nvar SUPPORT_TOUCH = 'ontouchstart' in win;\nvar SUPPORT_POINTER_EVENTS = prefixed(win, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\nvar COMPUTE_INTERVAL = 25;\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * @private\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * @private\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n\nfunction boolOrFn(val, args) {\n if (typeof val === TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n\n return val;\n}\n\n/**\n * @private\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * @private\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n } // pan-x OR pan-y\n\n\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n } // manipulation\n\n\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\n/**\n * @private\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n\nvar TouchAction =\n/*#__PURE__*/\nfunction () {\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n /**\n * @private\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n\n\n var _proto = TouchAction.prototype;\n\n _proto.set = function set(value) {\n // find out the touch-action by the event handlers\n if (value === TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n\n this.actions = value.toLowerCase().trim();\n };\n /**\n * @private\n * just re-set the touchAction value\n */\n\n\n _proto.update = function update() {\n this.set(this.manager.options.touchAction);\n };\n /**\n * @private\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n\n\n _proto.compute = function compute() {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n };\n /**\n * @private\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n\n\n _proto.preventDefaults = function preventDefaults(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection; // if the touch action did prevented once this session\n\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n // do not prevent defaults if this is a tap gesture\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n };\n /**\n * @private\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n\n\n _proto.preventSrc = function preventSrc(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n };\n\n return TouchAction;\n}();\n\n/**\n * @private\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}\n\n/**\n * @private\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n\nfunction getCenter(pointers) {\n var pointersLength = pointers.length; // no need to loop when only one touch\n\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0;\n var y = 0;\n var i = 0;\n\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * @private\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * @private\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n}\n\n/**\n * @private\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n\n var x = p2[props[0]] - p1[props[0]];\n var y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * @private\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center; // let { offsetDelta:offset = {}, prevDelta = {}, prevInput = {} } = session;\n // jscs throwing error on defalut destructured values and without defaults tests fail\n\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * @private\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * @private\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * @private\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input;\n var deltaTime = input.timeStamp - last.timeStamp;\n var velocity;\n var velocityX;\n var velocityY;\n var direction;\n\n if (input.eventType !== INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n* @private\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length; // store the first input to calculate the distance and direction\n\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n } // to compute scale and rotation we need to store the multiple touches\n\n\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput,\n firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input); // find the correct target\n\n var target = manager.element;\n var srcEvent = input.srcEvent;\n var srcEventTarget;\n\n if (srcEvent.composedPath) {\n srcEventTarget = srcEvent.composedPath()[0];\n } else if (srcEvent.path) {\n srcEventTarget = srcEvent.path[0];\n } else {\n srcEventTarget = srcEvent.target;\n }\n\n if (hasParent(srcEventTarget, target)) {\n target = srcEventTarget;\n }\n\n input.target = target;\n}\n\n/**\n * @private\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n } // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n\n\n input.eventType = eventType; // compute scale, rotation etc\n\n computeInputData(manager, input); // emit secret event\n\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * @private\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * @private\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * @private\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n}\n\n/**\n * @private\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n\nvar Input =\n/*#__PURE__*/\nfunction () {\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget; // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n }\n /**\n * @private\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n\n\n var _proto = Input.prototype;\n\n _proto.handler = function handler() {};\n /**\n * @private\n * bind the events\n */\n\n\n _proto.init = function init() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n /**\n * @private\n * unbind the events\n */\n\n\n _proto.destroy = function destroy() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n };\n\n return Input;\n}();\n\n/**\n * @private\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n // do not use === here, test fails\n return i;\n }\n\n i++;\n }\n\n return -1;\n }\n}\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n}; // in IE10 the pointer types is defined as an enum\n\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n\n};\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; // IE10 has prefixed support, and case-sensitive\n\nif (win.MSPointerEvent && !win.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n/**\n * @private\n * Pointer events input\n * @constructor\n * @extends Input\n */\n\n\nvar PointerEventInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(PointerEventInput, _Input);\n\n function PointerEventInput() {\n var _this;\n\n var proto = PointerEventInput.prototype;\n proto.evEl = POINTER_ELEMENT_EVENTS;\n proto.evWin = POINTER_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.store = _this.manager.session.pointerEvents = [];\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = PointerEventInput.prototype;\n\n _proto.handler = function handler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType === INPUT_TYPE_TOUCH; // get index of the event in the store\n\n var storeIndex = inArray(store, ev.pointerId, 'pointerId'); // start and mouse must be down\n\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n } // it not found, so the pointer hasn't been down (so it's probably a hover)\n\n\n if (storeIndex < 0) {\n return;\n } // update the event in the store\n\n\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n };\n\n return PointerEventInput;\n}(Input);\n\n/**\n * @private\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * @private\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function (a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n\nvar TouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(TouchInput, _Input);\n\n function TouchInput() {\n var _this;\n\n TouchInput.prototype.evTarget = TOUCH_TARGET_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.targetIds = {}; // this.evTarget = TOUCH_TARGET_EVENTS;\n\n return _this;\n }\n\n var _proto = TouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return TouchInput;\n}(Input);\n\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds; // when there is only one touch, the process can be simplified\n\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i;\n var targetTouches;\n var changedTouches = toArray(ev.changedTouches);\n var changedTargetTouches = [];\n var target = this.target; // get target touches from touches\n\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n }); // collect touches\n\n if (type === INPUT_START) {\n i = 0;\n\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n } // filter changed touches to only contain touches that exist in the collected target ids\n\n\n i = 0;\n\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n } // cleanup removed touches\n\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [// merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n/**\n * @private\n * Mouse events input\n * @constructor\n * @extends Input\n */\n\nvar MouseInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(MouseInput, _Input);\n\n function MouseInput() {\n var _this;\n\n var proto = MouseInput.prototype;\n proto.evEl = MOUSE_ELEMENT_EVENTS;\n proto.evWin = MOUSE_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.pressed = false; // mousedown state\n\n return _this;\n }\n /**\n * @private\n * handle mouse events\n * @param {Object} ev\n */\n\n\n var _proto = MouseInput.prototype;\n\n _proto.handler = function handler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type]; // on start we want to have the left mouse button down\n\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n } // mouse must be down\n\n\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n };\n\n return MouseInput;\n}(Input);\n\n/**\n * @private\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction setLastTouch(eventData) {\n var _eventData$changedPoi = eventData.changedPointers,\n touch = _eventData$changedPoi[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n var lts = this.lastTouches;\n this.lastTouches.push(lastTouch);\n\n var removeLastTouch = function removeLastTouch() {\n var i = lts.indexOf(lastTouch);\n\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX;\n var y = eventData.srcEvent.clientY;\n\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x);\n var dy = Math.abs(y - t.y);\n\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n\n return false;\n}\n\nvar TouchMouseInput =\n/*#__PURE__*/\nfunction () {\n var TouchMouseInput =\n /*#__PURE__*/\n function (_Input) {\n _inheritsLoose(TouchMouseInput, _Input);\n\n function TouchMouseInput(_manager, callback) {\n var _this;\n\n _this = _Input.call(this, _manager, callback) || this;\n\n _this.handler = function (manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType === INPUT_TYPE_TOUCH;\n var isMouse = inputData.pointerType === INPUT_TYPE_MOUSE;\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n } // when we're in a touch event, record touches to de-dupe synthetic mouse event\n\n\n if (isTouch) {\n recordTouches.call(_assertThisInitialized(_assertThisInitialized(_this)), inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(_assertThisInitialized(_assertThisInitialized(_this)), inputData)) {\n return;\n }\n\n _this.callback(manager, inputEvent, inputData);\n };\n\n _this.touch = new TouchInput(_this.manager, _this.handler);\n _this.mouse = new MouseInput(_this.manager, _this.handler);\n _this.primaryTouch = null;\n _this.lastTouches = [];\n return _this;\n }\n /**\n * @private\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n\n\n var _proto = TouchMouseInput.prototype;\n\n /**\n * @private\n * remove the event listeners\n */\n _proto.destroy = function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n };\n\n return TouchMouseInput;\n }(Input);\n\n return TouchMouseInput;\n}();\n\n/**\n * @private\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n\nfunction createInputInstance(manager) {\n var Type; // let inputClass = manager.options.inputClass;\n\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n\n return new Type(manager, inputHandler);\n}\n\n/**\n * @private\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n\n return false;\n}\n\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * @private\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * @private\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n\n if (manager) {\n return manager.get(otherRecognizer);\n }\n\n return otherRecognizer;\n}\n\n/**\n * @private\n * get a usable string, used as event postfix\n * @param {constant} state\n * @returns {String} state\n */\n\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n\n return '';\n}\n\n/**\n * @private\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n\n/**\n * @private\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n\nvar Recognizer =\n/*#__PURE__*/\nfunction () {\n function Recognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = _extends({\n enable: true\n }, options);\n this.id = uniqueId();\n this.manager = null; // default is enable true\n\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n\n\n var _proto = Recognizer.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // also update the touchAction, in case something changed about the directions/enabled state\n\n this.manager && this.manager.touchAction.update();\n return this;\n };\n /**\n * @private\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.recognizeWith = function recognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRecognizeWith = function dropRecognizeWith(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n };\n /**\n * @private\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.requireFailure = function requireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n\n return this;\n };\n /**\n * @private\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n\n\n _proto.dropRequireFailure = function dropRequireFailure(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n\n return this;\n };\n /**\n * @private\n * has require failures boolean\n * @returns {boolean}\n */\n\n\n _proto.hasRequireFailures = function hasRequireFailures() {\n return this.requireFail.length > 0;\n };\n /**\n * @private\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n\n\n _proto.canRecognizeWith = function canRecognizeWith(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n };\n /**\n * @private\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n\n\n _proto.emit = function emit(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n } // 'panstart' and 'panmove'\n\n\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n } // panend and pancancel\n\n\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n };\n /**\n * @private\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n\n\n _proto.tryEmit = function tryEmit(input) {\n if (this.canEmit()) {\n return this.emit(input);\n } // it's failing anyway\n\n\n this.state = STATE_FAILED;\n };\n /**\n * @private\n * can we emit?\n * @returns {boolean}\n */\n\n\n _proto.canEmit = function canEmit() {\n var i = 0;\n\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n\n i++;\n }\n\n return true;\n };\n /**\n * @private\n * update the recognizer\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign$1({}, inputData); // is is enabled and allow recognizing?\n\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n } // reset when we've reached the end\n\n\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone); // the recognizer has recognized a gesture\n // so trigger an event\n\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n };\n /**\n * @private\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {constant} STATE\n */\n\n /* jshint ignore:start */\n\n\n _proto.process = function process(inputData) {};\n /* jshint ignore:end */\n\n /**\n * @private\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n\n\n _proto.getTouchAction = function getTouchAction() {};\n /**\n * @private\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n\n\n _proto.reset = function reset() {};\n\n return Recognizer;\n}();\n\n/**\n * @private\n * A tap is recognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n\nvar TapRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(TapRecognizer, _Recognizer);\n\n function TapRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10\n }, options)) || this; // previous time and center,\n // used for tap counting\n\n _this.pTime = false;\n _this.pCenter = false;\n _this._timer = null;\n _this._input = null;\n _this.count = 0;\n return _this;\n }\n\n var _proto = TapRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_MANIPULATION];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n } // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType !== INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input; // if tap count matches we have recognized it,\n // else it has began recognizing...\n\n var tapCount = this.count % options.taps;\n\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.interval);\n return STATE_BEGAN;\n }\n }\n }\n\n return STATE_FAILED;\n };\n\n _proto.failTimeout = function failTimeout() {\n var _this3 = this;\n\n this._timer = setTimeout(function () {\n _this3.state = STATE_FAILED;\n }, this.options.interval);\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit() {\n if (this.state === STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return TapRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n\nvar AttrRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(AttrRecognizer, _Recognizer);\n\n function AttrRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _Recognizer.call(this, _extends({\n pointers: 1\n }, options)) || this;\n }\n /**\n * @private\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n\n\n var _proto = AttrRecognizer.prototype;\n\n _proto.attrTest = function attrTest(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n };\n /**\n * @private\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n\n\n _proto.process = function process(input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input); // on cancel input and we've recognized before, return STATE_CANCELLED\n\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n\n return state | STATE_CHANGED;\n }\n\n return STATE_FAILED;\n };\n\n return AttrRecognizer;\n}(Recognizer);\n\n/**\n * @private\n * direction cons to string\n * @param {constant} direction\n * @returns {String}\n */\n\nfunction directionStr(direction) {\n if (direction === DIRECTION_DOWN) {\n return 'down';\n } else if (direction === DIRECTION_UP) {\n return 'up';\n } else if (direction === DIRECTION_LEFT) {\n return 'left';\n } else if (direction === DIRECTION_RIGHT) {\n return 'right';\n }\n\n return '';\n}\n\n/**\n * @private\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PanRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PanRecognizer, _AttrRecognizer);\n\n function PanRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _AttrRecognizer.call(this, _extends({\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n }, options)) || this;\n _this.pX = null;\n _this.pY = null;\n return _this;\n }\n\n var _proto = PanRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n var direction = this.options.direction;\n var actions = [];\n\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n\n return actions;\n };\n\n _proto.directionTest = function directionTest(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY; // lock to axis?\n\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x !== this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y !== this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n };\n\n _proto.attrTest = function attrTest(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && ( // replace with a super call\n this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n };\n\n _proto.emit = function emit(input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PanRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar SwipeRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(SwipeRecognizer, _AttrRecognizer);\n\n function SwipeRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n }, options)) || this;\n }\n\n var _proto = SwipeRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n };\n\n _proto.attrTest = function attrTest(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return _AttrRecognizer.prototype.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers === this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n };\n\n _proto.emit = function emit(input) {\n var direction = directionStr(input.offsetDirection);\n\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n };\n\n return SwipeRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar PinchRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(PinchRecognizer, _AttrRecognizer);\n\n function PinchRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'pinch',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = PinchRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n _proto.emit = function emit(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n\n _AttrRecognizer.prototype.emit.call(this, input);\n };\n\n return PinchRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n\nvar RotateRecognizer =\n/*#__PURE__*/\nfunction (_AttrRecognizer) {\n _inheritsLoose(RotateRecognizer, _AttrRecognizer);\n\n function RotateRecognizer(options) {\n if (options === void 0) {\n options = {};\n }\n\n return _AttrRecognizer.call(this, _extends({\n event: 'rotate',\n threshold: 0,\n pointers: 2\n }, options)) || this;\n }\n\n var _proto = RotateRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_NONE];\n };\n\n _proto.attrTest = function attrTest(input) {\n return _AttrRecognizer.prototype.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n };\n\n return RotateRecognizer;\n}(AttrRecognizer);\n\n/**\n * @private\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n\nvar PressRecognizer =\n/*#__PURE__*/\nfunction (_Recognizer) {\n _inheritsLoose(PressRecognizer, _Recognizer);\n\n function PressRecognizer(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _Recognizer.call(this, _extends({\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9\n }, options)) || this;\n _this._timer = null;\n _this._input = null;\n return _this;\n }\n\n var _proto = PressRecognizer.prototype;\n\n _proto.getTouchAction = function getTouchAction() {\n return [TOUCH_ACTION_AUTO];\n };\n\n _proto.process = function process(input) {\n var _this2 = this;\n\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input; // we only allow little movement\n // and we've reached an end event, so a tap is possible\n\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeout(function () {\n _this2.state = STATE_RECOGNIZED;\n\n _this2.tryEmit();\n }, options.time);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n\n return STATE_FAILED;\n };\n\n _proto.reset = function reset() {\n clearTimeout(this._timer);\n };\n\n _proto.emit = function emit(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + \"up\", input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n };\n\n return PressRecognizer;\n}(Recognizer);\n\nvar defaults = {\n /**\n * @private\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * @private\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @private\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * @private\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * @private\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * @private\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * @private\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: \"none\",\n\n /**\n * @private\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: \"none\",\n\n /**\n * @private\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: \"none\",\n\n /**\n * @private\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: \"none\",\n\n /**\n * @private\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: \"none\",\n\n /**\n * @private\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: \"rgba(0,0,0,0)\"\n }\n};\n/**\n * @private\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * This is separated with other defaults because of tree-shaking.\n * @type {Array}\n */\n\nvar preset = [[RotateRecognizer, {\n enable: false\n}], [PinchRecognizer, {\n enable: false\n}, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n}, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n}, ['tap']], [PressRecognizer]];\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n/**\n * @private\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n\n if (!element.style) {\n return;\n }\n\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || \"\";\n }\n });\n\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n/**\n * @private\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n\n\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent(\"Event\");\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n/**\n* @private\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\n\nvar Manager =\n/*#__PURE__*/\nfunction () {\n function Manager(element, options) {\n var _this = this;\n\n this.options = assign$1({}, defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = _this.add(new item[0](item[1]));\n\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n /**\n * @private\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n\n\n var _proto = Manager.prototype;\n\n _proto.set = function set(options) {\n assign$1(this.options, options); // Options that need a little more setup\n\n if (options.touchAction) {\n this.touchAction.update();\n }\n\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n\n return this;\n };\n /**\n * @private\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n\n\n _proto.stop = function stop(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n };\n /**\n * @private\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n\n\n _proto.recognize = function recognize(inputData) {\n var session = this.session;\n\n if (session.stopped) {\n return;\n } // run the touch-action polyfill\n\n\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers; // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n\n var curRecognizer = session.curRecognizer; // reset when the last recognizer is recognized\n // or when we're in a new session\n\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n session.curRecognizer = null;\n curRecognizer = null;\n }\n\n var i = 0;\n\n while (i < recognizers.length) {\n recognizer = recognizers[i]; // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer === curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n } // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n\n\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n session.curRecognizer = recognizer;\n curRecognizer = recognizer;\n }\n\n i++;\n }\n };\n /**\n * @private\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n\n\n _proto.get = function get(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event === recognizer) {\n return recognizers[i];\n }\n }\n\n return null;\n };\n /**\n * @private add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n\n\n _proto.add = function add(recognizer) {\n if (invokeArrayArg(recognizer, \"add\", this)) {\n return this;\n } // remove existing\n\n\n var existing = this.get(recognizer.options.event);\n\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n };\n /**\n * @private\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n\n\n _proto.remove = function remove(recognizer) {\n if (invokeArrayArg(recognizer, \"remove\", this)) {\n return this;\n }\n\n var targetRecognizer = this.get(recognizer); // let's make sure this recognizer exists\n\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, targetRecognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n };\n /**\n * @private\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n\n\n _proto.on = function on(events, handler) {\n if (events === undefined || handler === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n };\n /**\n * @private unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n\n\n _proto.off = function off(events, handler) {\n if (events === undefined) {\n return this;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n };\n /**\n * @private emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n\n\n _proto.emit = function emit(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n } // no handlers, so skip it all\n\n\n var handlers = this.handlers[event] && this.handlers[event].slice();\n\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n };\n /**\n * @private\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n\n\n _proto.destroy = function destroy() {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n };\n\n return Manager;\n}();\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n/**\n * @private\n * Touch events input\n * @constructor\n * @extends Input\n */\n\nvar SingleTouchInput =\n/*#__PURE__*/\nfunction (_Input) {\n _inheritsLoose(SingleTouchInput, _Input);\n\n function SingleTouchInput() {\n var _this;\n\n var proto = SingleTouchInput.prototype;\n proto.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n proto.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n _this = _Input.apply(this, arguments) || this;\n _this.started = false;\n return _this;\n }\n\n var _proto = SingleTouchInput.prototype;\n\n _proto.handler = function handler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; // should we handle the touch events?\n\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type); // when done, reset the started state\n\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n };\n\n return SingleTouchInput;\n}(Input);\n\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\n/**\n * @private\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = \"DEPRECATED METHOD: \" + name + \"\\n\" + message + \" AT \\n\";\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n\n return method.apply(this, arguments);\n };\n}\n\n/**\n * @private\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n\nvar extend = deprecate(function (dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n\n i++;\n }\n\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * @private\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n\nvar merge = deprecate(function (dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * @private\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n\nfunction inherit(child, base, properties) {\n var baseP = base.prototype;\n var childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign$1(childP, properties);\n }\n}\n\n/**\n * @private\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * @private\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n\nvar Hammer =\n/*#__PURE__*/\nfunction () {\n var Hammer =\n /**\n * @private\n * @const {string}\n */\n function Hammer(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n return new Manager(element, _extends({\n recognizers: preset.concat()\n }, options));\n };\n\n Hammer.VERSION = \"2.0.17-rc\";\n Hammer.DIRECTION_ALL = DIRECTION_ALL;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.DIRECTION_LEFT = DIRECTION_LEFT;\n Hammer.DIRECTION_RIGHT = DIRECTION_RIGHT;\n Hammer.DIRECTION_UP = DIRECTION_UP;\n Hammer.DIRECTION_HORIZONTAL = DIRECTION_HORIZONTAL;\n Hammer.DIRECTION_VERTICAL = DIRECTION_VERTICAL;\n Hammer.DIRECTION_NONE = DIRECTION_NONE;\n Hammer.DIRECTION_DOWN = DIRECTION_DOWN;\n Hammer.INPUT_START = INPUT_START;\n Hammer.INPUT_MOVE = INPUT_MOVE;\n Hammer.INPUT_END = INPUT_END;\n Hammer.INPUT_CANCEL = INPUT_CANCEL;\n Hammer.STATE_POSSIBLE = STATE_POSSIBLE;\n Hammer.STATE_BEGAN = STATE_BEGAN;\n Hammer.STATE_CHANGED = STATE_CHANGED;\n Hammer.STATE_ENDED = STATE_ENDED;\n Hammer.STATE_RECOGNIZED = STATE_RECOGNIZED;\n Hammer.STATE_CANCELLED = STATE_CANCELLED;\n Hammer.STATE_FAILED = STATE_FAILED;\n Hammer.Manager = Manager;\n Hammer.Input = Input;\n Hammer.TouchAction = TouchAction;\n Hammer.TouchInput = TouchInput;\n Hammer.MouseInput = MouseInput;\n Hammer.PointerEventInput = PointerEventInput;\n Hammer.TouchMouseInput = TouchMouseInput;\n Hammer.SingleTouchInput = SingleTouchInput;\n Hammer.Recognizer = Recognizer;\n Hammer.AttrRecognizer = AttrRecognizer;\n Hammer.Tap = TapRecognizer;\n Hammer.Pan = PanRecognizer;\n Hammer.Swipe = SwipeRecognizer;\n Hammer.Pinch = PinchRecognizer;\n Hammer.Rotate = RotateRecognizer;\n Hammer.Press = PressRecognizer;\n Hammer.on = addEventListeners;\n Hammer.off = removeEventListeners;\n Hammer.each = each;\n Hammer.merge = merge;\n Hammer.extend = extend;\n Hammer.bindFn = bindFn;\n Hammer.assign = assign$1;\n Hammer.inherit = inherit;\n Hammer.bindFn = bindFn;\n Hammer.prefixed = prefixed;\n Hammer.toArray = toArray;\n Hammer.inArray = inArray;\n Hammer.uniqueArray = uniqueArray;\n Hammer.splitStr = splitStr;\n Hammer.boolOrFn = boolOrFn;\n Hammer.hasParent = hasParent;\n Hammer.addEventListeners = addEventListeners;\n Hammer.removeEventListeners = removeEventListeners;\n Hammer.defaults = assign$1({}, defaults, {\n preset: preset\n });\n return Hammer;\n}();\n\n// style loader but by script tag, not by the loader.\n\nvar defaults$1 = Hammer.defaults;\n\nexport default Hammer;\nexport { INPUT_START, INPUT_MOVE, INPUT_END, INPUT_CANCEL, STATE_POSSIBLE, STATE_BEGAN, STATE_CHANGED, STATE_ENDED, STATE_RECOGNIZED, STATE_CANCELLED, STATE_FAILED, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN, DIRECTION_HORIZONTAL, DIRECTION_VERTICAL, DIRECTION_ALL, Manager, Input, TouchAction, TouchInput, MouseInput, PointerEventInput, TouchMouseInput, SingleTouchInput, Recognizer, AttrRecognizer, TapRecognizer as Tap, PanRecognizer as Pan, SwipeRecognizer as Swipe, PinchRecognizer as Pinch, RotateRecognizer as Rotate, PressRecognizer as Press, addEventListeners as on, removeEventListeners as off, each, merge, extend, assign$1 as assign, inherit, bindFn, prefixed, toArray, inArray, uniqueArray, splitStr, boolOrFn, hasParent, addEventListeners, removeEventListeners, defaults$1 as defaults };\n//# sourceMappingURL=hammer.esm.js.map\n","export class GesturePropError extends Error {\n constructor(name: string, value: unknown, expectedType: string) {\n super(\n `Invalid property \\`${name}: ${value}\\` expected \\`${expectedType}\\``\n );\n }\n}\n","import { ValueOf } from '../typeUtils';\nimport { Gestures } from '../RNGestureHandlerModule.web';\n\nconst gestures: Record>> = {};\n\nexport function getHandler(tag: number) {\n if (tag in gestures) return gestures[tag];\n\n throw new Error(`No handler for tag ${tag}`);\n}\n\nexport function createGestureHandler(\n handlerTag: number,\n handler: InstanceType>\n) {\n if (handlerTag in gestures) {\n throw new Error(`Handler with tag ${handlerTag} already exists`);\n }\n gestures[handlerTag] = handler;\n // @ts-ignore no types for web handlers yet\n gestures[handlerTag].handlerTag = handlerTag;\n}\n\nexport function dropGestureHandler(handlerTag: number) {\n // Since React 18, there are cases where componentWillUnmount gets called twice in a row\n // so skip this if the tag was already removed.\n if (!(handlerTag in gestures)) {\n return;\n }\n getHandler(handlerTag).destroy();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete gestures[handlerTag];\n}\n\nexport function getNodes() {\n return { ...gestures };\n}\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport Hammer from '@egjs/hammerjs';\nimport { findNodeHandle } from 'react-native';\n\nimport { State } from '../State';\nimport { EventMap } from './constants';\nimport * as NodeManager from './NodeManager';\n\n// TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged\nexport type HammerInputExt = Omit;\n\nexport type Config = Partial<{\n enabled: boolean;\n minPointers: number;\n maxPointers: number;\n minDist: number;\n minDistSq: number;\n minVelocity: number;\n minVelocitySq: number;\n maxDist: number;\n maxDistSq: number;\n failOffsetXStart: number;\n failOffsetYStart: number;\n failOffsetXEnd: number;\n failOffsetYEnd: number;\n activeOffsetXStart: number;\n activeOffsetXEnd: number;\n activeOffsetYStart: number;\n activeOffsetYEnd: number;\n waitFor: any[] | null;\n}>;\n\ntype NativeEvent = ReturnType;\n\nlet gestureInstances = 0;\n\nabstract class GestureHandler {\n public handlerTag: any;\n public isGestureRunning = false;\n public view: number | null = null;\n protected hasCustomActivationCriteria: boolean;\n protected hasGestureFailed = false;\n protected hammer: HammerManager | null = null;\n protected initialRotation: number | null = null;\n protected __initialX: any;\n protected __initialY: any;\n protected config: Config = {};\n protected previousState: State = State.UNDETERMINED;\n private pendingGestures: Record = {};\n private oldState: State = State.UNDETERMINED;\n private lastSentState: State | null = null;\n private gestureInstance: number;\n private _stillWaiting: any;\n private propsRef: any;\n private ref: any;\n\n abstract get name(): string;\n\n get id() {\n return `${this.name}${this.gestureInstance}`;\n }\n\n get isDiscrete() {\n return false;\n }\n\n get shouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n constructor() {\n this.gestureInstance = gestureInstances++;\n this.hasCustomActivationCriteria = false;\n }\n\n getConfig() {\n return this.config;\n }\n\n onWaitingEnded(_gesture: this) {}\n\n removePendingGesture(id: string) {\n delete this.pendingGestures[id];\n }\n\n addPendingGesture(gesture: this) {\n this.pendingGestures[gesture.id] = gesture;\n }\n\n isGestureEnabledForEvent(\n _config: any,\n _recognizer: any,\n _event: any\n ): { failed?: boolean; success?: boolean } {\n return { success: true };\n }\n\n get NativeGestureClass(): RecognizerStatic {\n throw new Error('Must override GestureHandler.NativeGestureClass');\n }\n\n updateHasCustomActivationCriteria(_config: Config) {\n return true;\n }\n\n clearSelfAsPending = () => {\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.removePendingGesture(this.id);\n }\n }\n };\n\n updateGestureConfig({ enabled = true, ...props }) {\n this.clearSelfAsPending();\n\n this.config = ensureConfig({ enabled, ...props });\n this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(\n this.config\n );\n if (Array.isArray(this.config.waitFor)) {\n for (const gesture of this.config.waitFor) {\n gesture.addPendingGesture(this);\n }\n }\n\n if (this.hammer) {\n this.sync();\n }\n return this.config;\n }\n\n destroy = () => {\n this.clearSelfAsPending();\n\n if (this.hammer) {\n this.hammer.stop(false);\n this.hammer.destroy();\n }\n this.hammer = null;\n };\n\n isPointInView = ({ x, y }: { x: number; y: number }) => {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const pointerInside =\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n return pointerInside;\n };\n\n getState(type: keyof typeof EventMap): State {\n // @ts-ignore TODO(TS) check if this is needed\n if (type == 0) {\n return 0;\n }\n return EventMap[type];\n }\n\n transformEventData(event: HammerInputExt) {\n const { eventType, maxPointers: numberOfPointers } = event;\n // const direction = DirectionMap[ev.direction];\n const changedTouch = event.changedPointers[0];\n const pointerInside = this.isPointInView({\n x: changedTouch.clientX,\n y: changedTouch.clientY,\n });\n\n // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.\n const state = this.getState(eventType as 1 | 2 | 4 | 8);\n if (state !== this.previousState) {\n this.oldState = this.previousState;\n this.previousState = state;\n }\n\n return {\n nativeEvent: {\n numberOfPointers,\n state,\n pointerInside,\n ...this.transformNativeEvent(event),\n // onHandlerStateChange only\n handlerTag: this.handlerTag,\n target: this.ref,\n oldState: this.oldState,\n },\n timeStamp: Date.now(),\n };\n }\n\n transformNativeEvent(_event: HammerInputExt) {\n return {};\n }\n\n sendEvent = (nativeEvent: HammerInputExt) => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange,\n } = this.propsRef.current;\n\n const event = this.transformEventData(nativeEvent);\n\n invokeNullableMethod(onGestureHandlerEvent, event);\n if (this.lastSentState !== event.nativeEvent.state) {\n this.lastSentState = event.nativeEvent.state as State;\n invokeNullableMethod(onGestureHandlerStateChange, event);\n }\n };\n\n cancelPendingGestures(event: HammerInputExt) {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture && gesture.isGestureRunning) {\n gesture.hasGestureFailed = true;\n gesture.cancelEvent(event);\n }\n }\n }\n\n notifyPendingGestures() {\n for (const gesture of Object.values(this.pendingGestures)) {\n if (gesture) {\n gesture.onWaitingEnded(this);\n }\n }\n }\n\n // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input\n onGestureEnded(event: HammerInputExt) {\n this.isGestureRunning = false;\n this.cancelPendingGestures(event);\n }\n\n forceInvalidate(event: HammerInputExt) {\n if (this.isGestureRunning) {\n this.hasGestureFailed = true;\n this.cancelEvent(event);\n }\n }\n\n cancelEvent(event: HammerInputExt) {\n this.notifyPendingGestures();\n this.sendEvent({\n ...event,\n eventType: Hammer.INPUT_CANCEL,\n isFinal: true,\n });\n this.onGestureEnded(event);\n }\n\n onRawEvent({ isFirst }: HammerInputExt) {\n if (isFirst) {\n this.hasGestureFailed = false;\n }\n }\n\n setView(ref: Parameters['0'], propsRef: any) {\n if (ref == null) {\n this.destroy();\n this.view = null;\n return;\n }\n\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.view = findNodeHandle(ref);\n this.hammer = new Hammer.Manager(this.view as any);\n\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n const { NativeGestureClass } = this;\n // @ts-ignore TODO(TS)\n const gesture = new NativeGestureClass(this.getHammerConfig());\n this.hammer.add(gesture);\n\n this.hammer.on('hammer.input', (ev: HammerInput) => {\n if (!this.config.enabled) {\n this.hasGestureFailed = false;\n this.isGestureRunning = false;\n return;\n }\n\n this.onRawEvent((ev as unknown) as HammerInputExt);\n\n // TODO: Bacon: Check against something other than null\n // The isFirst value is not called when the first rotation is calculated.\n if (this.initialRotation === null && ev.rotation !== 0) {\n this.initialRotation = ev.rotation;\n }\n if (ev.isFinal) {\n // in favor of a willFail otherwise the last frame of the gesture will be captured.\n setTimeout(() => {\n this.initialRotation = null;\n this.hasGestureFailed = false;\n });\n }\n });\n\n this.setupEvents();\n this.sync();\n }\n\n setupEvents() {\n // TODO(TS) Hammer types aren't exactly that what we get in runtime\n if (!this.isDiscrete) {\n this.hammer!.on(`${this.name}start`, (event: HammerInput) =>\n this.onStart((event as unknown) as HammerInputExt)\n );\n this.hammer!.on(\n `${this.name}end ${this.name}cancel`,\n (event: HammerInput) => {\n this.onGestureEnded((event as unknown) as HammerInputExt);\n }\n );\n }\n this.hammer!.on(this.name, (ev: HammerInput) =>\n this.onGestureActivated((ev as unknown) as HammerInputExt)\n ); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged\n }\n\n onStart({ deltaX, deltaY, rotation }: HammerInputExt) {\n // Reset the state for the next gesture\n this.oldState = State.UNDETERMINED;\n this.previousState = State.UNDETERMINED;\n this.lastSentState = null;\n\n this.isGestureRunning = true;\n this.__initialX = deltaX;\n this.__initialY = deltaY;\n this.initialRotation = rotation;\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.sendEvent(ev);\n }\n\n onSuccess() {}\n\n _getPendingGestures() {\n if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {\n // Get the list of gestures that this gesture is still waiting for.\n // Use `=== false` in case a ref that isn't a gesture handler is used.\n const stillWaiting = this.config.waitFor.filter(\n ({ hasGestureFailed }) => hasGestureFailed === false\n );\n return stillWaiting;\n }\n return [];\n }\n\n getHammerConfig() {\n const pointers =\n this.config.minPointers === this.config.maxPointers\n ? this.config.minPointers\n : 0;\n return {\n pointers,\n };\n }\n\n sync = () => {\n const gesture = this.hammer!.get(this.name);\n if (!gesture) return;\n\n const enable = (recognizer: any, inputData: any) => {\n if (!this.config.enabled) {\n this.isGestureRunning = false;\n this.hasGestureFailed = false;\n return false;\n }\n\n // Prevent events before the system is ready.\n if (\n !inputData ||\n !recognizer.options ||\n typeof inputData.maxPointers === 'undefined'\n ) {\n return this.shouldEnableGestureOnSetup;\n }\n\n if (this.hasGestureFailed) {\n return false;\n }\n\n if (!this.isDiscrete) {\n if (this.isGestureRunning) {\n return true;\n }\n // The built-in hammer.js \"waitFor\" doesn't work across multiple views.\n // Only process if there are views to wait for.\n this._stillWaiting = this._getPendingGestures();\n // This gesture should continue waiting.\n if (this._stillWaiting.length) {\n // Check to see if one of the gestures you're waiting for has started.\n // If it has then the gesture should fail.\n for (const gesture of this._stillWaiting) {\n // When the target gesture has started, this gesture must force fail.\n if (!gesture.isDiscrete && gesture.isGestureRunning) {\n this.hasGestureFailed = true;\n this.isGestureRunning = false;\n return false;\n }\n }\n // This gesture shouldn't start until the others have finished.\n return false;\n }\n }\n\n // Use default behaviour\n if (!this.hasCustomActivationCriteria) {\n return true;\n }\n\n const deltaRotation =\n this.initialRotation == null\n ? 0\n : inputData.rotation - this.initialRotation;\n // @ts-ignore FIXME(TS)\n const { success, failed } = this.isGestureEnabledForEvent(\n this.getConfig(),\n recognizer,\n {\n ...inputData,\n deltaRotation,\n }\n );\n\n if (failed) {\n this.simulateCancelEvent(inputData);\n this.hasGestureFailed = true;\n }\n return success;\n };\n\n const params = this.getHammerConfig();\n // @ts-ignore FIXME(TS)\n gesture.set({ ...params, enable });\n };\n\n simulateCancelEvent(_inputData: any) {}\n}\n\n// TODO(TS) investigate this method\n// Used for sending data to a callback or AnimatedEvent\nfunction invokeNullableMethod(\n method:\n | ((event: NativeEvent) => void)\n | { __getHandler: () => (event: NativeEvent) => void }\n | { __nodeConfig: { argMapping: any } },\n event: NativeEvent\n) {\n if (method) {\n if (typeof method === 'function') {\n method(event);\n } else {\n // For use with reanimated's AnimatedEvent\n if (\n '__getHandler' in method &&\n typeof method.__getHandler === 'function'\n ) {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n } else {\n if ('__nodeConfig' in method) {\n const { argMapping } = method.__nodeConfig;\n if (Array.isArray(argMapping)) {\n for (const [index, [key, value]] of argMapping.entries()) {\n if (key in event.nativeEvent) {\n // @ts-ignore fix method type\n const nativeValue = event.nativeEvent[key];\n if (value && value.setValue) {\n // Reanimated API\n value.setValue(nativeValue);\n } else {\n // RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n }\n }\n }\n }\n }\n }\n}\n\n// Validate the props\nfunction ensureConfig(config: Config): Required {\n const props = { ...config };\n\n // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)\n if ('minDist' in config) {\n props.minDist = config.minDist;\n props.minDistSq = props.minDist! * props.minDist!;\n }\n if ('minVelocity' in config) {\n props.minVelocity = config.minVelocity;\n props.minVelocitySq = props.minVelocity! * props.minVelocity!;\n }\n if ('maxDist' in config) {\n props.maxDist = config.maxDist;\n props.maxDistSq = config.maxDist! * config.maxDist!;\n }\n if ('waitFor' in config) {\n props.waitFor = asArray(config.waitFor)\n .map(({ handlerTag }: { handlerTag: number }) =>\n NodeManager.getHandler(handlerTag)\n )\n .filter((v) => v);\n } else {\n props.waitFor = null;\n }\n\n const configProps = [\n 'minPointers',\n 'maxPointers',\n 'minDist',\n 'maxDist',\n 'maxDistSq',\n 'minVelocitySq',\n 'minDistSq',\n 'minVelocity',\n 'failOffsetXStart',\n 'failOffsetYStart',\n 'failOffsetXEnd',\n 'failOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n ] as const;\n configProps.forEach((prop: typeof configProps[number]) => {\n if (typeof props[prop] === 'undefined') {\n props[prop] = Number.NaN;\n }\n });\n return props as Required; // TODO(TS) how to convince TS that props are filled?\n}\n\nfunction asArray(value: T | T[]) {\n // TODO(TS) use config.waitFor type\n return value == null ? [] : Array.isArray(value) ? value : [value];\n}\n\nexport default GestureHandler;\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler, { HammerInputExt } from './GestureHandler';\nimport { PixelRatio } from 'react-native';\n\nabstract class DraggingGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n transformNativeEvent({\n deltaX,\n deltaY,\n velocityX,\n velocityY,\n center: { x, y },\n }: HammerInputExt) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n const ratio = PixelRatio.get();\n return {\n translationX: deltaX - (this.__initialX || 0),\n translationY: deltaY - (this.__initialY || 0),\n absoluteX: x,\n absoluteY: y,\n velocityX: velocityX * ratio,\n velocityY: velocityY * ratio,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n}\n\nexport default DraggingGestureHandler;\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const flingGestureHandlerProps = [\n 'numberOfPointers',\n 'direction',\n] as const;\n\nexport type FlingGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface FlingGestureConfig {\n /**\n * Expressed allowed direction of movement. It's possible to pass one or many\n * directions in one parameter:\n *\n * ```js\n * direction={Directions.RIGHT | Directions.LEFT}\n * ```\n *\n * or\n *\n * ```js\n * direction={Directions.DOWN}\n * ```\n */\n direction?: number;\n\n /**\n * Determine exact number of points required to handle the fling gesture.\n */\n numberOfPointers?: number;\n}\n\nexport interface FlingGestureHandlerProps\n extends BaseGestureHandlerProps,\n FlingGestureConfig {}\n\nexport type FlingGestureHandler = typeof FlingGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const FlingGestureHandler = createHandler<\n FlingGestureHandlerProps,\n FlingGestureHandlerEventPayload\n>({\n name: 'FlingGestureHandler',\n allowedProps: [\n ...baseGestureHandlerProps,\n ...flingGestureHandlerProps,\n ] as const,\n config: {},\n});\n","/* eslint-disable eslint-comments/no-unlimited-disable */\n/* eslint-disable */\nimport GestureHandler from './GestureHandler';\nimport { TEST_MAX_IF_NOT_NAN } from './utils';\n\nabstract class DiscreteGestureHandler extends GestureHandler {\n get isDiscrete() {\n return true;\n }\n\n get shouldEnableGestureOnSetup() {\n return true;\n }\n\n shouldFailUnderCustomCriteria(\n { x, y, deltaX, deltaY }: any,\n { maxDeltaX, maxDeltaY, maxDistSq, shouldCancelWhenOutside }: any\n ) {\n if (shouldCancelWhenOutside) {\n if (!this.isPointInView({ x, y })) {\n return true;\n }\n }\n return (\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaX), maxDeltaX) ||\n TEST_MAX_IF_NOT_NAN(Math.abs(deltaY), maxDeltaY) ||\n TEST_MAX_IF_NOT_NAN(\n Math.abs(deltaY * deltaY + deltaX * deltaX),\n maxDistSq\n )\n );\n }\n\n transformNativeEvent({ center: { x, y } }: any) {\n // @ts-ignore FIXME(TS)\n const rect = this.view!.getBoundingClientRect();\n\n return {\n absoluteX: x,\n absoluteY: y,\n x: x - rect.left,\n y: y - rect.top,\n };\n }\n\n isGestureEnabledForEvent(\n {\n minPointers,\n maxPointers,\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }: any,\n _recognizer: any,\n { maxPointers: pointerLength, center, deltaX, deltaY }: any\n ) {\n const validPointerCount =\n pointerLength >= minPointers && pointerLength <= maxPointers;\n\n if (\n this.shouldFailUnderCustomCriteria(\n { ...center, deltaX, deltaY },\n {\n maxDeltaX,\n maxDeltaY,\n maxDistSq,\n shouldCancelWhenOutside,\n }\n ) ||\n // A user probably won't land a multi-pointer tap on the first tick (so we cannot just cancel each time)\n // but if the gesture is running and the user adds or subtracts another pointer then it should fail.\n (!validPointerCount && this.isGestureRunning)\n ) {\n return { failed: true };\n }\n\n return { success: validPointerCount };\n }\n}\n\nexport default DiscreteGestureHandler;\n","import Hammer from '@egjs/hammerjs';\n\nimport { State } from '../State';\nimport {\n CONTENT_TOUCHES_DELAY,\n CONTENT_TOUCHES_QUICK_TAP_END_DELAY,\n HammerInputNames,\n} from './constants';\nimport DiscreteGestureHandler from './DiscreteGestureHandler';\nimport { Config, HammerInputExt } from './GestureHandler';\nimport { fireAfterInterval, isValidNumber, isnan } from './utils';\n\nclass PressGestureHandler extends DiscreteGestureHandler {\n private visualFeedbackTimer: any;\n private initialEvent: HammerInputExt | null = null;\n get name() {\n return 'press';\n }\n\n get minDurationMs() {\n // @ts-ignore FIXME(TS)\n return isnan(this.config.minDurationMs) ? 5 : this.config.minDurationMs;\n }\n\n get maxDist() {\n return isnan(this.config.maxDist) ? 9 : this.config.maxDist;\n }\n\n get NativeGestureClass() {\n return Hammer.Press;\n }\n\n shouldDelayTouches = true;\n\n simulateCancelEvent(inputData: HammerInputExt) {\n // Long press never starts so we can't rely on the running event boolean.\n this.hasGestureFailed = true;\n this.cancelEvent(inputData);\n }\n\n updateHasCustomActivationCriteria({\n shouldCancelWhenOutside,\n maxDistSq,\n }: Config & { shouldCancelWhenOutside: boolean }) {\n return shouldCancelWhenOutside || !isValidNumber(maxDistSq);\n }\n\n getState(type: keyof typeof HammerInputNames): State {\n return {\n [Hammer.INPUT_START]: State.BEGAN,\n [Hammer.INPUT_MOVE]: State.ACTIVE,\n [Hammer.INPUT_END]: State.END,\n [Hammer.INPUT_CANCEL]: State.CANCELLED,\n }[type];\n }\n\n getConfig() {\n if (!this.hasCustomActivationCriteria) {\n // Default config\n // If no params have been defined then this config should emulate the native gesture as closely as possible.\n return {\n shouldCancelWhenOutside: true,\n maxDistSq: 10,\n };\n }\n return this.config;\n }\n\n getHammerConfig() {\n return {\n ...super.getHammerConfig(),\n // threshold: this.maxDist,\n time: this.minDurationMs,\n };\n }\n\n onGestureActivated(ev: HammerInputExt) {\n this.onGestureStart(ev);\n }\n\n shouldDelayTouchForEvent({ pointerType }: HammerInputExt) {\n // Don't disable event for mouse input\n return this.shouldDelayTouches && pointerType === 'touch';\n }\n\n onGestureStart(ev: HammerInputExt) {\n this.isGestureRunning = true;\n clearTimeout(this.visualFeedbackTimer);\n this.initialEvent = ev;\n this.visualFeedbackTimer = fireAfterInterval(() => {\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }, this.shouldDelayTouchForEvent(ev) && CONTENT_TOUCHES_DELAY);\n }\n\n sendGestureStartedEvent(ev: HammerInputExt) {\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFirst: true,\n });\n }\n\n forceInvalidate(event: HammerInputExt) {\n super.forceInvalidate(event);\n clearTimeout(this.visualFeedbackTimer);\n this.visualFeedbackTimer = null;\n this.initialEvent = null;\n }\n\n onRawEvent(ev: HammerInputExt) {\n super.onRawEvent(ev);\n if (this.isGestureRunning) {\n if (ev.isFinal) {\n let timeout;\n if (this.visualFeedbackTimer) {\n // Aesthetic timing for a quick tap.\n // We haven't activated the tap right away to emulate iOS `delaysContentTouches`\n // Now we must send the initial activation event and wait a set amount of time before firing the end event.\n timeout = CONTENT_TOUCHES_QUICK_TAP_END_DELAY;\n this.sendGestureStartedEvent(this.initialEvent as HammerInputExt);\n this.initialEvent = null;\n }\n fireAfterInterval(() => {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_END,\n isFinal: true,\n });\n // @ts-ignore -- this should explicitly support undefined\n this.onGestureEnded();\n }, timeout);\n } else {\n this.sendEvent({\n ...ev,\n eventType: Hammer.INPUT_MOVE,\n isFinal: false,\n });\n }\n }\n }\n\n updateGestureConfig({\n shouldActivateOnStart = false,\n disallowInterruption = false,\n shouldCancelWhenOutside = true,\n minDurationMs = Number.NaN,\n maxDist = Number.NaN,\n minPointers = 1,\n maxPointers = 1,\n ...props\n }) {\n return super.updateGestureConfig({\n shouldActivateOnStart,\n disallowInterruption,\n shouldCancelWhenOutside,\n minDurationMs,\n maxDist,\n minPointers,\n maxPointers,\n ...props,\n });\n }\n}\nexport default PressGestureHandler;\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const longPressGestureHandlerProps = [\n 'minDurationMs',\n 'maxDist',\n] as const;\n\nexport type LongPressGestureHandlerEventPayload = {\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n x: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the view attached to the handler.\n */\n y: number;\n\n /**\n * X coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteX` instead of\n * `x` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate, expressed in points, of the current position of the pointer\n * (finger or a leading pointer when there are multiple fingers placed)\n * relative to the window. It is recommended to use `absoluteY` instead of\n * `y` in cases when the view attached to the handler can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Duration of the long press (time since the start of the event), expressed\n * in milliseconds.\n */\n duration: number;\n};\n\nexport interface LongPressGestureConfig {\n /**\n * Minimum time, expressed in milliseconds, that a finger must remain pressed on\n * the corresponding view. The default value is 500.\n */\n minDurationMs?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a long press gesture. If the finger travels\n * further than the defined distance and the handler hasn't yet activated, it\n * will fail to recognize the gesture. The default value is 10.\n */\n maxDist?: number;\n}\n\nexport interface LongPressGestureHandlerProps\n extends BaseGestureHandlerProps,\n LongPressGestureConfig {}\n\nexport type LongPressGestureHandler = typeof LongPressGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const LongPressGestureHandler = createHandler<\n LongPressGestureHandlerProps,\n LongPressGestureHandlerEventPayload\n>({\n name: 'LongPressGestureHandler',\n allowedProps: [\n ...baseGestureHandlerProps,\n ...longPressGestureHandlerProps,\n ] as const,\n config: {},\n});\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const panGestureHandlerProps = [\n 'activeOffsetY',\n 'activeOffsetX',\n 'failOffsetY',\n 'failOffsetX',\n 'minDist',\n 'minVelocity',\n 'minVelocityX',\n 'minVelocityY',\n 'minPointers',\n 'maxPointers',\n 'avgTouches',\n 'enableTrackpadTwoFingerGesture',\n] as const;\n\nexport const panGestureHandlerCustomNativeProps = [\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n] as const;\n\nexport type PanGestureHandlerEventPayload = {\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n x: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the view\n * attached to the handler. Expressed in point units.\n */\n y: number;\n\n /**\n * X coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `x` in cases when the original view can be transformed as an effect of\n * the gesture.\n */\n absoluteX: number;\n\n /**\n * Y coordinate of the current position of the pointer (finger or a leading\n * pointer when there are multiple fingers placed) relative to the window.\n * The value is expressed in point units. It is recommended to use it instead\n * of `y` in cases when the original view can be transformed as an\n * effect of the gesture.\n */\n absoluteY: number;\n\n /**\n * Translation of the pan gesture along X axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationX: number;\n\n /**\n * Translation of the pan gesture along Y axis accumulated over the time of\n * the gesture. The value is expressed in the point units.\n */\n translationY: number;\n\n /**\n * Velocity of the pan gesture along the X axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityX: number;\n\n /**\n * Velocity of the pan gesture along the Y axis in the current moment. The\n * value is expressed in point units per second.\n */\n velocityY: number;\n};\n\ninterface CommonPanProperties {\n /**\n * Minimum distance the finger (or multiple finger) need to travel before the\n * handler activates. Expressed in points.\n */\n minDist?: number;\n\n /**\n * Android only.\n */\n avgTouches?: boolean;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * enableTrackpadTwoFingerGesture swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n /**\n * A number of fingers that is required to be placed before handler can\n * activate. Should be a higher or equal to 0 integer.\n */\n minPointers?: number;\n\n /**\n * When the given number of fingers is placed on the screen and handler hasn't\n * yet activated it will fail recognizing the gesture. Should be a higher or\n * equal to 0 integer.\n */\n maxPointers?: number;\n\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n}\n\nexport interface PanGestureConfig extends CommonPanProperties {\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n failOffsetYStart?: number;\n failOffsetYEnd?: number;\n failOffsetXStart?: number;\n failOffsetXEnd?: number;\n}\n\nexport interface PanGestureHandlerProps\n extends BaseGestureHandlerProps,\n CommonPanProperties {\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetY?: number | number[];\n\n /**\n * Range along X axis (in points) where fingers travels without activation of\n * handler. Moving outside of this range implies activation of handler. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n activeOffsetX?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along Y axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetY?: number | number[];\n\n /**\n * When the finger moves outside this range (in points) along X axis and\n * handler hasn't yet activated it will fail recognizing the gesture. Range\n * can be given as an array or a single number. If range is set as an array,\n * first value must be lower or equal to 0, a the second one higher or equal\n * to 0. If only one number `p` is given a range of `(-inf, p)` will be used\n * if `p` is higher or equal to 0 and `(-p, inf)` otherwise.\n */\n failOffsetX?: number | number[];\n}\n\nexport type PanGestureHandler = typeof PanGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const PanGestureHandler = createHandler<\n PanGestureHandlerProps,\n PanGestureHandlerEventPayload\n>({\n name: 'PanGestureHandler',\n allowedProps: [\n ...baseGestureHandlerProps,\n ...panGestureHandlerProps,\n ] as const,\n config: {},\n transformProps: managePanProps,\n customNativeProps: panGestureHandlerCustomNativeProps,\n});\n\nfunction validatePanGestureHandlerProps(props: PanGestureHandlerProps) {\n if (\n Array.isArray(props.activeOffsetX) &&\n (props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.activeOffsetY) &&\n (props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of activeOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetX) &&\n (props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetX should be negative, a the second one should be positive`\n );\n }\n\n if (\n Array.isArray(props.failOffsetY) &&\n (props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)\n ) {\n throw new Error(\n `First element of failOffsetY should be negative, a the second one should be positive`\n );\n }\n\n if (props.minDist && (props.failOffsetX || props.failOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with failOffsetX or failOffsetY, use activeOffsetX and activeOffsetY instead`\n );\n }\n\n if (props.minDist && (props.activeOffsetX || props.activeOffsetY)) {\n throw new Error(\n `It is not supported to use minDist with activeOffsetX or activeOffsetY`\n );\n }\n}\n\nfunction transformPanGestureHandlerProps(props: PanGestureHandlerProps) {\n type InternalPanGHKeys =\n | 'activeOffsetXStart'\n | 'activeOffsetXEnd'\n | 'failOffsetXStart'\n | 'failOffsetXEnd'\n | 'activeOffsetYStart'\n | 'activeOffsetYEnd'\n | 'failOffsetYStart'\n | 'failOffsetYEnd';\n type PanGestureHandlerInternalProps = PanGestureHandlerProps &\n Partial>;\n\n const res: PanGestureHandlerInternalProps = { ...props };\n\n if (props.activeOffsetX !== undefined) {\n delete res.activeOffsetX;\n if (Array.isArray(props.activeOffsetX)) {\n res.activeOffsetXStart = props.activeOffsetX[0];\n res.activeOffsetXEnd = props.activeOffsetX[1];\n } else if (props.activeOffsetX < 0) {\n res.activeOffsetXStart = props.activeOffsetX;\n } else {\n res.activeOffsetXEnd = props.activeOffsetX;\n }\n }\n\n if (props.activeOffsetY !== undefined) {\n delete res.activeOffsetY;\n if (Array.isArray(props.activeOffsetY)) {\n res.activeOffsetYStart = props.activeOffsetY[0];\n res.activeOffsetYEnd = props.activeOffsetY[1];\n } else if (props.activeOffsetY < 0) {\n res.activeOffsetYStart = props.activeOffsetY;\n } else {\n res.activeOffsetYEnd = props.activeOffsetY;\n }\n }\n\n if (props.failOffsetX !== undefined) {\n delete res.failOffsetX;\n if (Array.isArray(props.failOffsetX)) {\n res.failOffsetXStart = props.failOffsetX[0];\n res.failOffsetXEnd = props.failOffsetX[1];\n } else if (props.failOffsetX < 0) {\n res.failOffsetXStart = props.failOffsetX;\n } else {\n res.failOffsetXEnd = props.failOffsetX;\n }\n }\n\n if (props.failOffsetY !== undefined) {\n delete res.failOffsetY;\n if (Array.isArray(props.failOffsetY)) {\n res.failOffsetYStart = props.failOffsetY[0];\n res.failOffsetYEnd = props.failOffsetY[1];\n } else if (props.failOffsetY < 0) {\n res.failOffsetYStart = props.failOffsetY;\n } else {\n res.failOffsetYEnd = props.failOffsetY;\n }\n }\n\n return res;\n}\n\nexport function managePanProps(props: PanGestureHandlerProps) {\n if (__DEV__) {\n validatePanGestureHandlerProps(props);\n }\n return transformPanGestureHandlerProps(props);\n}\n","import GestureHandler from './GestureHandler';\n\n/**\n * The base class for **Rotation** and **Pinch** gesture handlers.\n */\nabstract class IndiscreteGestureHandler extends GestureHandler {\n get shouldEnableGestureOnSetup() {\n return false;\n }\n\n updateGestureConfig({ minPointers = 2, maxPointers = 2, ...props }) {\n return super.updateGestureConfig({\n minPointers,\n maxPointers,\n ...props,\n });\n }\n\n isGestureEnabledForEvent(\n { minPointers, maxPointers }: any,\n _recognizer: any,\n { maxPointers: pointerLength }: any\n ) {\n if (pointerLength > maxPointers) {\n return { failed: true };\n }\n const validPointerCount = pointerLength >= minPointers;\n return {\n success: validPointerCount,\n };\n }\n}\nexport default IndiscreteGestureHandler;\n","import { Direction } from './web/constants';\nimport FlingGestureHandler from './web/FlingGestureHandler';\nimport LongPressGestureHandler from './web/LongPressGestureHandler';\nimport NativeViewGestureHandler from './web/NativeViewGestureHandler';\nimport * as NodeManager from './web/NodeManager';\nimport PanGestureHandler from './web/PanGestureHandler';\nimport PinchGestureHandler from './web/PinchGestureHandler';\nimport RotationGestureHandler from './web/RotationGestureHandler';\nimport TapGestureHandler from './web/TapGestureHandler';\n\nexport const Gestures = {\n PanGestureHandler,\n RotationGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n NativeViewGestureHandler,\n LongPressGestureHandler,\n FlingGestureHandler,\n // ForceTouchGestureHandler,\n};\n\nexport default {\n Direction,\n handleSetJSResponder(tag: number, blockNativeResponder: boolean) {\n console.warn('handleSetJSResponder: ', tag, blockNativeResponder);\n },\n handleClearJSResponder() {\n console.warn('handleClearJSResponder: ');\n },\n createGestureHandler(\n handlerName: keyof typeof Gestures,\n handlerTag: number,\n config: T\n ) {\n //TODO(TS) extends config\n if (!(handlerName in Gestures))\n throw new Error(\n `react-native-gesture-handler: ${handlerName} is not supported on web.`\n );\n const GestureClass = Gestures[handlerName];\n NodeManager.createGestureHandler(handlerTag, new GestureClass());\n this.updateGestureHandler(handlerTag, config);\n },\n attachGestureHandler(\n handlerTag: number,\n newView: number,\n _usingDeviceEvents: boolean,\n propsRef: React.RefObject\n ) {\n NodeManager.getHandler(handlerTag).setView(newView, propsRef);\n },\n updateGestureHandler(handlerTag: number, newConfig: any) {\n NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);\n },\n getGestureHandlerNode(handlerTag: number) {\n return NodeManager.getHandler(handlerTag);\n },\n dropGestureHandler(handlerTag: number) {\n NodeManager.dropGestureHandler(handlerTag);\n },\n};\n","import createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const tapGestureHandlerProps = [\n 'maxDurationMs',\n 'maxDelayMs',\n 'numberOfTaps',\n 'maxDeltaX',\n 'maxDeltaY',\n 'maxDist',\n 'minPointers',\n] as const;\n\nexport type TapGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n};\nexport interface TapGestureConfig {\n /**\n * Minimum number of pointers (fingers) required to be placed before the\n * handler activates. Should be a positive integer.\n * The default value is 1.\n */\n minPointers?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that defines how fast a finger\n * must be released after a touch. The default value is 500.\n */\n maxDurationMs?: number;\n\n /**\n * Maximum time, expressed in milliseconds, that can pass before the next tap\n * if many taps are required. The default value is 500.\n */\n maxDelayMs?: number;\n\n /**\n * Number of tap gestures required to activate the handler. The default value\n * is 1.\n */\n numberOfTaps?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the X axis during a tap gesture. If the finger\n * travels further than the defined distance along the X axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaX?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel along the Y axis during a tap gesture. If the finger\n * travels further than the defined distance along the Y axis and the handler\n * hasn't yet activated, it will fail to recognize the gesture.\n */\n maxDeltaY?: number;\n\n /**\n * Maximum distance, expressed in points, that defines how far the finger is\n * allowed to travel during a tap gesture. If the finger travels further than\n * the defined distance and the handler hasn't yet\n * activated, it will fail to recognize the gesture.\n */\n maxDist?: number;\n}\n\nexport interface TapGestureHandlerProps\n extends BaseGestureHandlerProps,\n TapGestureConfig {}\n\nexport type TapGestureHandler = typeof TapGestureHandler;\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const TapGestureHandler = createHandler<\n TapGestureHandlerProps,\n TapGestureHandlerEventPayload\n>({\n name: 'TapGestureHandler',\n allowedProps: [\n ...baseGestureHandlerProps,\n ...tapGestureHandlerProps,\n ] as const,\n config: {},\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 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) 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}();","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import InternalAnimatedValue from './InternalAnimatedValue';\nimport AnimatedNode from './AnimatedNode';\nimport { val } from '../val';\n\nclass AnimatedMainClock extends InternalAnimatedValue {\n _frameCallback;\n\n constructor() {\n super({ type: 'MAIN_CLOCK' });\n }\n\n __onEvaluate() {\n return +new Date();\n }\n\n _runFrame = () => {\n this._updateValue(0);\n if (this.__children.length > 0) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n };\n\n __attach() {\n super.__attach();\n if (!this._frameCallback) {\n this._frameCallback = requestAnimationFrame(this._runFrame);\n }\n }\n\n __detach() {\n if (this._frameCallback) {\n cancelAnimationFrame(this._frameCallback);\n this._frameCallback = null;\n }\n super.__detach();\n }\n}\n\nconst mainClock = new AnimatedMainClock();\n\nexport default class AnimatedClock extends AnimatedNode {\n _started;\n _attached;\n\n constructor() {\n super({ type: 'clock' });\n }\n\n toString() {\n return `AnimatedClock, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return val(mainClock);\n }\n\n __attach() {\n super.__attach();\n if (this._started && !this._attached) {\n mainClock.__addChild(this);\n }\n this._attached = true;\n }\n\n __detach() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._attached = false;\n super.__detach();\n }\n\n start() {\n if (!this._started && this._attached) {\n mainClock.__addChild(this);\n }\n this._started = true;\n }\n\n stop() {\n if (this._started && this._attached) {\n mainClock.__removeChild(this);\n }\n this._started = false;\n }\n\n isStarted() {\n return this._started;\n }\n}\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// import type { ITheme } from '..';\nimport type { Leaves } from './types';\n\nexport interface IColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst colors = {\n contrastThreshold: 7,\n // Singleton colors\n white: '#FFFFFF',\n black: '#000000',\n lightText: '#FFFFFF',\n darkText: '#000000',\n // Primary colors\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n darkBlue: {\n 50: '#dbf4ff',\n 100: '#addbff',\n 200: '#7cc2ff',\n 300: '#4aa9ff',\n 400: '#1a91ff',\n 500: '#0077e6',\n 600: '#005db4',\n 700: '#004282',\n 800: '#002851',\n 900: '#000e21',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n text: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n // Derived colors\n danger: {} as IColorHues,\n error: {} as IColorHues,\n success: {} as IColorHues,\n warning: {} as IColorHues,\n muted: {} as IColorHues,\n primary: {} as IColorHues,\n info: {} as IColorHues,\n secondary: {} as IColorHues,\n light: {} as IColorHues,\n tertiary: {} as IColorHues,\n};\n\ncolors.danger = colors.rose;\ncolors.error = colors.red;\ncolors.success = colors.green;\ncolors.warning = colors.orange;\ncolors.muted = colors.trueGray;\ncolors.primary = colors.cyan;\ncolors.secondary = colors.pink;\ncolors.tertiary = colors.emerald;\ncolors.info = colors.lightBlue;\ncolors.light = colors.warmGray;\n\nexport default colors;\n// export type IColors = Leaves;\nexport type IColors = Leaves;\n","import invariant from 'invariant';\nimport { adapt } from '../core/AnimatedBlock';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nclass AnimatedCond extends AnimatedNode {\n _condition;\n _ifBlock;\n _elseBlock;\n\n constructor(condition, ifBlock, elseBlock) {\n invariant(\n condition instanceof AnimatedNode,\n `Reanimated: Animated.cond node first argument should be of type AnimatedNode but got ${condition}`\n );\n invariant(\n ifBlock instanceof AnimatedNode,\n `Reanimated: Animated.cond node second argument should be of type AnimatedNode but got ${ifBlock}`\n );\n invariant(\n elseBlock instanceof AnimatedNode || elseBlock === undefined,\n `Reanimated: Animated.cond node third argument should be of type AnimatedNode or should be undefined but got ${elseBlock}`\n );\n super(\n {\n type: 'cond',\n cond: condition,\n ifBlock,\n elseBlock,\n },\n [condition, ifBlock, elseBlock]\n );\n this._condition = condition;\n this._ifBlock = ifBlock;\n this._elseBlock = elseBlock;\n }\n\n toString() {\n return `AnimatedCond, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n if (val(this._condition)) {\n return val(this._ifBlock);\n } else {\n return this._elseBlock !== undefined ? val(this._elseBlock) : undefined;\n }\n }\n}\n\nexport function createAnimatedCond(cond, ifBlock, elseBlock) {\n return new AnimatedCond(\n adapt(cond),\n adapt(ifBlock),\n elseBlock === undefined ? undefined : adapt(elseBlock)\n );\n}\n","import { Platform, findNodeHandle } from 'react-native';\nimport ReanimatedModule from '../../ReanimatedModule';\n\nimport AnimatedNode from './AnimatedNode';\nimport InternalAnimatedValue from './AnimatedValue';\nimport { createAnimatedAlways } from './AnimatedAlways';\n\nimport invariant from 'invariant';\nimport createEventObjectProxyPolyfill from './createEventObjectProxyPolyfill';\n\nfunction sanitizeArgMapping(argMapping) {\n // Find animated values in `argMapping` and create an array representing their\n // key path inside the `nativeEvent` object. Ex.: ['contentOffset', 'x'].\n const eventMappings = [];\n const alwaysNodes = [];\n\n const getNode = (node) => {\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n return node;\n }\n return node.__nodeID;\n };\n\n const traverse = (value, path) => {\n if (value instanceof InternalAnimatedValue) {\n eventMappings.push(path.concat(getNode(value)));\n } else if (typeof value === 'object' && value.__val) {\n eventMappings.push(path.concat(getNode(value.__val)));\n } else if (typeof value === 'function') {\n const node = new InternalAnimatedValue(0);\n alwaysNodes.push(createAnimatedAlways(value(node)));\n eventMappings.push(path.concat(getNode(node)));\n } else if (typeof value === 'object') {\n for (const key in value) {\n traverse(value[key], path.concat(key));\n }\n }\n };\n\n invariant(\n argMapping[0] && argMapping[0].nativeEvent,\n 'Native driven events only support animated values contained inside `nativeEvent`.'\n );\n\n // Assume that the event containing `nativeEvent` is always the first argument.\n const ev = argMapping[0].nativeEvent;\n if (typeof ev === 'object') {\n traverse(ev, []);\n } else if (typeof ev === 'function') {\n const proxyHandler = {\n get: function (target, name) {\n if (name === '__isProxy') {\n return true;\n }\n if (!target[name] && name !== '__val') {\n target[name] = new Proxy({}, proxyHandler);\n }\n return target[name];\n },\n set: function (target, prop, value) {\n if (prop === '__val') {\n target[prop] = value;\n return true;\n }\n return false;\n },\n };\n\n const proxy =\n typeof Proxy === 'function'\n ? new Proxy({}, proxyHandler)\n : createEventObjectProxyPolyfill();\n alwaysNodes.push(createAnimatedAlways(ev(proxy)));\n traverse(proxy, []);\n }\n\n return { eventMappings, alwaysNodes };\n}\n\nexport default class AnimatedEvent extends AnimatedNode {\n constructor(argMapping, _config = {}) {\n const { eventMappings, alwaysNodes } = sanitizeArgMapping(argMapping);\n super({ type: 'event', argMapping: eventMappings });\n this._alwaysNodes = alwaysNodes;\n }\n\n toString() {\n return `AnimatedEvent, id: ${this.__nodeID}`;\n }\n\n // The below field is a temporary workaround to make AnimatedEvent object be recognized\n // as Animated.event event callback and therefore filtered out from being send over the\n // bridge which was causing the object to be frozen in JS.\n __isNative = true;\n\n attachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].__attach();\n }\n this.__attach();\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.attachEvent(viewTag, eventName, this.__nodeID);\n }\n\n __onEvaluate() {\n return 0;\n }\n\n detachEvent(viewRef, eventName) {\n for (let i = 0; i < this._alwaysNodes.length; i++) {\n this._alwaysNodes[i].isNativelyInitialized() &&\n this._alwaysNodes[i].__detach();\n }\n const viewTag = findNodeHandle(viewRef);\n ReanimatedModule.detachEvent(viewTag, eventName, this.__nodeID);\n this.__detach();\n }\n}\n\nexport function createAnimatedEvent(argMapping, config) {\n return new AnimatedEvent(argMapping, config);\n}\n","// JSC on Android and iOS 8 & 9 does not support proxies.\n// The below workaround provides a proxy-like functionality for event data by\n// creating an object which contains predefined fields for the most commonly\n// used event attributes. If your app uses even attribute which is not listed\n// here please submit a PR to add that and we will merge it right away\nexport default function createEventObjectProxyPolyfill() {\n const nodesMap = {\n // Gesture handlers-related event\n translationX: {},\n translationY: {},\n state: {},\n oldState: {},\n absoluteX: {},\n absoluteY: {},\n x: {},\n y: {},\n velocityX: {},\n velocityY: {},\n scale: {},\n focalX: {},\n focalY: {},\n rotation: {},\n anchorX: {},\n anchorY: {},\n velocity: {},\n numberOfPointers: {},\n // onLayour-related event\n layout: { x: {}, y: {}, width: {}, height: {} },\n // ScrollView event\n contentOffset: { y: {}, x: {} },\n layoutMeasurement: { width: {}, height: {} },\n contentSize: { width: {}, height: {} },\n zoomScale: {},\n contentInset: { right: {}, top: {}, left: {}, bottom: {} },\n };\n const traverse = (obj) => {\n for (const key in obj) {\n traverse(obj[key]);\n Object.assign(obj[key], { __isProxy: true });\n }\n };\n traverse(nodesMap);\n return nodesMap;\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 * 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;","/**\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) 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 * @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 */\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}","import { useEffect, useRef } from 'react';\nimport { cancelAnimation } from '../animation';\nimport { makeMutable } from '../core';\nexport function useSharedValue(init) {\n const ref = useRef(makeMutable(init));\n if (ref.current === null) {\n ref.current = makeMutable(init);\n }\n useEffect(() => {\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n cancelAnimation(ref.current);\n };\n }, []);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return ref.current;\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 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;","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import { createAnimatedSet as set } from '../core/AnimatedSet';\nimport interpolate from '../derived/interpolate';\nimport InternalAnimatedValue from './InternalAnimatedValue';\nimport { Platform } from 'react-native';\nimport { evaluateOnce } from '../derived/evaluateOnce';\nimport ReanimatedModule from '../../ReanimatedModule';\nimport { val } from '../val';\n\n// Animated value wrapped with extra methods for omit cycle of dependencies\nexport default class AnimatedValue extends InternalAnimatedValue {\n setValue(value) {\n this.__detachAnimation(this._animation);\n if (\n Platform.OS === 'web' ||\n Platform.OS === 'windows' ||\n Platform.OS === 'macos'\n ) {\n this._updateValue(val(value));\n } else {\n if (ReanimatedModule.setValue && typeof value === 'number') {\n // FIXME Remove it after some time\n // For OTA-safety\n // FIXME handle setting value with a node\n ReanimatedModule.setValue(this.__nodeID, value);\n } else {\n evaluateOnce(set(this, value), this);\n }\n }\n }\n\n toString() {\n return `AnimatedValue, id: ${this.__nodeID}`;\n }\n\n interpolate(config) {\n return interpolate(this, config);\n }\n}\n","import { useHover as useHoverWeb, HoverProps } from '@react-aria/interactions';\nimport { useEffect } from 'react';\nimport { attachEventHandlersOnRef } from '@react-native-aria/utils';\n\nexport const useHover = (props: HoverProps, ref: any) => {\n let params = useHoverWeb(props);\n useEffect(() => {\n attachEventHandlersOnRef(params.hoverProps, ref);\n }, []);\n\n return params;\n};\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\r\n ? isCheckBoxInput(event.target)\r\n ? event.target.checked\r\n : event.target.value\r\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/.\\d/)) || name;\n\nvar isNameInFieldArray = (names, name) => [...names].some((current) => getNodeParentName(name) === current);\n\nvar compact = (value) => value.filter(Boolean);\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n if (!path || !isObject(obj)) {\r\n return defaultValue;\r\n }\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n FOCUS_OUT: 'focusout',\r\n CHANGE: 'change',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nvar omit = (source, key) => {\r\n const copy = Object.assign({}, source);\r\n delete copy[key];\r\n return copy;\r\n};\n\nconst HookFormContext = React.createContext(null);\r\n/**\r\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @returns return all useForm methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *

\r\n * \r\n * \r\n * \r\n * \r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst useFormContext = () => React.useContext(HookFormContext);\r\n/**\r\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\r\n *\r\n * @param props - all useFrom methods\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const methods = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * return (\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n *\r\n * function NestedInput() {\r\n * const { register } = useFormContext(); // retrieve all hook methods\r\n * return ;\r\n * }\r\n * ```\r\n */\r\nconst FormProvider = (props) => (React.createElement(HookFormContext.Provider, { value: omit(props, 'children') }, props.children));\n\nvar getProxyFormState = (formState, _proxyFormState, localProxyFormState, isRoot = true) => {\r\n const result = {};\r\n for (const key in formState) {\r\n Object.defineProperty(result, key, {\r\n get: () => {\r\n const _key = key;\r\n if (_proxyFormState[_key] !== VALIDATION_MODE.all) {\r\n _proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\r\n }\r\n localProxyFormState && (localProxyFormState[_key] = true);\r\n return formState[_key];\r\n },\r\n });\r\n }\r\n return result;\r\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, isRoot) => {\r\n const formState = omit(formStateData, 'name');\r\n return (isEmptyObject(formState) ||\r\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\r\n Object.keys(formState).find((key) => _proxyFormState[key] ===\r\n (!isRoot || VALIDATION_MODE.all)));\r\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => exact && signalName\r\n ? name === signalName\r\n : !name ||\r\n !signalName ||\r\n name === signalName ||\r\n convertToArrayPayload(name).some((currentName) => currentName &&\r\n (currentName.startsWith(signalName) ||\r\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\r\n const _props = React.useRef(props);\r\n _props.current = props;\r\n React.useEffect(() => {\r\n const tearDown = (subscription) => {\r\n if (subscription) {\r\n subscription.unsubscribe();\r\n }\r\n };\r\n const subscription = !props.disabled &&\r\n _props.current.subject.subscribe({\r\n next: _props.current.callback,\r\n });\r\n return () => tearDown(subscription);\r\n }, [props.disabled]);\r\n}\n\n/**\r\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\r\n *\r\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, control } = useForm({\r\n * defaultValues: {\r\n * firstName: \"firstName\"\r\n * }});\r\n * const { dirtyFields } = useFormState({\r\n * control\r\n * });\r\n * const onSubmit = (data) => console.log(data);\r\n *\r\n * return (\r\n *
\r\n * \r\n * {dirtyFields.firstName &&

Field is dirty.

}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFormState(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, disabled, name, exact } = props || {};\r\n const [formState, updateFormState] = React.useState(control._formState);\r\n const _localProxyFormState = React.useRef({\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n });\r\n const _name = React.useRef(name);\r\n const _mounted = React.useRef(true);\r\n _name.current = name;\r\n const callback = React.useCallback((value) => _mounted.current &&\r\n shouldSubscribeByName(_name.current, value.name, exact) &&\r\n shouldRenderFormState(value, _localProxyFormState.current) &&\r\n updateFormState(Object.assign(Object.assign({}, control._formState), value)), [control, exact]);\r\n useSubscribe({\r\n disabled,\r\n callback,\r\n subject: control._subjects.state,\r\n });\r\n React.useEffect(() => () => {\r\n _mounted.current = false;\r\n }, []);\r\n return getProxyFormState(formState, control._proxyFormState, _localProxyFormState.current, false);\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal) => {\r\n const isArray = Array.isArray(names);\r\n if (isString(names)) {\r\n isGlobal && _names.watch.add(names);\r\n return get(formValues, names);\r\n }\r\n if (isArray) {\r\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\r\n get(formValues, fieldName)));\r\n }\r\n isGlobal && (_names.watchAll = true);\r\n return formValues;\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar objectHasFunction = (data) => {\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\n\n/**\r\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\r\n *\r\n * @remarks\r\n *\r\n * [API](https://react-hook-form.com/api/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\r\n *\r\n * @example\r\n * ```tsx\r\n * const { watch } = useForm();\r\n * const values = useWatch({\r\n * name: \"fieldName\"\r\n * control,\r\n * })\r\n * ```\r\n */\r\nfunction useWatch(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\r\n const _name = React.useRef(name);\r\n _name.current = name;\r\n const callback = React.useCallback((formState) => {\r\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\r\n const fieldValues = generateWatchOutput(_name.current, control._names, formState.values || control._formValues);\r\n updateValue(isUndefined(_name.current) ||\r\n (isObject(fieldValues) && !objectHasFunction(fieldValues))\r\n ? Object.assign({}, fieldValues) : Array.isArray(fieldValues)\r\n ? [...fieldValues]\r\n : isUndefined(fieldValues)\r\n ? defaultValue\r\n : fieldValues);\r\n }\r\n }, [control, exact, defaultValue]);\r\n useSubscribe({\r\n disabled,\r\n subject: control._subjects.watch,\r\n callback,\r\n });\r\n const [value, updateValue] = React.useState(isUndefined(defaultValue)\r\n ? control._getWatch(name)\r\n : defaultValue);\r\n React.useEffect(() => {\r\n control._removeUnmounted();\r\n });\r\n return value;\r\n}\n\n/**\r\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns field properties, field and form state. {@link UseControllerReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function Input(props) {\r\n * const { field, fieldState, formState } = useController(props);\r\n * return (\r\n *
\r\n * \r\n *

{fieldState.isTouched && \"Touched\"}

\r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useController(props) {\r\n const methods = useFormContext();\r\n const { name, control = methods.control, shouldUnregister } = props;\r\n const isArrayField = isNameInFieldArray(control._names.array, name);\r\n const value = useWatch({\r\n control,\r\n name,\r\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\r\n exact: true,\r\n });\r\n const formState = useFormState({\r\n control,\r\n name,\r\n });\r\n const _registerProps = React.useRef(control.register(name, Object.assign(Object.assign({}, props.rules), { value })));\r\n React.useEffect(() => {\r\n const updateMounted = (name, value) => {\r\n const field = get(control._fields, name);\r\n if (field) {\r\n field._f.mount = value;\r\n }\r\n };\r\n updateMounted(name, true);\r\n return () => {\r\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\r\n (isArrayField\r\n ? _shouldUnregisterField && !control._stateFlags.action\r\n : _shouldUnregisterField)\r\n ? control.unregister(name)\r\n : updateMounted(name, false);\r\n };\r\n }, [name, control, isArrayField, shouldUnregister]);\r\n return {\r\n field: {\r\n name,\r\n value,\r\n onChange: React.useCallback((event) => {\r\n _registerProps.current.onChange({\r\n target: {\r\n value: getEventValue(event),\r\n name: name,\r\n },\r\n type: EVENTS.CHANGE,\r\n });\r\n }, [name]),\r\n onBlur: React.useCallback(() => {\r\n _registerProps.current.onBlur({\r\n target: {\r\n value: get(control._formValues, name),\r\n name: name,\r\n },\r\n type: EVENTS.BLUR,\r\n });\r\n }, [name, control]),\r\n ref: React.useCallback((elm) => {\r\n const field = get(control._fields, name);\r\n if (elm && field && elm.focus) {\r\n field._f.ref = {\r\n focus: () => elm.focus(),\r\n setCustomValidity: (message) => elm.setCustomValidity(message),\r\n reportValidity: () => elm.reportValidity(),\r\n };\r\n }\r\n }, [name, control._fields]),\r\n },\r\n formState,\r\n fieldState: control.getFieldState(name, formState),\r\n };\r\n}\n\n/**\r\n * Component based on `useController` hook to work with controlled component.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\r\n *\r\n * @param props - the path name to the form field value, and validation rules.\r\n *\r\n * @returns provide field handler functions, field and form state.\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { control } = useForm({\r\n * defaultValues: {\r\n * test: \"\"\r\n * }\r\n * });\r\n *\r\n * return (\r\n *
\r\n * (\r\n * <>\r\n * \r\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\r\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\r\n * \r\n * )}\r\n * />\r\n * \r\n * );\r\n * }\r\n * ```\r\n */\r\nconst Controller = (props) => props.render(useController(props));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? Object.assign(Object.assign({}, errors[name]), { types: Object.assign(Object.assign({}, (errors[name] && errors[name].types ? errors[name].types : {})), { [type]: message || true }) }) : {};\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nconst focusFieldBy = (fields, callback, fieldsNames) => {\r\n for (const key of fieldsNames || Object.keys(fields)) {\r\n const field = get(fields, key);\r\n if (field) {\r\n const _f = field._f;\r\n const current = omit(field, '_f');\r\n if (_f && callback(_f.name)) {\r\n if (_f.ref.focus && isUndefined(_f.ref.focus())) {\r\n break;\r\n }\r\n else if (_f.refs) {\r\n _f.refs[0].focus();\r\n break;\r\n }\r\n }\r\n else if (isObject(current)) {\r\n focusFieldBy(current, callback);\r\n }\r\n }\r\n }\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\r\n ? options.focusName ||\r\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\r\n : '';\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\r\n (_names.watchAll ||\r\n _names.watch.has(name) ||\r\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\r\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nfunction append(data, value) {\r\n return [...data, ...convertToArrayPayload(value)];\r\n}\n\nfunction cloneObject(data) {\r\n let copy;\r\n const isArray = Array.isArray(data);\r\n if (data instanceof Date) {\r\n copy = new Date(data);\r\n }\r\n else if (data instanceof Set) {\r\n copy = new Set(data);\r\n }\r\n else if (isArray || isObject(data)) {\r\n copy = isArray ? [] : {};\r\n for (const key in data) {\r\n if (isFunction(data[key])) {\r\n copy = data;\r\n break;\r\n }\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n }\r\n else {\r\n return data;\r\n }\r\n return copy;\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...convertToArrayPayload(value),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar moveArrayAt = (data, from, to) => {\r\n if (!Array.isArray(data)) {\r\n return [];\r\n }\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n};\n\nfunction prepend(data, value) {\r\n return [...convertToArrayPayload(value), ...convertToArrayPayload(data)];\r\n}\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n data[indexA] = [data[indexB], (data[indexB] = data[indexA])][0];\r\n};\n\nvar updateAt = (fieldValues, index, value) => {\r\n fieldValues[index] = value;\r\n return fieldValues;\r\n};\n\n/**\r\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\r\n *\r\n * @param props - useFieldArray props\r\n *\r\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\r\n * defaultValues: {\r\n * test: []\r\n * }\r\n * });\r\n * const { fields, append } = useFieldArray({\r\n * control,\r\n * name: \"test\"\r\n * });\r\n *\r\n * return (\r\n *
console.log(data))}>\r\n * {fields.map((item, index) => (\r\n * \r\n * ))}\r\n * \r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useFieldArray(props) {\r\n const methods = useFormContext();\r\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\r\n const [fields, setFields] = React.useState(control._getFieldArray(name));\r\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\r\n const _fieldIds = React.useRef(fields);\r\n const _name = React.useRef(name);\r\n const _actioned = React.useRef(false);\r\n _name.current = name;\r\n _fieldIds.current = fields;\r\n control._names.array.add(name);\r\n const callback = React.useCallback(({ values, name: fieldArrayName }) => {\r\n if (fieldArrayName === _name.current || !fieldArrayName) {\r\n const fieldValues = get(values, _name.current, []);\r\n setFields(fieldValues);\r\n ids.current = fieldValues.map(generateId);\r\n }\r\n }, []);\r\n useSubscribe({\r\n callback,\r\n subject: control._subjects.array,\r\n });\r\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\r\n _actioned.current = true;\r\n control._updateFieldArray(name, updatedFieldArrayValues);\r\n }, [control, name]);\r\n const append$1 = (value, options) => {\r\n const appendValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = append(control._getFieldArray(name), appendValue);\r\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\r\n ids.current = append(ids.current, appendValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, append, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const prepend$1 = (value, options) => {\r\n const prependValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = prepend(control._getFieldArray(name), prependValue);\r\n control._names.focus = getFocusFieldName(name, 0, options);\r\n ids.current = prepend(ids.current, prependValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, prepend, {\r\n argA: fillEmptyArray(value),\r\n });\r\n };\r\n const remove = (index) => {\r\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\r\n ids.current = removeArrayAt(ids.current, index);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\r\n argA: index,\r\n });\r\n };\r\n const insert$1 = (index, value, options) => {\r\n const insertValue = convertToArrayPayload(cloneObject(value));\r\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\r\n control._names.focus = getFocusFieldName(name, index, options);\r\n ids.current = insert(ids.current, index, insertValue.map(generateId));\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\r\n argA: index,\r\n argB: fillEmptyArray(value),\r\n });\r\n };\r\n const swap = (indexA, indexB) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\r\n swapArrayAt(ids.current, indexA, indexB);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n }, false);\r\n };\r\n const move = (from, to) => {\r\n const updatedFieldArrayValues = control._getFieldArray(name);\r\n moveArrayAt(updatedFieldArrayValues, from, to);\r\n moveArrayAt(ids.current, from, to);\r\n updateValues(updatedFieldArrayValues);\r\n setFields(updatedFieldArrayValues);\r\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n }, false);\r\n };\r\n const update = (index, value) => {\r\n const updateValue = cloneObject(value);\r\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\r\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\r\n updateValues(updatedFieldArrayValues);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\r\n argA: index,\r\n argB: updateValue,\r\n }, true, false);\r\n };\r\n const replace = (value) => {\r\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\r\n ids.current = updatedFieldArrayValues.map(generateId);\r\n updateValues([...updatedFieldArrayValues]);\r\n setFields([...updatedFieldArrayValues]);\r\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\r\n };\r\n React.useEffect(() => {\r\n control._stateFlags.action = false;\r\n isWatched(name, control._names) && control._subjects.state.next({});\r\n if (_actioned.current) {\r\n control._executeSchema([name]).then((result) => {\r\n const error = get(result.errors, name);\r\n if (error && error.type && !get(control._formState.errors, name)) {\r\n set(control._formState.errors, name, error);\r\n control._subjects.state.next({\r\n errors: control._formState.errors,\r\n });\r\n }\r\n });\r\n }\r\n control._subjects.watch.next({\r\n name,\r\n values: control._formValues,\r\n });\r\n control._names.focus &&\r\n focusFieldBy(control._fields, (key) => key.startsWith(control._names.focus));\r\n control._names.focus = '';\r\n control._proxyFormState.isValid && control._updateValid();\r\n }, [fields, name, control]);\r\n React.useEffect(() => {\r\n !get(control._formValues, name) && control._updateFieldArray(name);\r\n return () => {\r\n (control._options.shouldUnregister || shouldUnregister) &&\r\n control.unregister(name);\r\n };\r\n }, [name, control, keyName, shouldUnregister]);\r\n return {\r\n swap: React.useCallback(swap, [updateValues, name, control]),\r\n move: React.useCallback(move, [updateValues, name, control]),\r\n prepend: React.useCallback(prepend$1, [updateValues, name, control]),\r\n append: React.useCallback(append$1, [updateValues, name, control]),\r\n remove: React.useCallback(remove, [updateValues, name, control]),\r\n insert: React.useCallback(insert$1, [updateValues, name, control]),\r\n update: React.useCallback(update, [updateValues, name, control]),\r\n replace: React.useCallback(replace, [updateValues, name, control]),\r\n fields: React.useMemo(() => fields.map((field, index) => (Object.assign(Object.assign({}, field), { [keyName]: ids.current[index] || generateId() }))), [fields, keyName]),\r\n };\r\n}\n\nfunction createSubject() {\r\n let _observers = [];\r\n const next = (value) => {\r\n for (const observer of _observers) {\r\n observer.next(value);\r\n }\r\n };\r\n const subscribe = (observer) => {\r\n _observers.push(observer);\r\n return {\r\n unsubscribe: () => {\r\n _observers = _observers.filter((o) => o !== observer);\r\n },\r\n };\r\n };\r\n const unsubscribe = () => {\r\n _observers = [];\r\n };\r\n return {\r\n get observers() {\r\n return _observers;\r\n },\r\n next,\r\n subscribe,\r\n unsubscribe,\r\n };\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\r\n if (isPrimitive(object1) || isPrimitive(object2)) {\r\n return object1 === object2;\r\n }\r\n if (isDateObject(object1) && isDateObject(object2)) {\r\n return object1.getTime() === object2.getTime();\r\n }\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!keys2.includes(key)) {\r\n return false;\r\n }\r\n if (key !== 'ref') {\r\n const val2 = object2[key];\r\n if ((isDateObject(val1) && isDateObject(val2)) ||\r\n (isObject(val1) && isObject(val2)) ||\r\n (Array.isArray(val1) && Array.isArray(val2))\r\n ? !deepEqual(val1, val2)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nvar getValidationModes = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar isWeb = typeof window !== 'undefined' &&\r\n typeof window.HTMLElement !== 'undefined' &&\r\n typeof document !== 'undefined';\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => !isUndefined(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nfunction markFieldsDirty(data, fields = {}) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n fields[key] = Array.isArray(data[key]) ? [] : {};\r\n markFieldsDirty(data[key], fields[key]);\r\n }\r\n else if (!isNullOrUndefined(data[key])) {\r\n fields[key] = true;\r\n }\r\n }\r\n }\r\n return fields;\r\n}\r\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\r\n const isParentNodeArray = Array.isArray(data);\r\n if (isObject(data) || isParentNodeArray) {\r\n for (const key in data) {\r\n if (Array.isArray(data[key]) ||\r\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\r\n if (isUndefined(formValues) ||\r\n isPrimitive(dirtyFieldsFromValues[key])) {\r\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\r\n ? markFieldsDirty(data[key], [])\r\n : Object.assign({}, markFieldsDirty(data[key]));\r\n }\r\n else {\r\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\r\n }\r\n }\r\n else {\r\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\r\n }\r\n }\r\n }\r\n return dirtyFieldsFromValues;\r\n}\r\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.checked && !option.disabled)\r\n .map((option) => option.value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n return options[0].checked && !options[0].disabled\r\n ? // @ts-expect-error expected to work in the browser\r\n options[0].attributes && !isUndefined(options[0].attributes.value)\r\n ? isUndefined(options[0].value) || options[0].value === ''\r\n ? validResult\r\n : { value: options[0].value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate && isString(value)\r\n ? new Date(value)\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\r\n ? {\r\n isValid: true,\r\n value: option.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nfunction getFieldValue(_f) {\r\n const ref = _f.ref;\r\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(_f.refs).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return [...ref.selectedOptions].map(({ value }) => value);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(_f.refs).value;\r\n }\r\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\r\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\r\n const fields = {};\r\n for (const name of fieldsNames) {\r\n const field = get(_fields, name);\r\n field && set(fields, name, field._f);\r\n }\r\n return {\r\n criteriaMode,\r\n names: [...fieldsNames],\r\n fields,\r\n shouldUseNativeValidation,\r\n };\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\r\n ? undefined\r\n : isRegex(rule)\r\n ? rule.source\r\n : isObject(rule)\r\n ? isRegex(rule.value)\r\n ? rule.value.source\r\n : rule.value\r\n : rule;\n\nvar hasValidation = (options) => options.mount &&\r\n (options.required ||\r\n options.min ||\r\n options.max ||\r\n options.maxLength ||\r\n options.minLength ||\r\n options.pattern ||\r\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\r\n const error = get(errors, name);\r\n if (error || isKey(name)) {\r\n return {\r\n error,\r\n name,\r\n };\r\n }\r\n const names = name.split('.');\r\n while (names.length) {\r\n const fieldName = names.join('.');\r\n const field = get(_fields, fieldName);\r\n const foundError = get(errors, fieldName);\r\n if (field && !Array.isArray(field) && name !== fieldName) {\r\n return { name };\r\n }\r\n if (foundError && foundError.type) {\r\n return {\r\n name: fieldName,\r\n error: foundError,\r\n };\r\n }\r\n names.pop();\r\n }\r\n return {\r\n name,\r\n };\r\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\r\n if (mode.isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && mode.isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar isMessage = (value) => isString(value) || React.isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) ||\r\n (Array.isArray(result) && result.every(isMessage)) ||\r\n (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar validateField = async (field, inputValue, validateAllFieldCriteria, shouldUseNativeValidation) => {\r\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\r\n if (!mount || disabled) {\r\n return {};\r\n }\r\n const inputRef = refs ? refs[0] : ref;\r\n const setCustomValidity = (message) => {\r\n if (shouldUseNativeValidation && inputRef.reportValidity) {\r\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || ' ');\r\n inputRef.reportValidity();\r\n }\r\n };\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = ((valueAsNumber || isFileInput(ref)) && !ref.value) ||\r\n inputValue === '' ||\r\n (Array.isArray(inputValue) && !inputValue.length);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = Object.assign({ type: exceedMax ? maxType : minType, message,\r\n ref }, appendErrorsCurry(exceedMax ? maxType : minType, message));\r\n };\r\n if (required &&\r\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\r\n (isBoolean(inputValue) && !inputValue) ||\r\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\r\n (isRadio && !getRadioValue(refs).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message, ref: inputRef }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(inputValue)) {\r\n const valueNumber = ref.valueAsNumber || +inputValue;\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(inputValue);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if ((maxLength || minLength) && !isEmpty && isString(inputValue)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n inputValue.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n inputValue.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(error[name].message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty && isString(inputValue)) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message,\r\n ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(message);\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (isFunction(validate)) {\r\n const result = await validate(inputValue);\r\n const validateError = getValidateError(result, inputRef);\r\n if (validateError) {\r\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\r\n if (!validateAllFieldCriteria) {\r\n setCustomValidity(validateError.message);\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const key in validate) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateError = getValidateError(await validate[key](inputValue), inputRef, key);\r\n if (validateError) {\r\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n setCustomValidity(validateError.message);\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = Object.assign({ ref: inputRef }, validationResult);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n setCustomValidity(true);\r\n return error;\r\n};\n\nconst defaultOptions = {\r\n mode: VALIDATION_MODE.onSubmit,\r\n reValidateMode: VALIDATION_MODE.onChange,\r\n shouldFocusError: true,\r\n};\r\nfunction createFormControl(props = {}) {\r\n let _options = Object.assign(Object.assign({}, defaultOptions), props);\r\n let _formState = {\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n };\r\n let _fields = {};\r\n let _defaultValues = _options.defaultValues || {};\r\n let _formValues = _options.shouldUnregister\r\n ? {}\r\n : cloneObject(_defaultValues);\r\n let _stateFlags = {\r\n action: false,\r\n mount: false,\r\n watch: false,\r\n };\r\n let _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n };\r\n let delayErrorCallback;\r\n let timer = 0;\r\n let validateFields = {};\r\n const _proxyFormState = {\r\n isDirty: false,\r\n dirtyFields: false,\r\n touchedFields: false,\r\n isValidating: false,\r\n isValid: false,\r\n errors: false,\r\n };\r\n const _subjects = {\r\n watch: createSubject(),\r\n array: createSubject(),\r\n state: createSubject(),\r\n };\r\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\r\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\r\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\r\n const debounce = (callback, wait) => (...args) => {\r\n clearTimeout(timer);\r\n timer = window.setTimeout(() => callback(...args), wait);\r\n };\r\n const _updateValid = async (shouldSkipRender) => {\r\n let isValid = false;\r\n if (_proxyFormState.isValid) {\r\n isValid = _options.resolver\r\n ? isEmptyObject((await _executeSchema()).errors)\r\n : await executeBuildInValidation(_fields, true);\r\n if (!shouldSkipRender && isValid !== _formState.isValid) {\r\n _formState.isValid = isValid;\r\n _subjects.state.next({\r\n isValid,\r\n });\r\n }\r\n }\r\n return isValid;\r\n };\r\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\r\n if (args && method) {\r\n _stateFlags.action = true;\r\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\r\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\r\n shouldSetValues && set(_fields, name, fieldValues);\r\n }\r\n if (_proxyFormState.errors &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.errors, name))) {\r\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.errors, name, errors);\r\n unsetEmptyArray(_formState.errors, name);\r\n }\r\n if (_proxyFormState.touchedFields &&\r\n shouldUpdateFieldsAndState &&\r\n Array.isArray(get(_formState.touchedFields, name))) {\r\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\r\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\r\n }\r\n if (_proxyFormState.dirtyFields) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n }\r\n _subjects.state.next({\r\n isDirty: _getDirty(name, values),\r\n dirtyFields: _formState.dirtyFields,\r\n errors: _formState.errors,\r\n isValid: _formState.isValid,\r\n });\r\n }\r\n else {\r\n set(_formValues, name, values);\r\n }\r\n };\r\n const updateErrors = (name, error) => (set(_formState.errors, name, error),\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n }));\r\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\r\n const field = get(_fields, name);\r\n if (field) {\r\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\r\n isUndefined(defaultValue) ||\r\n (ref && ref.defaultChecked) ||\r\n shouldSkipSetValueAs\r\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\r\n : setFieldValue(name, defaultValue);\r\n _stateFlags.mount && _updateValid();\r\n }\r\n };\r\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\r\n let isFieldDirty = false;\r\n const output = {\r\n name,\r\n };\r\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\r\n if (_proxyFormState.isDirty) {\r\n const isPreviousFormDirty = _formState.isDirty;\r\n _formState.isDirty = output.isDirty = _getDirty();\r\n isFieldDirty = isPreviousFormDirty !== output.isDirty;\r\n }\r\n if (_proxyFormState.dirtyFields && (!isBlurEvent || shouldDirty)) {\r\n const isPreviousFieldDirty = get(_formState.dirtyFields, name);\r\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\r\n isCurrentFieldPristine\r\n ? unset(_formState.dirtyFields, name)\r\n : set(_formState.dirtyFields, name, true);\r\n output.dirtyFields = _formState.dirtyFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n isPreviousFieldDirty !== get(_formState.dirtyFields, name);\r\n }\r\n if (isBlurEvent && !isPreviousFieldTouched) {\r\n set(_formState.touchedFields, name, isBlurEvent);\r\n output.touchedFields = _formState.touchedFields;\r\n isFieldDirty =\r\n isFieldDirty ||\r\n (_proxyFormState.touchedFields &&\r\n isPreviousFieldTouched !== isBlurEvent);\r\n }\r\n isFieldDirty && shouldRender && _subjects.state.next(output);\r\n return isFieldDirty ? output : {};\r\n };\r\n const shouldRenderByError = async (shouldSkipRender, name, isValid, error, fieldState) => {\r\n const previousFieldError = get(_formState.errors, name);\r\n const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;\r\n if (props.delayError && error) {\r\n delayErrorCallback =\r\n delayErrorCallback || debounce(updateErrors, props.delayError);\r\n delayErrorCallback(name, error);\r\n }\r\n else {\r\n clearTimeout(timer);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n if (((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\r\n !isEmptyObject(fieldState) ||\r\n shouldUpdateValid) &&\r\n !shouldSkipRender) {\r\n const updatedFormState = Object.assign(Object.assign(Object.assign({}, fieldState), (shouldUpdateValid ? { isValid } : {})), { errors: _formState.errors, name });\r\n _formState = Object.assign(Object.assign({}, _formState), updatedFormState);\r\n _subjects.state.next(updatedFormState);\r\n }\r\n validateFields[name]--;\r\n if (_proxyFormState.isValidating &&\r\n !Object.values(validateFields).some((v) => v)) {\r\n _subjects.state.next({\r\n isValidating: false,\r\n });\r\n validateFields = {};\r\n }\r\n };\r\n const _executeSchema = async (name) => _options.resolver\r\n ? await _options.resolver(Object.assign({}, _formValues), _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation))\r\n : {};\r\n const executeSchemaAndUpdateState = async (names) => {\r\n const { errors } = await _executeSchema();\r\n if (names) {\r\n for (const name of names) {\r\n const error = get(errors, name);\r\n error\r\n ? set(_formState.errors, name, error)\r\n : unset(_formState.errors, name);\r\n }\r\n }\r\n else {\r\n _formState.errors = errors;\r\n }\r\n return errors;\r\n };\r\n const executeBuildInValidation = async (fields, shouldOnlyCheckValid, context = {\r\n valid: true,\r\n }) => {\r\n for (const name in fields) {\r\n const field = fields[name];\r\n if (field) {\r\n const fieldReference = field._f;\r\n const fieldValue = omit(field, '_f');\r\n if (fieldReference) {\r\n const fieldError = await validateField(field, get(_formValues, fieldReference.name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation);\r\n if (fieldError[fieldReference.name]) {\r\n context.valid = false;\r\n if (shouldOnlyCheckValid) {\r\n break;\r\n }\r\n }\r\n if (!shouldOnlyCheckValid) {\r\n fieldError[fieldReference.name]\r\n ? set(_formState.errors, fieldReference.name, fieldError[fieldReference.name])\r\n : unset(_formState.errors, fieldReference.name);\r\n }\r\n }\r\n fieldValue &&\r\n (await executeBuildInValidation(fieldValue, shouldOnlyCheckValid, context));\r\n }\r\n }\r\n return context.valid;\r\n };\r\n const _removeUnmounted = () => {\r\n for (const name of _names.unMount) {\r\n const field = get(_fields, name);\r\n field &&\r\n (field._f.refs\r\n ? field._f.refs.every((ref) => !live(ref))\r\n : !live(field._f.ref)) &&\r\n unregister(name);\r\n }\r\n _names.unMount = new Set();\r\n };\r\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\r\n !deepEqual(getValues(), _defaultValues));\r\n const _getWatch = (names, defaultValue, isGlobal) => {\r\n const fieldValues = Object.assign({}, (_stateFlags.mount\r\n ? _formValues\r\n : isUndefined(defaultValue)\r\n ? _defaultValues\r\n : isString(names)\r\n ? { [names]: defaultValue }\r\n : defaultValue));\r\n return generateWatchOutput(names, _names, fieldValues, isGlobal);\r\n };\r\n const _getFieldArray = (name) => compact(get(_stateFlags.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\r\n const setFieldValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n let fieldValue = value;\r\n if (field) {\r\n const fieldReference = field._f;\r\n if (fieldReference) {\r\n !fieldReference.disabled &&\r\n set(_formValues, name, getFieldValueAs(value, fieldReference));\r\n fieldValue =\r\n isWeb && isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\r\n ? ''\r\n : value;\r\n if (isMultipleSelect(fieldReference.ref)) {\r\n [...fieldReference.ref.options].forEach((selectRef) => (selectRef.selected = fieldValue.includes(selectRef.value)));\r\n }\r\n else if (fieldReference.refs) {\r\n if (isCheckBoxInput(fieldReference.ref)) {\r\n fieldReference.refs.length > 1\r\n ? fieldReference.refs.forEach((checkboxRef) => !checkboxRef.disabled &&\r\n (checkboxRef.checked = Array.isArray(fieldValue)\r\n ? !!fieldValue.find((data) => data === checkboxRef.value)\r\n : fieldValue === checkboxRef.value))\r\n : fieldReference.refs[0] &&\r\n (fieldReference.refs[0].checked = !!fieldValue);\r\n }\r\n else {\r\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\r\n }\r\n }\r\n else if (isFileInput(fieldReference.ref)) {\r\n fieldReference.ref.value = '';\r\n }\r\n else {\r\n fieldReference.ref.value = fieldValue;\r\n if (!fieldReference.ref.type) {\r\n _subjects.watch.next({\r\n name,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n (options.shouldDirty || options.shouldTouch) &&\r\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\r\n options.shouldValidate && trigger(name);\r\n };\r\n const setValues = (name, value, options) => {\r\n for (const fieldKey in value) {\r\n const fieldValue = value[fieldKey];\r\n const fieldName = `${name}.${fieldKey}`;\r\n const field = get(_fields, fieldName);\r\n (_names.array.has(name) ||\r\n !isPrimitive(fieldValue) ||\r\n (field && !field._f)) &&\r\n !isDateObject(fieldValue)\r\n ? setValues(fieldName, fieldValue, options)\r\n : setFieldValue(fieldName, fieldValue, options);\r\n }\r\n };\r\n const setValue = (name, value, options = {}) => {\r\n const field = get(_fields, name);\r\n const isFieldArray = _names.array.has(name);\r\n const cloneValue = cloneObject(value);\r\n set(_formValues, name, cloneValue);\r\n if (isFieldArray) {\r\n _subjects.array.next({\r\n name,\r\n values: _formValues,\r\n });\r\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\r\n options.shouldDirty) {\r\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\r\n _subjects.state.next({\r\n name,\r\n dirtyFields: _formState.dirtyFields,\r\n isDirty: _getDirty(name, cloneValue),\r\n });\r\n }\r\n }\r\n else {\r\n field && !field._f && !isNullOrUndefined(cloneValue)\r\n ? setValues(name, cloneValue, options)\r\n : setFieldValue(name, cloneValue, options);\r\n }\r\n isWatched(name, _names) && _subjects.state.next({});\r\n _subjects.watch.next({\r\n name,\r\n });\r\n };\r\n const onChange = async (event) => {\r\n const target = event.target;\r\n let name = target.name;\r\n const field = get(_fields, name);\r\n if (field) {\r\n let error;\r\n let isValid;\r\n const fieldValue = target.type\r\n ? getFieldValue(field._f)\r\n : getEventValue(event);\r\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\r\n const shouldSkipValidation = (!hasValidation(field._f) &&\r\n !_options.resolver &&\r\n !get(_formState.errors, name) &&\r\n !field._f.deps) ||\r\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\r\n const watched = isWatched(name, _names, isBlurEvent);\r\n set(_formValues, name, fieldValue);\r\n if (isBlurEvent) {\r\n field._f.onBlur && field._f.onBlur(event);\r\n }\r\n else if (field._f.onChange) {\r\n field._f.onChange(event);\r\n }\r\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\r\n const shouldRender = !isEmptyObject(fieldState) || watched;\r\n !isBlurEvent &&\r\n _subjects.watch.next({\r\n name,\r\n type: event.type,\r\n });\r\n if (shouldSkipValidation) {\r\n return (shouldRender &&\r\n _subjects.state.next(Object.assign({ name }, (watched ? {} : fieldState))));\r\n }\r\n !isBlurEvent && watched && _subjects.state.next({});\r\n validateFields[name] = validateFields[name] ? +1 : 1;\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const { errors } = await _executeSchema([name]);\r\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\r\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\r\n error = errorLookupResult.error;\r\n name = errorLookupResult.name;\r\n isValid = isEmptyObject(errors);\r\n }\r\n else {\r\n error = (await validateField(field, get(_formValues, name), shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\r\n isValid = await _updateValid(true);\r\n }\r\n field._f.deps &&\r\n trigger(field._f.deps);\r\n shouldRenderByError(false, name, isValid, error, fieldState);\r\n }\r\n };\r\n const trigger = async (name, options = {}) => {\r\n let isValid;\r\n let validationResult;\r\n const fieldNames = convertToArrayPayload(name);\r\n _subjects.state.next({\r\n isValidating: true,\r\n });\r\n if (_options.resolver) {\r\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\r\n isValid = isEmptyObject(errors);\r\n validationResult = name\r\n ? !fieldNames.some((name) => get(errors, name))\r\n : isValid;\r\n }\r\n else if (name) {\r\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\r\n const field = get(_fields, fieldName);\r\n return await executeBuildInValidation(field && field._f ? { [fieldName]: field } : field);\r\n }))).every(Boolean);\r\n !(!validationResult && !_formState.isValid) && _updateValid();\r\n }\r\n else {\r\n validationResult = isValid = await executeBuildInValidation(_fields);\r\n }\r\n _subjects.state.next(Object.assign(Object.assign(Object.assign({}, (!isString(name) ||\r\n (_proxyFormState.isValid && isValid !== _formState.isValid)\r\n ? {}\r\n : { name })), (_options.resolver ? { isValid } : {})), { errors: _formState.errors, isValidating: false }));\r\n options.shouldFocus &&\r\n !validationResult &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), name ? fieldNames : _names.mount);\r\n return validationResult;\r\n };\r\n const getValues = (fieldNames) => {\r\n const values = Object.assign(Object.assign({}, _defaultValues), (_stateFlags.mount ? _formValues : {}));\r\n return isUndefined(fieldNames)\r\n ? values\r\n : isString(fieldNames)\r\n ? get(values, fieldNames)\r\n : fieldNames.map((name) => get(values, name));\r\n };\r\n const getFieldState = (name, formState) => ({\r\n invalid: !!get((formState || _formState).errors, name),\r\n isDirty: !!get((formState || _formState).dirtyFields, name),\r\n isTouched: !!get((formState || _formState).touchedFields, name),\r\n error: get((formState || _formState).errors, name),\r\n });\r\n const clearErrors = (name) => {\r\n name\r\n ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))\r\n : (_formState.errors = {});\r\n _subjects.state.next({\r\n errors: _formState.errors,\r\n });\r\n };\r\n const setError = (name, error, options) => {\r\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\r\n set(_formState.errors, name, Object.assign(Object.assign({}, error), { ref }));\r\n _subjects.state.next({\r\n name,\r\n errors: _formState.errors,\r\n isValid: false,\r\n });\r\n options && options.shouldFocus && ref && ref.focus && ref.focus();\r\n };\r\n const watch = (name, defaultValue) => isFunction(name)\r\n ? _subjects.watch.subscribe({\r\n next: (info) => name(_getWatch(undefined, defaultValue), info),\r\n })\r\n : _getWatch(name, defaultValue, true);\r\n const unregister = (name, options = {}) => {\r\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\r\n _names.mount.delete(fieldName);\r\n _names.array.delete(fieldName);\r\n if (get(_fields, fieldName)) {\r\n if (!options.keepValue) {\r\n unset(_fields, fieldName);\r\n unset(_formValues, fieldName);\r\n }\r\n !options.keepError && unset(_formState.errors, fieldName);\r\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\r\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\r\n !_options.shouldUnregister &&\r\n !options.keepDefaultValue &&\r\n unset(_defaultValues, fieldName);\r\n }\r\n }\r\n _subjects.watch.next({});\r\n _subjects.state.next(Object.assign(Object.assign({}, _formState), (!options.keepDirty ? {} : { isDirty: _getDirty() })));\r\n !options.keepIsValid && _updateValid();\r\n };\r\n const register = (name, options = {}) => {\r\n let field = get(_fields, name);\r\n const disabledIsDefined = isBoolean(options.disabled);\r\n set(_fields, name, {\r\n _f: Object.assign(Object.assign(Object.assign({}, (field && field._f ? field._f : { ref: { name } })), { name, mount: true }), options),\r\n });\r\n _names.mount.add(name);\r\n field\r\n ? disabledIsDefined &&\r\n set(_formValues, name, options.disabled\r\n ? undefined\r\n : get(_formValues, name, getFieldValue(field._f)))\r\n : updateValidAndValue(name, true, options.value);\r\n return Object.assign(Object.assign(Object.assign({}, (disabledIsDefined ? { disabled: options.disabled } : {})), (_options.shouldUseNativeValidation\r\n ? {\r\n required: !!options.required,\r\n min: getRuleValue(options.min),\r\n max: getRuleValue(options.max),\r\n minLength: getRuleValue(options.minLength),\r\n maxLength: getRuleValue(options.maxLength),\r\n pattern: getRuleValue(options.pattern),\r\n }\r\n : {})), { name,\r\n onChange, onBlur: onChange, ref: (ref) => {\r\n if (ref) {\r\n register(name, options);\r\n field = get(_fields, name);\r\n const fieldRef = isUndefined(ref.value)\r\n ? ref.querySelectorAll\r\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\r\n : ref\r\n : ref;\r\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\r\n const refs = field._f.refs || [];\r\n if (radioOrCheckbox\r\n ? refs.find((option) => option === fieldRef)\r\n : fieldRef === field._f.ref) {\r\n return;\r\n }\r\n set(_fields, name, {\r\n _f: Object.assign(Object.assign({}, field._f), (radioOrCheckbox\r\n ? {\r\n refs: [...refs.filter(live), fieldRef],\r\n ref: { type: fieldRef.type, name },\r\n }\r\n : { ref: fieldRef })),\r\n });\r\n updateValidAndValue(name, false, undefined, fieldRef);\r\n }\r\n else {\r\n field = get(_fields, name, {});\r\n if (field._f) {\r\n field._f.mount = false;\r\n }\r\n (_options.shouldUnregister || options.shouldUnregister) &&\r\n !(isNameInFieldArray(_names.array, name) && _stateFlags.action) &&\r\n _names.unMount.add(name);\r\n }\r\n } });\r\n };\r\n const handleSubmit = (onValid, onInvalid) => async (e) => {\r\n if (e) {\r\n e.preventDefault && e.preventDefault();\r\n e.persist && e.persist();\r\n }\r\n let hasNoPromiseError = true;\r\n let fieldValues = cloneObject(_formValues);\r\n _subjects.state.next({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (_options.resolver) {\r\n const { errors, values } = await _executeSchema();\r\n _formState.errors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n await executeBuildInValidation(_fields);\r\n }\r\n if (isEmptyObject(_formState.errors) &&\r\n Object.keys(_formState.errors).every((name) => get(fieldValues, name))) {\r\n _subjects.state.next({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n if (onInvalid) {\r\n await onInvalid(Object.assign({}, _formState.errors), e);\r\n }\r\n _options.shouldFocusError &&\r\n focusFieldBy(_fields, (key) => get(_formState.errors, key), _names.mount);\r\n }\r\n }\r\n catch (err) {\r\n hasNoPromiseError = false;\r\n throw err;\r\n }\r\n finally {\r\n _formState.isSubmitted = true;\r\n _subjects.state.next({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(_formState.errors) && hasNoPromiseError,\r\n submitCount: _formState.submitCount + 1,\r\n errors: _formState.errors,\r\n });\r\n }\r\n };\r\n const resetField = (name, options = {}) => {\r\n if (get(_fields, name)) {\r\n if (isUndefined(options.defaultValue)) {\r\n setValue(name, get(_defaultValues, name));\r\n }\r\n else {\r\n setValue(name, options.defaultValue);\r\n set(_defaultValues, name, options.defaultValue);\r\n }\r\n if (!options.keepTouched) {\r\n unset(_formState.touchedFields, name);\r\n }\r\n if (!options.keepDirty) {\r\n unset(_formState.dirtyFields, name);\r\n _formState.isDirty = options.defaultValue\r\n ? _getDirty(name, get(_defaultValues, name))\r\n : _getDirty();\r\n }\r\n if (!options.keepError) {\r\n unset(_formState.errors, name);\r\n _proxyFormState.isValid && _updateValid();\r\n }\r\n _subjects.state.next(Object.assign({}, _formState));\r\n }\r\n };\r\n const reset = (formValues, keepStateOptions = {}) => {\r\n const updatedValues = formValues || _defaultValues;\r\n const cloneUpdatedValues = cloneObject(updatedValues);\r\n const values = formValues && !isEmptyObject(formValues)\r\n ? cloneUpdatedValues\r\n : _defaultValues;\r\n if (!keepStateOptions.keepDefaultValues) {\r\n _defaultValues = updatedValues;\r\n }\r\n if (!keepStateOptions.keepValues) {\r\n if (isWeb && isUndefined(formValues)) {\r\n for (const name of _names.mount) {\r\n const field = get(_fields, name);\r\n if (field && field._f) {\r\n const fieldReference = Array.isArray(field._f.refs)\r\n ? field._f.refs[0]\r\n : field._f.ref;\r\n try {\r\n isHTMLElement(fieldReference) &&\r\n fieldReference.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n _formValues = props.shouldUnregister\r\n ? keepStateOptions.keepDefaultValues\r\n ? cloneObject(_defaultValues)\r\n : {}\r\n : cloneUpdatedValues;\r\n _fields = {};\r\n _subjects.array.next({\r\n values,\r\n });\r\n _subjects.watch.next({\r\n values,\r\n });\r\n }\r\n _names = {\r\n mount: new Set(),\r\n unMount: new Set(),\r\n array: new Set(),\r\n watch: new Set(),\r\n watchAll: false,\r\n focus: '',\r\n };\r\n _stateFlags.mount =\r\n !_proxyFormState.isValid || !!keepStateOptions.keepIsValid;\r\n _stateFlags.watch = !!props.shouldUnregister;\r\n _subjects.state.next({\r\n submitCount: keepStateOptions.keepSubmitCount\r\n ? _formState.submitCount\r\n : 0,\r\n isDirty: keepStateOptions.keepDirty\r\n ? _formState.isDirty\r\n : keepStateOptions.keepDefaultValues\r\n ? !deepEqual(formValues, _defaultValues)\r\n : false,\r\n isSubmitted: keepStateOptions.keepIsSubmitted\r\n ? _formState.isSubmitted\r\n : false,\r\n dirtyFields: keepStateOptions.keepDirty\r\n ? _formState.dirtyFields\r\n : (keepStateOptions.keepDefaultValues && formValues\r\n ? Object.entries(formValues).reduce((previous, [key, value]) => (Object.assign(Object.assign({}, previous), { [key]: value !== get(_defaultValues, key) })), {})\r\n : {}),\r\n touchedFields: keepStateOptions.keepTouched\r\n ? _formState.touchedFields\r\n : {},\r\n errors: keepStateOptions.keepErrors\r\n ? _formState.errors\r\n : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const setFocus = (name, options = {}) => {\r\n const field = get(_fields, name)._f;\r\n const fieldRef = field.refs ? field.refs[0] : field.ref;\r\n options.shouldSelect ? fieldRef.select() : fieldRef.focus();\r\n };\r\n return {\r\n control: {\r\n register,\r\n unregister,\r\n getFieldState,\r\n _executeSchema,\r\n _getWatch,\r\n _getDirty,\r\n _updateValid,\r\n _removeUnmounted,\r\n _updateFieldArray,\r\n _getFieldArray,\r\n _subjects,\r\n _proxyFormState,\r\n get _fields() {\r\n return _fields;\r\n },\r\n get _formValues() {\r\n return _formValues;\r\n },\r\n get _stateFlags() {\r\n return _stateFlags;\r\n },\r\n set _stateFlags(value) {\r\n _stateFlags = value;\r\n },\r\n get _defaultValues() {\r\n return _defaultValues;\r\n },\r\n get _names() {\r\n return _names;\r\n },\r\n set _names(value) {\r\n _names = value;\r\n },\r\n get _formState() {\r\n return _formState;\r\n },\r\n set _formState(value) {\r\n _formState = value;\r\n },\r\n get _options() {\r\n return _options;\r\n },\r\n set _options(value) {\r\n _options = Object.assign(Object.assign({}, _options), value);\r\n },\r\n },\r\n trigger,\r\n register,\r\n handleSubmit,\r\n watch,\r\n setValue,\r\n getValues,\r\n reset,\r\n resetField,\r\n clearErrors,\r\n unregister,\r\n setError,\r\n setFocus,\r\n getFieldState,\r\n };\r\n}\n\n/**\r\n * Custom hook to mange the entire form.\r\n *\r\n * @remarks\r\n * [API](https://react-hook-form.com/api/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\r\n *\r\n * @param props - form configuration and validation parameters.\r\n *\r\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\r\n *\r\n * @example\r\n * ```tsx\r\n * function App() {\r\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\r\n * const onSubmit = data => console.log(data);\r\n *\r\n * console.log(watch(\"example\"));\r\n *\r\n * return (\r\n *
\r\n * \r\n * \r\n * {errors.exampleRequired && This field is required}\r\n * \r\n *
\r\n * );\r\n * }\r\n * ```\r\n */\r\nfunction useForm(props = {}) {\r\n const _formControl = React.useRef();\r\n const [formState, updateFormState] = React.useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touchedFields: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: false,\r\n errors: {},\r\n });\r\n if (_formControl.current) {\r\n _formControl.current.control._options = props;\r\n }\r\n else {\r\n _formControl.current = Object.assign(Object.assign({}, createFormControl(props)), { formState });\r\n }\r\n const control = _formControl.current.control;\r\n const callback = React.useCallback((value) => {\r\n if (shouldRenderFormState(value, control._proxyFormState, true)) {\r\n control._formState = Object.assign(Object.assign({}, control._formState), value);\r\n updateFormState(Object.assign({}, control._formState));\r\n }\r\n }, [control]);\r\n useSubscribe({\r\n subject: control._subjects.state,\r\n callback,\r\n });\r\n React.useEffect(() => {\r\n if (!control._stateFlags.mount) {\r\n control._proxyFormState.isValid && control._updateValid();\r\n control._stateFlags.mount = true;\r\n }\r\n if (control._stateFlags.watch) {\r\n control._stateFlags.watch = false;\r\n control._subjects.state.next({});\r\n }\r\n control._removeUnmounted();\r\n });\r\n _formControl.current.formState = getProxyFormState(formState, control._proxyFormState);\r\n return _formControl.current;\r\n}\n\nexport { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","export * from './core';\nexport * from './react';","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusWithoutScrolling, runAfterTransition} from '@react-aria/utils';\nimport {getInteractionModality} from '@react-aria/interactions';\n\n/**\n * A utility function that focuses an element while avoiding undesired side effects such\n * as page scrolling and screen reader issues with CSS transitions.\n */\nexport function focusSafely(element: HTMLElement) {\n // If the user is interacting with a virtual cursor, e.g. screen reader, then\n // wait until after any animated transitions that are currently occurring on\n // the page before shifting focus. This avoids issues with VoiceOver on iOS\n // causing the page to scroll when moving focus if the element is transitioning\n // from off the screen.\n if (getInteractionModality() === 'virtual') {\n let lastFocusedElement = document.activeElement;\n runAfterTransition(() => {\n // If focus did not move and the element is still in the document, focus it.\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nfunction isStyleVisible(element: Element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n\n let {display, visibility} = element.style;\n\n let isVisible = (\n display !== 'none' &&\n visibility !== 'hidden' &&\n visibility !== 'collapse'\n );\n\n if (isVisible) {\n const {getComputedStyle} = element.ownerDocument.defaultView;\n let {display: computedDisplay, visibility: computedVisibility} = getComputedStyle(element);\n\n isVisible = (\n computedDisplay !== 'none' &&\n computedVisibility !== 'hidden' &&\n computedVisibility !== 'collapse'\n );\n }\n\n return isVisible;\n}\n\nfunction isAttributeVisible(element: Element, childElement?: Element) {\n return (\n !element.hasAttribute('hidden') &&\n (element.nodeName === 'DETAILS' &&\n childElement &&\n childElement.nodeName !== 'SUMMARY'\n ? element.hasAttribute('open')\n : true)\n );\n}\n\n/**\n * Adapted from https://github.com/testing-library/jest-dom and \n * https://github.com/vuejs/vue-test-utils-next/.\n * Licensed under the MIT License.\n * @param element - Element to evaluate for display or visibility.\n */ \nexport function isElementVisible(element: Element, childElement?: Element) {\n return (\n element.nodeName !== '#comment' &&\n isStyleVisible(element) &&\n isAttributeVisible(element, childElement) &&\n (!element.parentElement || isElementVisible(element.parentElement, element))\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {focusSafely} from './focusSafely';\nimport {isElementVisible} from './isElementVisible';\nimport React, {ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useLayoutEffect} from '@react-aria/utils';\n\n// import {FocusScope, useFocusScope} from 'react-events/focus-scope';\n// export {FocusScope};\n\ninterface FocusScopeProps {\n /** The contents of the focus scope. */\n children: ReactNode,\n\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean,\n\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean,\n\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean\n}\n\ninterface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: HTMLElement,\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean,\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement,\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement\n}\n\ntype ScopeRef = RefObject;\ninterface IFocusContext {\n scopeRef: ScopeRef,\n focusManager: FocusManager\n}\n\nconst FocusContext = React.createContext(null);\n\nlet activeScope: ScopeRef = null;\nlet scopes: Map = new Map();\n\n// This is a hacky DOM-based implementation of a FocusScope until this RFC lands in React:\n// https://github.com/reactjs/rfcs/pull/109\n// For now, it relies on the DOM tree order rather than the React tree order, and is probably\n// less optimized for performance.\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport function FocusScope(props: FocusScopeProps) {\n let {children, contain, restoreFocus, autoFocus} = props;\n let startRef = useRef();\n let endRef = useRef();\n let scopeRef = useRef([]);\n let ctx = useContext(FocusContext);\n let parentScope = ctx?.scopeRef;\n\n useLayoutEffect(() => {\n // Find all rendered nodes between the sentinels and add them to the scope.\n let node = startRef.current.nextSibling;\n let nodes = [];\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n }, [children, parentScope]);\n\n useLayoutEffect(() => {\n scopes.set(scopeRef, parentScope);\n return () => {\n // Restore the active scope on unmount if this scope or a descendant scope is active.\n // Parent effect cleanups run before children, so we need to check if the\n // parent scope actually still exists before restoring the active scope to it.\n if (\n (scopeRef === activeScope || isAncestorScope(scopeRef, activeScope)) &&\n (!parentScope || scopes.has(parentScope))\n ) {\n activeScope = parentScope;\n }\n scopes.delete(scopeRef);\n };\n }, [scopeRef, parentScope]);\n\n useFocusContainment(scopeRef, contain);\n useRestoreFocus(scopeRef, restoreFocus, contain);\n useAutoFocus(scopeRef, autoFocus);\n\n let focusManager = createFocusManagerForScope(scopeRef);\n\n return (\n \n \n );\n}\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager {\n return useContext(FocusContext)?.focusManager;\n}\n\nfunction createFocusManagerForScope(scopeRef: React.RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = sentinel;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let scope = scopeRef.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let sentinel = scope[scope.length - 1].nextElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = isElementInScope(node, scope) ? node : sentinel;\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = sentinel;\n previousNode = walker.previousNode() as HTMLElement;\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[0].previousElementSibling;\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let scope = scopeRef.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable}, scope);\n walker.currentNode = scope[scope.length - 1].nextElementSibling;\n let previousNode = walker.previousNode() as HTMLElement;\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n }\n };\n}\n\nconst focusableElements = [\n 'input:not([disabled]):not([type=hidden])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'button:not([disabled])',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]'\n];\n\nconst FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]),') + ',[tabindex]:not([disabled]):not([hidden])';\n\nfocusableElements.push('[tabindex]:not([tabindex=\"-1\"]):not([disabled])');\nconst TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([hidden]):not([tabindex=\"-1\"]),');\n\nfunction getScopeRoot(scope: HTMLElement[]) {\n return scope[0].parentElement;\n}\n\nfunction useFocusContainment(scopeRef: RefObject, contain: boolean) {\n let focusedNode = useRef();\n\n let raf = useRef(null);\n useLayoutEffect(() => {\n let scope = scopeRef.current;\n if (!contain) {\n return;\n }\n\n // Handle the Tab key to contain focus within the scope\n let onKeyDown = (e) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey || scopeRef !== activeScope) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n let scope = scopeRef.current;\n if (!isElementInScope(focusedElement, scope)) {\n return;\n }\n\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n if (!nextElement) {\n walker.currentNode = e.shiftKey ? scope[scope.length - 1].nextElementSibling : scope[0].previousElementSibling;\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n }\n\n e.preventDefault();\n if (nextElement) {\n focusElement(nextElement, true);\n }\n };\n\n let onFocus = (e) => {\n // If focusing an element in a child scope of the currently active scope, the child becomes active.\n // Moving out of the active scope to an ancestor is not allowed.\n if (!activeScope || isAncestorScope(activeScope, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n } else if (scopeRef === activeScope && !isElementInChildScope(e.target, scopeRef)) {\n // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),\n // restore focus to the previously focused node or the first tabbable element in the active scope.\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if (activeScope) {\n focusFirstInScope(activeScope.current);\n }\n } else if (scopeRef === activeScope) {\n focusedNode.current = e.target;\n }\n };\n\n let onBlur = (e) => {\n // Firefox doesn't shift focus back to the Dialog properly without this\n raf.current = requestAnimationFrame(() => {\n // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe\n if (scopeRef === activeScope && !isElementInChildScope(document.activeElement, scopeRef)) {\n activeScope = scopeRef;\n focusedNode.current = e.target;\n focusedNode.current.focus();\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(element => element.addEventListener('focusin', onFocus, false));\n scope.forEach(element => element.addEventListener('focusout', onBlur, false));\n return () => {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(element => element.removeEventListener('focusin', onFocus, false));\n scope.forEach(element => element.removeEventListener('focusout', onBlur, false));\n };\n }, [scopeRef, contain]);\n\n // eslint-disable-next-line arrow-body-style\n useEffect(() => {\n return () => cancelAnimationFrame(raf.current);\n }, [raf]);\n}\n\nfunction isElementInAnyScope(element: Element) {\n for (let scope of scopes.keys()) {\n if (isElementInScope(element, scope.current)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isElementInScope(element: Element, scope: HTMLElement[]) {\n return scope.some(node => node.contains(element));\n}\n\nfunction isElementInChildScope(element: Element, scope: ScopeRef) {\n // node.contains in isElementInScope covers child scopes that are also DOM children,\n // but does not cover child scopes in portals.\n for (let s of scopes.keys()) {\n if ((s === scope || isAncestorScope(scope, s)) && isElementInScope(element, s.current)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef) {\n let parent = scopes.get(scope);\n if (!parent) {\n return false;\n }\n\n if (parent === ancestor) {\n return true;\n }\n\n return isAncestorScope(ancestor, parent);\n}\n\nfunction focusElement(element: HTMLElement | null, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {\n // ignore\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n // ignore\n }\n }\n}\n\nfunction focusFirstInScope(scope: HTMLElement[]) {\n let sentinel = scope[0].previousElementSibling;\n let walker = getFocusableTreeWalker(getScopeRoot(scope), {tabbable: true}, scope);\n walker.currentNode = sentinel;\n focusElement(walker.nextNode() as HTMLElement);\n}\n\nfunction useAutoFocus(scopeRef: RefObject, autoFocus: boolean) {\n const autoFocusRef = React.useRef(autoFocus);\n useEffect(() => {\n if (autoFocusRef.current) {\n activeScope = scopeRef;\n if (!isElementInScope(document.activeElement, activeScope.current)) {\n focusFirstInScope(scopeRef.current);\n }\n }\n autoFocusRef.current = false;\n }, []);\n}\n\nfunction useRestoreFocus(scopeRef: RefObject, restoreFocus: boolean, contain: boolean) {\n // create a ref during render instead of useLayoutEffect so the active element is saved before a child with autoFocus=true mounts.\n const nodeToRestoreRef = useRef(typeof document !== 'undefined' ? document.activeElement as HTMLElement : null);\n\n // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.\n useLayoutEffect(() => {\n let nodeToRestore = nodeToRestoreRef.current;\n if (!restoreFocus) {\n return;\n }\n\n // Handle the Tab key so that tabbing out of the scope goes to the next element\n // after the node that had focus when the scope mounted. This is important when\n // using portals for overlays, so that focus goes to the expected element when\n // tabbing out of the overlay.\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n let focusedElement = document.activeElement as HTMLElement;\n if (!isElementInScope(focusedElement, scopeRef.current)) {\n return;\n }\n\n // Create a DOM tree walker that matches all tabbable elements\n let walker = getFocusableTreeWalker(document.body, {tabbable: true});\n\n // Find the next tabbable element after the currently focused element\n walker.currentNode = focusedElement;\n let nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n\n if (!document.body.contains(nodeToRestore) || nodeToRestore === document.body) {\n nodeToRestore = null;\n }\n\n // If there is no next element, or it is outside the current scope, move focus to the\n // next element after the node to restore to instead.\n if ((!nextElement || !isElementInScope(nextElement, scopeRef.current)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n // Skip over elements within the scope, in case the scope immediately follows the node to restore.\n do {\n nextElement = (e.shiftKey ? walker.previousNode() : walker.nextNode()) as HTMLElement;\n } while (isElementInScope(nextElement, scopeRef.current));\n\n e.preventDefault();\n e.stopPropagation();\n if (nextElement) {\n focusElement(nextElement, true);\n } else {\n // If there is no next element and the nodeToRestore isn't within a FocusScope (i.e. we are leaving the top level focus scope)\n // then move focus to the body.\n // Otherwise restore focus to the nodeToRestore (e.g menu within a popover -> tabbing to close the menu should move focus to menu trigger)\n if (!isElementInAnyScope(nodeToRestore)) {\n focusedElement.blur();\n } else {\n focusElement(nodeToRestore, true);\n }\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return () => {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n\n if (restoreFocus && nodeToRestore && isElementInScope(document.activeElement, scopeRef.current)) {\n requestAnimationFrame(() => {\n if (document.body.contains(nodeToRestore)) {\n focusElement(nodeToRestore);\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\n/**\n * Create a [TreeWalker]{@link https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker}\n * that matches all focusable/tabbable elements.\n */\nexport function getFocusableTreeWalker(root: HTMLElement, opts?: FocusManagerOptions, scope?: HTMLElement[]) {\n let selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n let walker = document.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node) {\n // Skip nodes inside the starting node.\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if ((node as HTMLElement).matches(selector)\n && isElementVisible(node as HTMLElement)\n && (!scope || isElementInScope(node as HTMLElement, scope))) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }\n );\n\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\n\n/**\n * Creates a FocusManager object that can be used to move focus within an element.\n */\nexport function createFocusManager(ref: RefObject): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as HTMLElement;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as HTMLElement;\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusPrevious(opts: FocusManagerOptions = {}) {\n let root = ref.current;\n let {from, tabbable, wrap} = opts;\n let node = from || document.activeElement;\n let walker = getFocusableTreeWalker(root, {tabbable});\n if (root.contains(node)) {\n walker.currentNode = node;\n } else {\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode() as HTMLElement;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n },\n focusFirst(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let nextNode = walker.nextNode() as HTMLElement;\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n },\n focusLast(opts = {}) {\n let root = ref.current;\n let {tabbable} = opts;\n let walker = getFocusableTreeWalker(root, {tabbable});\n let next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n };\n}\n\nfunction last(walker: TreeWalker) {\n let next: HTMLElement;\n let last: HTMLElement;\n do {\n last = walker.lastChild() as HTMLElement;\n if (last) {\n next = last;\n }\n } while (last);\n return next;\n}\n","import {HTMLAttributes, useState} from 'react';\nimport {isFocusVisible, useFocus, useFocusVisibleListener, useFocusWithin} from '@react-aria/interactions';\nimport {useRef} from 'react';\n\ninterface FocusRingProps {\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default 'false'\n */\n within?: boolean,\n\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\ninterface FocusRingAria {\n /** Whether the element is currently focused. */\n isFocused: boolean,\n\n /** Whether keyboard focus should be visible. */\n isFocusVisible: boolean,\n\n /** Props to apply to the container element with the focus ring. */\n focusProps: HTMLAttributes\n}\n\n/**\n * Determines whether a focus ring should be shown to indicate keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function useFocusRing(props: FocusRingProps = {}): FocusRingAria {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || isFocusVisible()\n }).current;\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.isFocused && state.isFocusVisible);\n\n let updateState = () => setFocusVisible(state.isFocused && state.isFocusVisible);\n\n let onFocusChange = isFocused => {\n state.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n };\n\n useFocusVisibleListener((isFocusVisible) => {\n state.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: state.isFocused && isFocusVisibleState,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {ReactElement} from 'react';\nimport {useFocusRing} from './useFocusRing';\n\ninterface FocusRingProps {\n /** Child element to apply CSS classes to. */\n children: ReactElement,\n /** CSS class to apply when the element is focused. */\n focusClass?: string,\n /** CSS class to apply when the element has keyboard focus. */\n focusRingClass?: string,\n /**\n * Whether to show the focus ring when something\n * inside the container element has focus (true), or\n * only if the container itself has focus (false).\n * @default false\n */\n within?: boolean,\n /** Whether the element is a text input. */\n isTextInput?: boolean,\n /** Whether the element will be auto focused. */\n autoFocus?: boolean\n}\n\n/**\n * A utility component that applies a CSS class when an element has keyboard focus.\n * Focus rings are visible only when the user is interacting with a keyboard,\n * not with a mouse, touch, or other input methods.\n */\nexport function FocusRing(props: FocusRingProps) {\n let {children, focusClass, focusRingClass} = props;\n let {isFocused, isFocusVisible, focusProps} = useFocusRing(props);\n let child = React.Children.only(children);\n\n return React.cloneElement(child, mergeProps(child.props, {\n ...focusProps,\n className: clsx({\n [focusClass || '']: isFocused,\n [focusRingClass || '']: isFocusVisible\n })\n }));\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {FocusableDOMProps, FocusableProps} from '@react-types/shared';\nimport {mergeProps, useSyncRef} from '@react-aria/utils';\nimport React, {HTMLAttributes, MutableRefObject, ReactNode, RefObject, useContext, useEffect, useRef} from 'react';\nimport {useFocus, useKeyboard} from '@react-aria/interactions';\n\ninterface FocusableOptions extends FocusableProps, FocusableDOMProps {\n /** Whether focus should be disabled. */\n isDisabled?: boolean\n}\n\ninterface FocusableProviderProps extends HTMLAttributes {\n /** The child element to provide DOM props to. */\n children?: ReactNode\n}\n\ninterface FocusableContextValue extends FocusableProviderProps {\n ref?: MutableRefObject\n}\n\nlet FocusableContext = React.createContext(null);\n\nfunction useFocusableContext(ref: RefObject): FocusableContextValue {\n let context = useContext(FocusableContext) || {};\n useSyncRef(context, ref);\n\n // eslint-disable-next-line\n let {ref: _, ...otherProps} = context;\n return otherProps;\n}\n\n/**\n * Provides DOM props to the nearest focusable child.\n */\nfunction FocusableProvider(props: FocusableProviderProps, ref: RefObject) {\n let {children, ...otherProps} = props;\n let context = {\n ...otherProps,\n ref\n };\n\n return (\n \n {children}\n \n );\n}\n\nlet _FocusableProvider = React.forwardRef(FocusableProvider);\nexport {_FocusableProvider as FocusableProvider};\n\n/**\n * Used to make an element focusable and capable of auto focus.\n */\nexport function useFocusable(props: FocusableOptions, domRef: RefObject) {\n let {focusProps} = useFocus(props);\n let {keyboardProps} = useKeyboard(props);\n let interactions = mergeProps(focusProps, keyboardProps);\n let domProps = useFocusableContext(domRef);\n let interactionProps = props.isDisabled ? {} : domProps;\n let autoFocusRef = useRef(props.autoFocus);\n\n useEffect(() => {\n if (autoFocusRef.current && domRef.current) {\n domRef.current.focus();\n }\n autoFocusRef.current = false;\n }, []);\n\n return {\n focusableProps: mergeProps(\n {\n ...interactions,\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n },\n interactionProps\n )\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {useCallback, useRef, useState} from 'react';\n\nexport function useControlledState(\n value: T,\n defaultValue: T,\n onChange: (value: T, ...args: any[]) => void\n): [T, (value: T, ...args: any[]) => void] {\n let [stateValue, setStateValue] = useState(value || defaultValue);\n let ref = useRef(value !== undefined);\n let wasControlled = ref.current;\n let isControlled = value !== undefined;\n // Internal state reference for useCallback\n let stateRef = useRef(stateValue);\n if (wasControlled !== isControlled) {\n console.warn(`WARN: A component changed from ${wasControlled ? 'controlled' : 'uncontrolled'} to ${isControlled ? 'controlled' : 'uncontrolled'}.`);\n }\n\n ref.current = isControlled;\n\n let setValue = useCallback((value, ...args) => {\n let onChangeCaller = (value, ...onChangeArgs) => {\n if (onChange) {\n if (!Object.is(stateRef.current, value)) {\n onChange(value, ...onChangeArgs);\n }\n }\n if (!isControlled) {\n stateRef.current = value;\n }\n };\n\n if (typeof value === 'function') {\n console.warn('We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320');\n // this supports functional updates https://reactjs.org/docs/hooks-reference.html#functional-updates\n // when someone using useControlledState calls setControlledState(myFunc)\n // this will call our useState setState with a function as well which invokes myFunc and calls onChange with the value from myFunc\n // if we're in an uncontrolled state, then we also return the value of myFunc which to setState looks as though it was just called with myFunc from the beginning\n // otherwise we just return the controlled value, which won't cause a rerender because React knows to bail out when the value is the same\n let updateFunction = (oldValue, ...functionArgs) => {\n let interceptedValue = value(isControlled ? stateRef.current : oldValue, ...functionArgs);\n onChangeCaller(interceptedValue, ...args);\n if (!isControlled) {\n return interceptedValue;\n }\n return oldValue;\n };\n setStateValue(updateFunction);\n } else {\n if (!isControlled) {\n setStateValue(value);\n }\n onChangeCaller(value, ...args);\n }\n }, [isControlled, onChange]);\n\n // If a controlled component's value prop changes, we need to update stateRef\n if (isControlled) {\n stateRef.current = value;\n } else {\n value = stateValue;\n }\n\n return [value, setValue];\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n/**\n * Takes a value and forces it to the closest min/max if it's outside. Also forces it to the closest valid step.\n */\nexport function clamp(value: number, min: number = -Infinity, max: number = Infinity): number {\n let newValue = Math.min(Math.max(value, min), max);\n return newValue;\n}\n\nexport function snapValueToStep(value: number, min: number, max: number, step: number): number {\n let remainder = ((value - (isNaN(min) ? 0 : min)) % step);\n let snappedValue = Math.abs(remainder) * 2 >= step\n ? value + Math.sign(remainder) * (step - Math.abs(remainder))\n : value - remainder;\n\n if (!isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = min + Math.floor((max - min) / step) * step;\n }\n } else if (!isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(max / step) * step;\n }\n\n // correct floating point behavior by rounding to step precision\n let string = step.toString();\n let index = string.indexOf('.');\n let precision = index >= 0 ? string.length - index : 0;\n\n if (precision > 0) {\n let pow = Math.pow(10, precision);\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n\n return snappedValue;\n}\n\n/* Takes a value and rounds off to the number of digits. */\nexport function toFixedNumber(value: number, digits: number, base: number = 10): number {\n const pow = Math.pow(base, digits);\n\n return Math.round(value * pow) / pow;\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 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 */\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;","/**\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;","import { createContext } from 'react';\nexport const AlertContext = createContext({});\n","import React from 'react';\nimport { findNodeHandle, Platform, StyleSheet } from 'react-native';\nimport ReanimatedEventEmitter from './ReanimatedEventEmitter';\n// @ts-ignore JS file\nimport AnimatedEvent from './reanimated1/core/AnimatedEvent';\n// @ts-ignore JS file\nimport AnimatedNode from './reanimated1/core/AnimatedNode';\n// @ts-ignore JS file\nimport AnimatedValue from './reanimated1/core/AnimatedValue';\n// @ts-ignore JS file\nimport { createOrReusePropsNode } from './reanimated1/core/AnimatedProps';\nimport WorkletEventHandler from './reanimated2/WorkletEventHandler';\nimport setAndForwardRef from './setAndForwardRef';\nimport './reanimated2/layoutReanimation/LayoutAnimationRepository';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from './ConfigHelper';\nimport { RNRenderer } from './reanimated2/platform-specific/RNRenderer';\nimport { makeMutable, runOnUI, enableLayoutAnimations, } from './reanimated2/core';\nimport { DefaultEntering, DefaultExiting, DefaultLayout, } from './reanimated2/layoutReanimation/defaultAnimations/Default';\nimport { isJest, isChromeDebugger, shouldBeUseWeb, } from './reanimated2/PlatformChecker';\nimport { initialUpdaterRun } from './reanimated2/animation';\nconst NODE_MAPPING = new Map();\nfunction listener(data) {\n const component = NODE_MAPPING.get(data.viewTag);\n component && component._updateFromNative(data.props);\n}\nfunction dummyListener() {\n // empty listener we use to assign to listener properties for which animated\n // event is used.\n}\nfunction hasAnimatedNodes(value) {\n if (value instanceof AnimatedNode) {\n return true;\n }\n if (Array.isArray(value)) {\n return value.some((item) => hasAnimatedNodes(item));\n }\n if (value && typeof value === 'object') {\n return Object.keys(value).some((key) => hasAnimatedNodes(value[key]));\n }\n return false;\n}\nfunction flattenArray(array) {\n if (!Array.isArray(array)) {\n return [array];\n }\n const resultArr = [];\n const _flattenArray = (arr) => {\n arr.forEach((item) => {\n if (Array.isArray(item)) {\n _flattenArray(item);\n }\n else {\n resultArr.push(item);\n }\n });\n };\n _flattenArray(array);\n return resultArr;\n}\nfunction onlyAnimatedStyles(styles) {\n return styles.filter((style) => style === null || style === void 0 ? void 0 : style.viewDescriptors);\n}\nfunction isSameAnimatedStyle(style1, style2) {\n // We cannot use equality check to compare useAnimatedStyle outputs directly.\n // Instead, we can compare its viewsRefs.\n return (style1 === null || style1 === void 0 ? void 0 : style1.viewsRef) === (style2 === null || style2 === void 0 ? void 0 : style2.viewsRef);\n}\nconst isSameAnimatedProps = isSameAnimatedStyle;\nconst has = (key, x) => {\n if (typeof x === 'function' || typeof x === 'object') {\n if (x === null || x === undefined) {\n return false;\n }\n else {\n return key in x;\n }\n }\n return false;\n};\nexport default function createAnimatedComponent(Component, options) {\n invariant(typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent), '`createAnimatedComponent` does not support stateless functional components; ' +\n 'use a class component instead.');\n class AnimatedComponent extends React.Component {\n constructor(props) {\n super(props);\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._styles = null;\n this._viewTag = -1;\n this._isFirstRender = true;\n this.animatedStyle = { value: {} };\n this.initialStyle = {};\n this._component = null;\n // The system is best designed when setNativeProps is implemented. It is\n // able to avoid re-rendering and directly set the attributes that changed.\n // However, setNativeProps can only be implemented on native components\n // If you want to animate a composite component, you need to re-render it.\n // In this case, we have a fallback that uses forceUpdate.\n this._animatedPropsCallback = () => {\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 }\n else if (typeof this._component.setNativeProps !== 'function') {\n this.forceUpdate();\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._component.setNativeProps(this._propsAnimated.__getValue());\n }\n };\n this._setComponentRef = setAndForwardRef({\n getForwardedRef: () => this.props.forwardedRef,\n setLocalRef: (ref) => {\n // TODO update config\n const tag = findNodeHandle(ref);\n if ((this.props.layout || this.props.entering || this.props.exiting) &&\n tag != null) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n let layout = this.props.layout ? this.props.layout : DefaultLayout;\n let entering = this.props.entering\n ? this.props.entering\n : DefaultEntering;\n let exiting = this.props.exiting\n ? this.props.exiting\n : DefaultExiting;\n if (has('build', layout)) {\n layout = layout.build();\n }\n if (has('build', entering)) {\n entering = entering.build();\n }\n if (has('build', exiting)) {\n exiting = exiting.build();\n }\n const config = {\n layout,\n entering,\n exiting,\n sv: this.sv,\n };\n runOnUI(() => {\n 'worklet';\n global.LayoutAnimationRepository.registerConfig(tag, config);\n })();\n }\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n this._attachProps(this.props);\n if (isJest()) {\n this.animatedStyle = { value: {} };\n }\n this.sv = makeMutable({});\n }\n componentWillUnmount() {\n this._detachPropUpdater();\n this._propsAnimated && this._propsAnimated.__detach();\n this._detachNativeEvents();\n this._detachStyles();\n this.sv = null;\n }\n componentDidMount() {\n if (this._invokeAnimatedPropsCallbackOnMount) {\n this._invokeAnimatedPropsCallbackOnMount = false;\n this._animatedPropsCallback();\n }\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component);\n this._attachNativeEvents();\n this._attachPropUpdater();\n this._attachAnimatedStyles();\n }\n _getEventViewRef() {\n var _a;\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return ((_a = this._component) === null || _a === void 0 ? void 0 : _a.getScrollableNode) ? this._component.getScrollableNode()\n : this._component;\n }\n _attachNativeEvents() {\n const node = this._getEventViewRef();\n const viewTag = findNodeHandle((options === null || options === void 0 ? void 0 : options.setNativeProps) ? this : node);\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n prop.attachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n prop.current.registerForEvents(viewTag, key);\n }\n }\n }\n _detachNativeEvents() {\n const node = this._getEventViewRef();\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n prop.detachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n _detachStyles() {\n var _a;\n if (Platform.OS === 'web' && this._styles !== null) {\n for (const style of this._styles) {\n if (style === null || style === void 0 ? void 0 : style.viewsRef) {\n style.viewsRef.remove(this);\n }\n }\n }\n else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if ((_a = this.props.animatedProps) === null || _a === void 0 ? void 0 : _a.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n }\n }\n _reattachNativeEvents(prevProps) {\n const node = this._getEventViewRef();\n const attached = new Set();\n const nextEvts = new Set();\n let viewTag;\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n nextEvts.add(prop.__nodeID);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler) {\n if (viewTag === undefined) {\n viewTag = prop.current.viewTag;\n }\n }\n }\n for (const key in prevProps) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent) {\n if (!nextEvts.has(prop.__nodeID)) {\n // event was in prev props but not in current props, we detach\n prop.detachEvent(node, key);\n }\n else {\n // event was in prev and is still in current props\n attached.add(prop.__nodeID);\n }\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded) {\n prop.current.unregisterFromEvents();\n }\n }\n for (const key in this.props) {\n const prop = this.props[key];\n if (prop instanceof AnimatedEvent &&\n !attached.has(prop.__nodeID)) {\n // not yet attached\n prop.attachEvent(node, key);\n }\n else if (has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prop.current.registerForEvents(viewTag, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n _attachProps(nextProps) {\n const oldPropsAnimated = this._propsAnimated;\n this._propsAnimated = createOrReusePropsNode(nextProps, this._animatedPropsCallback, oldPropsAnimated);\n // If prop node has been reused we don't need to call into \"__detach\"\n if (oldPropsAnimated !== this._propsAnimated) {\n // 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 oldPropsAnimated && oldPropsAnimated.__detach();\n }\n }\n _updateFromNative(props) {\n var _a, _b;\n if (options === null || options === void 0 ? void 0 : options.setNativeProps) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n options.setNativeProps(this._component, props);\n }\n else {\n // eslint-disable-next-line no-unused-expressions\n (_b = (_a = this._component) === null || _a === void 0 ? void 0 : _a.setNativeProps) === null || _b === void 0 ? void 0 : _b.call(_a, props);\n }\n }\n _attachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.set(viewTag, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedPropsChange', listener);\n }\n }\n _attachAnimatedStyles() {\n var _a, _b, _c;\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n let viewTag;\n let viewName;\n if (Platform.OS === 'web') {\n viewTag = findNodeHandle(this);\n viewName = null;\n }\n else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(this);\n if (!hostInstance) {\n throw new Error('Cannot find host instance for this component. Maybe it renders nothing?');\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/master/Libraries/Components/ScrollView/ScrollViewViewConfig.js#L16).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = (_a = hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig) === null || _a === void 0 ? void 0 : _a.uiViewClassName;\n // update UI props whitelist for this view\n const hasReanimated2Props = ((_b = this.props.animatedProps) === null || _b === void 0 ? void 0 : _b.viewDescriptors) || styles.length;\n if (hasReanimated2Props && (hostInstance === null || hostInstance === void 0 ? void 0 : hostInstance.viewConfig)) {\n adaptViewConfig(hostInstance.viewConfig);\n }\n }\n this._viewTag = viewTag;\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle = styles.length === 1 &&\n prevStyles.length === 1 &&\n isSameAnimatedStyle(styles[0], prevStyles[0]);\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) => isSameAnimatedStyle(style, prevStyle));\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n styles.forEach((style) => {\n style.viewDescriptors.add({ tag: viewTag, name: viewName });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.animatedStyle.value = Object.assign(Object.assign({}, this.animatedStyle.value), style.initial.value);\n style.animatedStyle.current = this.animatedStyle;\n }\n });\n // detach old animatedProps\n if (prevAnimatedProps &&\n !isSameAnimatedProps(prevAnimatedProps, this.props.animatedProps)) {\n prevAnimatedProps.viewDescriptors.remove(viewTag);\n }\n // attach animatedProps property\n if ((_c = this.props.animatedProps) === null || _c === void 0 ? void 0 : _c.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n tag: viewTag,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n name: viewName,\n });\n }\n }\n _detachPropUpdater() {\n const viewTag = findNodeHandle(this);\n NODE_MAPPING.delete(viewTag);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedPropsChange');\n }\n }\n componentDidUpdate(prevProps) {\n this._attachProps(this.props);\n this._reattachNativeEvents(prevProps);\n this._propsAnimated &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this._propsAnimated.setNativeView(this._component);\n this._attachAnimatedStyles();\n }\n _filterNonAnimatedStyle(inputStyle) {\n const style = {};\n for (const key in inputStyle) {\n const value = inputStyle[key];\n if (!hasAnimatedNodes(value)) {\n style[key] = value;\n }\n else if (value instanceof AnimatedValue) {\n // if any style in animated component is set directly to the `Value` we set those styles to the first value of `Value` node in order\n // to avoid flash of default styles when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n style[key] = value._startingValue;\n }\n }\n return style;\n }\n _filterNonAnimatedProps(inputProps) {\n const props = {};\n for (const key in inputProps) {\n const value = inputProps[key];\n if (key === 'style') {\n const styleProp = inputProps.style;\n const styles = flattenArray(styleProp !== null && styleProp !== void 0 ? styleProp : []);\n const processedStyle = styles.map((style) => {\n if (style && style.viewDescriptors) {\n // this is how we recognize styles returned by useAnimatedStyle\n style.viewsRef.add(this);\n if (this._isFirstRender) {\n this.initialStyle = Object.assign(Object.assign({}, style.initial.value), initialUpdaterRun(style.initial.updater));\n }\n return this.initialStyle;\n }\n else {\n return style;\n }\n });\n props[key] = this._filterNonAnimatedStyle(StyleSheet.flatten(processedStyle));\n }\n else if (key === 'animatedProps') {\n const animatedProp = inputProps.animatedProps;\n if (animatedProp.initial !== undefined) {\n Object.keys(animatedProp.initial.value).forEach((key) => {\n var _a, _b;\n props[key] = (_a = animatedProp.initial) === null || _a === void 0 ? void 0 : _a.value[key];\n (_b = animatedProp.viewsRef) === null || _b === void 0 ? void 0 : _b.add(this);\n });\n }\n }\n else if (value instanceof AnimatedEvent) {\n // we cannot filter out event listeners completely as some components\n // rely on having a callback registered in order to generate events\n // alltogether. Therefore we provide a dummy callback here to allow\n // native event dispatcher to hijack events.\n props[key] = dummyListener;\n }\n else if (has('current', value) &&\n value.current instanceof WorkletEventHandler) {\n if (value.current.eventNames.length > 0) {\n value.current.eventNames.forEach((eventName) => {\n props[eventName] = has('listeners', value.current)\n ? value.current.listeners[eventName]\n : dummyListener;\n });\n }\n else {\n props[key] = dummyListener;\n }\n }\n else if (!(value instanceof AnimatedNode)) {\n if (key !== 'onGestureHandlerStateChange' || !isChromeDebugger()) {\n props[key] = value;\n }\n }\n else if (value instanceof AnimatedValue) {\n // if any prop in animated component is set directly to the `Value` we set those props to the first value of `Value` node in order\n // to avoid default values for a short moment when `Value` is being asynchrounously sent via bridge and initialized in the native side.\n props[key] = value._startingValue;\n }\n }\n return props;\n }\n render() {\n const props = this._filterNonAnimatedProps(this.props);\n if (isJest()) {\n props.animatedStyle = this.animatedStyle;\n }\n if (this._isFirstRender) {\n this._isFirstRender = false;\n }\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n return ();\n }\n }\n AnimatedComponent.displayName = `AnimatedComponent(${Component.displayName || Component.name || 'Component'})`;\n return React.forwardRef((props, ref) => {\n return ();\n });\n}\n","import NativeReanimatedModule from './NativeReanimated';\nfunction jsListener(eventName, handler) {\n return (evt) => {\n handler(Object.assign(Object.assign({}, evt.nativeEvent), { eventName }));\n };\n}\nexport default class WorkletEventHandler {\n constructor(worklet, eventNames = []) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n if (!NativeReanimatedModule.native) {\n this.listeners = eventNames.reduce((acc, eventName) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n }, {});\n }\n }\n updateWorklet(newWorklet) {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n registerForEvents(viewTag, fallbackEventName) {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) => NativeReanimatedModule.registerEventHandler(viewTag + eventName, this.worklet));\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(NativeReanimatedModule.registerEventHandler(viewTag + fallbackEventName, this.worklet));\n }\n }\n unregisterFromEvents() {\n this.registrations.forEach((id) => NativeReanimatedModule.unregisterEventHandler(id));\n this.registrations = [];\n }\n}\n","const borderWidths = {\n '0': 0,\n '1': '1px',\n '2': '2px',\n '4': '4px',\n '8': '8px',\n};\n\nexport type IBorderWidth = keyof typeof borderWidths;\n\nexport default borderWidths;\n","const breakpoints = {\n 'base': 0,\n 'sm': 480,\n 'md': 768,\n 'lg': 992,\n 'xl': 1280,\n '2xl': 1536,\n};\nexport type IBreakpoint = keyof typeof breakpoints;\n\nexport default breakpoints;\n","const radii = {\n 'none': 0,\n 'xs': 2,\n 'sm': 4,\n 'md': 6,\n 'lg': 8,\n 'xl': 12,\n '2xl': 16,\n '3xl': 24,\n 'full': 9999,\n};\n\nexport type IRadii = keyof typeof radii;\n\nexport default radii;\n","import colors from './colors';\nconst shadow = {\n 'none': {\n shadowColor: 'transparent',\n shadowOffset: {\n width: 0,\n height: 0,\n },\n shadowOpacity: 0,\n shadowRadius: 0,\n elevation: 0,\n },\n '0': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n elevation: 1,\n },\n '1': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n elevation: 2,\n },\n '2': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n elevation: 3,\n },\n '3': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n elevation: 4,\n },\n '4': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n elevation: 5,\n },\n '5': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n elevation: 6,\n },\n '6': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 3,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n elevation: 7,\n },\n '7': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n elevation: 8,\n },\n '8': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 4,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n elevation: 9,\n },\n '9': {\n shadowColor: colors.black,\n shadowOffset: {\n width: 0,\n height: 5,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n elevation: 10,\n },\n};\n\nexport type IShadow = keyof typeof shadow;\nexport default shadow;\n","export const spacing = {\n 'px': '1px',\n '0': 0,\n '0.5': 2,\n '1': 4,\n '1.5': 6,\n '2': 8,\n '2.5': 10,\n '3': 12,\n '3.5': 14,\n '4': 16,\n '5': 20,\n '6': 24,\n '7': 28,\n '8': 32,\n '9': 36,\n '10': 40,\n '12': 48,\n '16': 64,\n '20': 80,\n '24': 96,\n '32': 128,\n '40': 160,\n '48': 192,\n '56': 224,\n '64': 256,\n '72': 288,\n '80': 320,\n '96': 384,\n '1/2': '50%',\n '1/3': '33.333%',\n '2/3': '66.666%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666%',\n '2/6': '33.333%',\n '3/6': '50%',\n '4/6': '66.666%',\n '5/6': '83.333%',\n 'full': '100%',\n};\n\nexport type ISpacing = keyof typeof spacing;\n","import { spacing } from './space';\n\nconst container = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n};\n\nconst sizes = {\n ...spacing,\n ...{\n '3xs': 224,\n '2xs': 256,\n 'xs': 320,\n 'sm': 384,\n 'md': 448,\n 'lg': 512,\n 'xl': 576,\n '2xl': 672,\n },\n container,\n};\n\nexport type ISizes = keyof typeof sizes;\nexport default sizes;\n","const opacity = {\n 0: 0,\n 5: 0.05,\n 10: 0.1,\n 20: 0.2,\n 25: 0.25,\n 30: 0.3,\n 40: 0.4,\n 50: 0.5,\n 60: 0.6,\n 70: 0.7,\n 75: 0.75,\n 80: 0.8,\n 90: 0.9,\n 95: 0.95,\n 100: 1,\n};\nexport type IOpacity = keyof typeof opacity;\n\nexport default opacity;\n","const typography = {\n letterSpacings: {\n 'xs': '-0.05em',\n 'sm': '-0.025em',\n 'md': 0,\n 'lg': '0.025em',\n 'xl': '0.05em',\n '2xl': '0.1em',\n },\n lineHeights: {\n '2xs': '1em',\n 'xs': '1.125em',\n 'sm': '1.25em',\n 'md': '1.375em',\n 'lg': '1.5em',\n 'xl': '1.75em',\n '2xl': '2em',\n '3xl': '2.5em',\n '4xl': '3em',\n '5xl': '4em',\n },\n fontConfig: {\n // Roboto: {\n // 100: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 200: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 300: {\n // normal: 'Roboto-Light',\n // italic: 'Roboto-LightItalic',\n // },\n // 400: {\n // normal: 'Roboto-Regular',\n // italic: 'Roboto-Italic',\n // },\n // 500: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 600: {\n // normal: 'Roboto-Medium',\n // italic: 'Roboto-MediumItalic',\n // },\n // 700: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 800: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // 900: {\n // normal: 'Roboto-Bold',\n // italic: 'Roboto-BoldItalic',\n // },\n // },\n // Montserrat: {\n // 100: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 200: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 300: {\n // normal: 'Montserrat-Light',\n // italic: 'Montserrat-LightItalic',\n // },\n // 400: {\n // normal: 'Montserrat-Regular',\n // italic: 'Montserrat-Italic',\n // },\n // 500: {\n // normal: 'Montserrat-Medium',\n // italic: 'Montserrat-MediumItalic',\n // },\n // 600: {\n // normal: 'Montserrat-SemiBold',\n // italic: 'Montserrat-SemiBoldItalic',\n // },\n // 700: {\n // normal: 'Montserrat-Bold',\n // italic: 'Montserrat-BoldItalic',\n // },\n // 800: {\n // normal: 'Montserrat-ExtraBold',\n // italic: 'Montserrat-ExtraBoldItalic',\n // },\n // 900: {\n // normal: 'Montserrat-Black',\n // italic: 'Montserrat-BlackItalic',\n // },\n // },\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n extraBlack: 950,\n },\n fonts: {\n heading: undefined,\n body: undefined,\n mono: undefined,\n },\n fontSizes: {\n '2xs': 10,\n 'xs': 12,\n 'sm': 14,\n 'md': 16,\n 'lg': 18,\n 'xl': 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 60,\n '7xl': 72,\n '8xl': 96,\n '9xl': 128,\n },\n};\n\nexport type ITypography = typeof typography;\nexport type IFontSize = keyof typeof typography.fontSizes;\nexport type ILetterSpacing = keyof typeof typography.letterSpacings;\nexport type ILineHeight = keyof typeof typography.lineHeights;\nexport type IFontWeight = keyof typeof typography.fontWeights;\n// export type IFont = typeof typography.fonts;\nexport interface IFont {\n heading?: string;\n body?: string;\n mono?: string;\n}\n\nexport default typography;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import React from 'react';\n\ntype ResponsiveQueryContextType = {\n disableCSSMediaQueries?: boolean;\n};\n\nexport const ResponsiveQueryContext = React.createContext(\n {\n disableCSSMediaQueries: false,\n }\n);\n\nexport const ResponsiveQueryProvider = (\n props: ResponsiveQueryContextType & { children: React.ReactNode }\n) => {\n const value = React.useMemo(\n () => ({\n disableCSSMediaQueries: props.disableCSSMediaQueries,\n }),\n [props.disableCSSMediaQueries]\n );\n\n return (\n \n {props.children}\n \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 */\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}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","/**\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 */\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) 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) 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;","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 } // For issue https://github.com/necolas/react-native-web/issues/995\n\n\n _this.invertedWheelEventHandler = function (ev) {\n if (_this.props.inverted && _this._scrollRef && _this._scrollRef.getScrollableNode) {\n var node = _this._scrollRef.getScrollableNode();\n\n if (_this.props.horizontal) {\n node.scrollLeft -= ev.deltaX || ev.wheelDeltaX;\n } else {\n node.scrollTop -= ev.deltaY || ev.wheelDeltaY;\n }\n\n ev.preventDefault();\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 this.setupWebWheelHandler();\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 this.teardownWebWheelHandler();\n };\n\n _proto.setupWebWheelHandler = function setupWebWheelHandler() {\n var _this2 = this;\n\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().addEventListener('wheel', this.invertedWheelEventHandler);\n } else {\n setTimeout(function () {\n return _this2.setupWebWheelHandler();\n }, 50);\n return;\n }\n };\n\n _proto.teardownWebWheelHandler = function teardownWebWheelHandler() {\n if (this._scrollRef && this._scrollRef.getScrollableNode) {\n this._scrollRef.getScrollableNode().removeEventListener('wheel', this.invertedWheelEventHandler);\n }\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 _this3 = 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 _this3._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: _this3._fillRateHelper,\n horizontal: horizontal,\n index: ii,\n inversionStyle: inversionStyle,\n item: item,\n key: key,\n prevCellKey: prevCellKey,\n onUpdateSeparators: _this3._onUpdateSeparators,\n onLayout: function onLayout(e) {\n return _this3._onCellLayout(e, key, ii);\n },\n onUnmount: _this3._onCellUnmount,\n parentProps: _this3.props,\n ref: function ref(_ref) {\n _this3._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 _this4 = 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 _this4._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 _this5 = 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 _this5._offsetFromParentVirtualizedList = _this5._selectOffset({\n x: x,\n y: y\n });\n _this5._scrollMetrics.contentLength = _this5._selectLength({\n width: width,\n height: height\n });\n\n var scrollMetrics = _this5._convertParentScrollMetrics(_this5.context.getScrollMetrics());\n\n _this5._scrollMetrics.visibleLength = scrollMetrics.visibleLength;\n _this5._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 _this6 = this;\n\n var getItemCount = this.props.getItemCount;\n\n this._viewabilityTuples.forEach(function (tuple) {\n tuple.viewabilityHelper.onUpdate(getItemCount(data), _this6._scrollMetrics.offset, _this6._scrollMetrics.visibleLength, _this6._getFrameMetrics, _this6._createViewToken, tuple.onViewableItemsChanged, _this6.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 _this7;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this7 = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this7.state = {\n separatorProps: {\n highlighted: false,\n leadingItem: _this7.props.item\n }\n };\n _this7._separators = {\n highlight: function highlight() {\n var _this7$props = _this7.props,\n cellKey = _this7$props.cellKey,\n prevCellKey = _this7$props.prevCellKey;\n\n _this7.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: true\n });\n },\n unhighlight: function unhighlight() {\n var _this7$props2 = _this7.props,\n cellKey = _this7$props2.cellKey,\n prevCellKey = _this7$props2.prevCellKey;\n\n _this7.props.onUpdateSeparators([cellKey, prevCellKey], {\n highlighted: false\n });\n },\n updateProps: function updateProps(select, newProps) {\n var _this7$props3 = _this7.props,\n cellKey = _this7$props3.cellKey,\n prevCellKey = _this7$props3.prevCellKey;\n\n _this7.props.onUpdateSeparators([select === 'leading' ? prevCellKey : cellKey], newProps);\n }\n };\n return _this7;\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;","import {useMemo as t, useState as e, useEffect as n, useCallback as r} from 'react'\nvar a = {\n lessThanXSeconds: {one: 'less than a second', other: 'less than {{count}} seconds'},\n xSeconds: {one: '1 second', other: '{{count}} seconds'},\n halfAMinute: 'half a minute',\n lessThanXMinutes: {one: 'less than a minute', other: 'less than {{count}} minutes'},\n xMinutes: {one: '1 minute', other: '{{count}} minutes'},\n aboutXHours: {one: 'about 1 hour', other: 'about {{count}} hours'},\n xHours: {one: '1 hour', other: '{{count}} hours'},\n xDays: {one: '1 day', other: '{{count}} days'},\n aboutXWeeks: {one: 'about 1 week', other: 'about {{count}} weeks'},\n xWeeks: {one: '1 week', other: '{{count}} weeks'},\n aboutXMonths: {one: 'about 1 month', other: 'about {{count}} months'},\n xMonths: {one: '1 month', other: '{{count}} months'},\n aboutXYears: {one: 'about 1 year', other: 'about {{count}} years'},\n xYears: {one: '1 year', other: '{{count}} years'},\n overXYears: {one: 'over 1 year', other: 'over {{count}} years'},\n almostXYears: {one: 'almost 1 year', other: 'almost {{count}} years'},\n}\nfunction i(t) {\n return function (e) {\n var n = e || {},\n r = n.width ? String(n.width) : t.defaultWidth\n return t.formats[r] || t.formats[t.defaultWidth]\n }\n}\nvar o = {\n date: i({\n formats: {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy',\n },\n defaultWidth: 'full',\n }),\n time: i({\n formats: {full: 'h:mm:ss a zzzz', long: 'h:mm:ss a z', medium: 'h:mm:ss a', short: 'h:mm a'},\n defaultWidth: 'full',\n }),\n dateTime: i({\n formats: {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}',\n },\n defaultWidth: 'full',\n }),\n },\n u = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P',\n }\nfunction s(t) {\n return function (e, n) {\n var r,\n a = n || {}\n if ('formatting' === (a.context ? String(a.context) : 'standalone') && t.formattingValues) {\n var i = t.defaultFormattingWidth || t.defaultWidth,\n o = a.width ? String(a.width) : i\n r = t.formattingValues[o] || t.formattingValues[i]\n } else {\n var u = t.defaultWidth,\n s = a.width ? String(a.width) : t.defaultWidth\n r = t.values[s] || t.values[u]\n }\n return r[t.argumentCallback ? t.argumentCallback(e) : e]\n }\n}\nfunction c(t) {\n return function (e, n) {\n var r = String(e),\n a = n || {},\n i = a.width,\n o = (i && t.matchPatterns[i]) || t.matchPatterns[t.defaultMatchWidth],\n u = r.match(o)\n if (!u) return null\n var s,\n c = u[0],\n d = (i && t.parsePatterns[i]) || t.parsePatterns[t.defaultParseWidth]\n return (\n (s =\n '[object Array]' === Object.prototype.toString.call(d)\n ? (function (t, e) {\n for (var n = 0; n < t.length; n++) if (e(t[n])) return n\n })(d, function (t) {\n return t.test(c)\n })\n : (function (t, e) {\n for (var n in t) if (t.hasOwnProperty(n) && e(t[n])) return n\n })(d, function (t) {\n return t.test(c)\n })),\n (s = t.valueCallback ? t.valueCallback(s) : s),\n {value: (s = a.valueCallback ? a.valueCallback(s) : s), rest: r.slice(c.length)}\n )\n }\n}\nvar d,\n l = {\n code: 'en-US',\n formatDistance: function (t, e, n) {\n var r\n return (\n (n = n || {}),\n (r =\n 'string' == typeof a[t] ? a[t] : 1 === e ? a[t].one : a[t].other.replace('{{count}}', e)),\n n.addSuffix ? (n.comparison > 0 ? 'in ' + r : r + ' ago') : r\n )\n },\n formatLong: o,\n formatRelative: function (t, e, n, r) {\n return u[t]\n },\n localize: {\n ordinalNumber: function (t, e) {\n var n = Number(t),\n r = n % 100\n if (r > 20 || r < 10)\n switch (r % 10) {\n case 1:\n return n + 'st'\n case 2:\n return n + 'nd'\n case 3:\n return n + 'rd'\n }\n return n + 'th'\n },\n era: s({\n values: {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini'],\n },\n defaultWidth: 'wide',\n }),\n quarter: s({\n values: {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'],\n },\n defaultWidth: 'wide',\n argumentCallback: function (t) {\n return Number(t) - 1\n },\n }),\n month: s({\n values: {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ],\n wide: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n },\n defaultWidth: 'wide',\n }),\n day: s({\n values: {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n },\n defaultWidth: 'wide',\n }),\n dayPeriod: s({\n values: {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night',\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night',\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night',\n },\n },\n defaultWidth: 'wide',\n formattingValues: {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night',\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night',\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night',\n },\n },\n defaultFormattingWidth: 'wide',\n }),\n },\n match: {\n ordinalNumber:\n ((d = {\n matchPattern: /^(\\d+)(th|st|nd|rd)?/i,\n parsePattern: /\\d+/i,\n valueCallback: function (t) {\n return parseInt(t, 10)\n },\n }),\n function (t, e) {\n var n = String(t),\n r = e || {},\n a = n.match(d.matchPattern)\n if (!a) return null\n var i = a[0],\n o = n.match(d.parsePattern)\n if (!o) return null\n var u = d.valueCallback ? d.valueCallback(o[0]) : o[0]\n return {value: (u = r.valueCallback ? r.valueCallback(u) : u), rest: n.slice(i.length)}\n }),\n era: c({\n matchPatterns: {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {any: [/^b/i, /^(a|c)/i]},\n defaultParseWidth: 'any',\n }),\n quarter: c({\n matchPatterns: {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {any: [/1/i, /2/i, /3/i, /4/i]},\n defaultParseWidth: 'any',\n valueCallback: function (t) {\n return t + 1\n },\n }),\n month: c({\n matchPatterns: {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n },\n defaultParseWidth: 'any',\n }),\n day: c({\n matchPatterns: {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n },\n defaultMatchWidth: 'wide',\n parsePatterns: {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n },\n defaultParseWidth: 'any',\n }),\n dayPeriod: c({\n matchPatterns: {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n },\n defaultMatchWidth: 'any',\n parsePatterns: {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n },\n defaultParseWidth: 'any',\n }),\n },\n options: {weekStartsOn: 0, firstWeekContainsDate: 1},\n }\nfunction f(t) {\n if (null === t || !0 === t || !1 === t) return NaN\n var e = Number(t)\n return isNaN(e) ? e : e < 0 ? Math.ceil(e) : Math.floor(e)\n}\nfunction h(t, e) {\n if (e.length < t)\n throw new TypeError(\n t + ' argument' + (t > 1 ? 's' : '') + ' required, but only ' + e.length + ' present',\n )\n}\nfunction m(t) {\n h(1, arguments)\n var e = Object.prototype.toString.call(t)\n return t instanceof Date || ('object' == typeof t && '[object Date]' === e)\n ? new Date(t.getTime())\n : 'number' == typeof t || '[object Number]' === e\n ? new Date(t)\n : (('string' != typeof t && '[object String]' !== e) ||\n 'undefined' == typeof console ||\n (console.warn(\n \"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\",\n ),\n console.warn(new Error().stack)),\n new Date(NaN))\n}\nfunction w(t, e) {\n h(2, arguments)\n var n = m(t).getTime(),\n r = f(e)\n return new Date(n + r)\n}\nfunction g(t, e) {\n h(2, arguments)\n var n = f(e)\n return w(t, -n)\n}\nfunction v(t, e) {\n if (null == t)\n throw new TypeError('assign requires that input parameter not be null or undefined')\n for (var n in (e = e || {})) e.hasOwnProperty(n) && (t[n] = e[n])\n return t\n}\nfunction y(t, e) {\n switch (t) {\n case 'P':\n return e.date({width: 'short'})\n case 'PP':\n return e.date({width: 'medium'})\n case 'PPP':\n return e.date({width: 'long'})\n case 'PPPP':\n default:\n return e.date({width: 'full'})\n }\n}\nfunction b(t, e) {\n switch (t) {\n case 'p':\n return e.time({width: 'short'})\n case 'pp':\n return e.time({width: 'medium'})\n case 'ppp':\n return e.time({width: 'long'})\n case 'pppp':\n default:\n return e.time({width: 'full'})\n }\n}\nvar D = {\n p: b,\n P: function (t, e) {\n var n,\n r = t.match(/(P+)(p+)?/),\n a = r[1],\n i = r[2]\n if (!i) return y(t, e)\n switch (a) {\n case 'P':\n n = e.dateTime({width: 'short'})\n break\n case 'PP':\n n = e.dateTime({width: 'medium'})\n break\n case 'PPP':\n n = e.dateTime({width: 'long'})\n break\n case 'PPPP':\n default:\n n = e.dateTime({width: 'full'})\n }\n return n.replace('{{date}}', y(a, e)).replace('{{time}}', b(i, e))\n },\n}\nfunction T(t) {\n return t.getTime() % 6e4\n}\nfunction p(t) {\n var e = new Date(t.getTime()),\n n = Math.ceil(e.getTimezoneOffset())\n return e.setSeconds(0, 0), 6e4 * n + (n > 0 ? (6e4 + T(e)) % 6e4 : T(e))\n}\nvar k = ['D', 'DD'],\n x = ['YY', 'YYYY']\nfunction C(t) {\n return -1 !== k.indexOf(t)\n}\nfunction M(t) {\n return -1 !== x.indexOf(t)\n}\nfunction U(t) {\n if ('YYYY' === t)\n throw new RangeError(\n 'Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr',\n )\n if ('YY' === t)\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr')\n if ('D' === t)\n throw new RangeError(\n 'Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr',\n )\n if ('DD' === t)\n throw new RangeError(\n 'Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr',\n )\n}\nfunction S(t, e) {\n h(1, arguments)\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn)\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n var u = m(t),\n s = u.getUTCDay(),\n c = (s < o ? 7 : 0) + s - o\n return u.setUTCDate(u.getUTCDate() - c), u.setUTCHours(0, 0, 0, 0), u\n}\nfunction P(t, e) {\n h(1, arguments)\n var n = m(t, e),\n r = n.getUTCFullYear(),\n a = e || {},\n i = a.locale,\n o = i && i.options && i.options.firstWeekContainsDate,\n u = null == o ? 1 : f(o),\n s = null == a.firstWeekContainsDate ? u : f(a.firstWeekContainsDate)\n if (!(s >= 1 && s <= 7))\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively')\n var c = new Date(0)\n c.setUTCFullYear(r + 1, 0, s), c.setUTCHours(0, 0, 0, 0)\n var d = S(c, e),\n l = new Date(0)\n l.setUTCFullYear(r, 0, s), l.setUTCHours(0, 0, 0, 0)\n var w = S(l, e)\n return n.getTime() >= d.getTime() ? r + 1 : n.getTime() >= w.getTime() ? r : r - 1\n}\nfunction E(t, e, n) {\n h(2, arguments)\n var r = n || {},\n a = r.locale,\n i = a && a.options && a.options.weekStartsOn,\n o = null == i ? 0 : f(i),\n u = null == r.weekStartsOn ? o : f(r.weekStartsOn)\n if (!(u >= 0 && u <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n var s = m(t),\n c = f(e),\n d = s.getUTCDay(),\n l = c % 7,\n w = (l + 7) % 7,\n g = (w < u ? 7 : 0) + c - d\n return s.setUTCDate(s.getUTCDate() + g), s\n}\nfunction Y(t) {\n h(1, arguments)\n var e = 1,\n n = m(t),\n r = n.getUTCDay(),\n a = (r < e ? 7 : 0) + r - e\n return n.setUTCDate(n.getUTCDate() - a), n.setUTCHours(0, 0, 0, 0), n\n}\nfunction N(t) {\n h(1, arguments)\n var e = m(t),\n n = e.getUTCFullYear(),\n r = new Date(0)\n r.setUTCFullYear(n + 1, 0, 4), r.setUTCHours(0, 0, 0, 0)\n var a = Y(r),\n i = new Date(0)\n i.setUTCFullYear(n, 0, 4), i.setUTCHours(0, 0, 0, 0)\n var o = Y(i)\n return e.getTime() >= a.getTime() ? n + 1 : e.getTime() >= o.getTime() ? n : n - 1\n}\nfunction q(t) {\n h(1, arguments)\n var e = N(t),\n n = new Date(0)\n n.setUTCFullYear(e, 0, 4), n.setUTCHours(0, 0, 0, 0)\n var r = Y(n)\n return r\n}\nfunction B(t) {\n h(1, arguments)\n var e = m(t),\n n = Y(e).getTime() - q(e).getTime()\n return Math.round(n / 6048e5) + 1\n}\nfunction O(t, e) {\n h(1, arguments)\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.firstWeekContainsDate,\n i = null == a ? 1 : f(a),\n o = null == n.firstWeekContainsDate ? i : f(n.firstWeekContainsDate),\n u = P(t, e),\n s = new Date(0)\n s.setUTCFullYear(u, 0, o), s.setUTCHours(0, 0, 0, 0)\n var c = S(s, e)\n return c\n}\nfunction H(t, e) {\n h(1, arguments)\n var n = m(t),\n r = S(n, e).getTime() - O(n, e).getTime()\n return Math.round(r / 6048e5) + 1\n}\nvar L = /^(1[0-2]|0?\\d)/,\n W = /^(3[0-1]|[0-2]?\\d)/,\n F = /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n Q = /^(5[0-3]|[0-4]?\\d)/,\n R = /^(2[0-3]|[0-1]?\\d)/,\n I = /^(2[0-4]|[0-1]?\\d)/,\n X = /^(1[0-1]|0?\\d)/,\n G = /^(1[0-2]|0?\\d)/,\n A = /^[0-5]?\\d/,\n z = /^[0-5]?\\d/,\n j = /^\\d/,\n K = /^\\d{1,2}/,\n J = /^\\d{1,3}/,\n Z = /^\\d{1,4}/,\n _ = /^-?\\d+/,\n $ = /^-?\\d/,\n V = /^-?\\d{1,2}/,\n tt = /^-?\\d{1,3}/,\n et = /^-?\\d{1,4}/,\n nt = /^([+-])(\\d{2})(\\d{2})?|Z/,\n rt = /^([+-])(\\d{2})(\\d{2})|Z/,\n at = /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n it = /^([+-])(\\d{2}):(\\d{2})|Z/,\n ot = /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\nfunction ut(t, e, n) {\n var r = e.match(t)\n if (!r) return null\n var a = parseInt(r[0], 10)\n return {value: n ? n(a) : a, rest: e.slice(r[0].length)}\n}\nfunction st(t, e) {\n var n = e.match(t)\n return n\n ? 'Z' === n[0]\n ? {value: 0, rest: e.slice(1)}\n : {\n value:\n ('+' === n[1] ? 1 : -1) *\n (36e5 * (n[2] ? parseInt(n[2], 10) : 0) +\n 6e4 * (n[3] ? parseInt(n[3], 10) : 0) +\n 1e3 * (n[5] ? parseInt(n[5], 10) : 0)),\n rest: e.slice(n[0].length),\n }\n : null\n}\nfunction ct(t, e) {\n return ut(_, t, e)\n}\nfunction dt(t, e, n) {\n switch (t) {\n case 1:\n return ut(j, e, n)\n case 2:\n return ut(K, e, n)\n case 3:\n return ut(J, e, n)\n case 4:\n return ut(Z, e, n)\n default:\n return ut(new RegExp('^\\\\d{1,' + t + '}'), e, n)\n }\n}\nfunction lt(t, e, n) {\n switch (t) {\n case 1:\n return ut($, e, n)\n case 2:\n return ut(V, e, n)\n case 3:\n return ut(tt, e, n)\n case 4:\n return ut(et, e, n)\n default:\n return ut(new RegExp('^-?\\\\d{1,' + t + '}'), e, n)\n }\n}\nfunction ft(t) {\n switch (t) {\n case 'morning':\n return 4\n case 'evening':\n return 17\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0\n }\n}\nfunction ht(t, e) {\n var n,\n r = e > 0,\n a = r ? e : 1 - e\n if (a <= 50) n = t || 100\n else {\n var i = a + 50\n n = t + 100 * Math.floor(i / 100) - (t >= i % 100 ? 100 : 0)\n }\n return r ? n : 1 - n\n}\nvar mt = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n wt = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\nfunction gt(t) {\n return t % 400 == 0 || (t % 4 == 0 && t % 100 != 0)\n}\nvar vt = {\n G: {\n priority: 140,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'G':\n case 'GG':\n case 'GGG':\n return n.era(t, {width: 'abbreviated'}) || n.era(t, {width: 'narrow'})\n case 'GGGGG':\n return n.era(t, {width: 'narrow'})\n case 'GGGG':\n default:\n return (\n n.era(t, {width: 'wide'}) ||\n n.era(t, {width: 'abbreviated'}) ||\n n.era(t, {width: 'narrow'})\n )\n }\n },\n set: function (t, e, n, r) {\n return (e.era = n), t.setUTCFullYear(n, 0, 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['R', 'u', 't', 'T'],\n },\n y: {\n priority: 130,\n parse: function (t, e, n, r) {\n var a = function (t) {\n return {year: t, isTwoDigitYear: 'yy' === e}\n }\n switch (e) {\n case 'y':\n return dt(4, t, a)\n case 'yo':\n return n.ordinalNumber(t, {unit: 'year', valueCallback: a})\n default:\n return dt(e.length, t, a)\n }\n },\n validate: function (t, e, n) {\n return e.isTwoDigitYear || e.year > 0\n },\n set: function (t, e, n, r) {\n var a = t.getUTCFullYear()\n if (n.isTwoDigitYear) {\n var i = ht(n.year, a)\n return t.setUTCFullYear(i, 0, 1), t.setUTCHours(0, 0, 0, 0), t\n }\n var o = 'era' in e && 1 !== e.era ? 1 - n.year : n.year\n return t.setUTCFullYear(o, 0, 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T'],\n },\n Y: {\n priority: 130,\n parse: function (t, e, n, r) {\n var a = function (t) {\n return {year: t, isTwoDigitYear: 'YY' === e}\n }\n switch (e) {\n case 'Y':\n return dt(4, t, a)\n case 'Yo':\n return n.ordinalNumber(t, {unit: 'year', valueCallback: a})\n default:\n return dt(e.length, t, a)\n }\n },\n validate: function (t, e, n) {\n return e.isTwoDigitYear || e.year > 0\n },\n set: function (t, e, n, r) {\n var a = P(t, r)\n if (n.isTwoDigitYear) {\n var i = ht(n.year, a)\n return t.setUTCFullYear(i, 0, r.firstWeekContainsDate), t.setUTCHours(0, 0, 0, 0), S(t, r)\n }\n var o = 'era' in e && 1 !== e.era ? 1 - n.year : n.year\n return t.setUTCFullYear(o, 0, r.firstWeekContainsDate), t.setUTCHours(0, 0, 0, 0), S(t, r)\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T'],\n },\n R: {\n priority: 130,\n parse: function (t, e, n, r) {\n return lt('R' === e ? 4 : e.length, t)\n },\n set: function (t, e, n, r) {\n var a = new Date(0)\n return a.setUTCFullYear(n, 0, 4), a.setUTCHours(0, 0, 0, 0), Y(a)\n },\n incompatibleTokens: [\n 'G',\n 'y',\n 'Y',\n 'u',\n 'Q',\n 'q',\n 'M',\n 'L',\n 'w',\n 'd',\n 'D',\n 'e',\n 'c',\n 't',\n 'T',\n ],\n },\n u: {\n priority: 130,\n parse: function (t, e, n, r) {\n return lt('u' === e ? 4 : e.length, t)\n },\n set: function (t, e, n, r) {\n return t.setUTCFullYear(n, 0, 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T'],\n },\n Q: {\n priority: 120,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'Q':\n case 'QQ':\n return dt(e.length, t)\n case 'Qo':\n return n.ordinalNumber(t, {unit: 'quarter'})\n case 'QQQ':\n return (\n n.quarter(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.quarter(t, {width: 'narrow', context: 'formatting'})\n )\n case 'QQQQQ':\n return n.quarter(t, {width: 'narrow', context: 'formatting'})\n case 'QQQQ':\n default:\n return (\n n.quarter(t, {width: 'wide', context: 'formatting'}) ||\n n.quarter(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.quarter(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 4\n },\n set: function (t, e, n, r) {\n return t.setUTCMonth(3 * (n - 1), 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T'],\n },\n q: {\n priority: 120,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'q':\n case 'qq':\n return dt(e.length, t)\n case 'qo':\n return n.ordinalNumber(t, {unit: 'quarter'})\n case 'qqq':\n return (\n n.quarter(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.quarter(t, {width: 'narrow', context: 'standalone'})\n )\n case 'qqqqq':\n return n.quarter(t, {width: 'narrow', context: 'standalone'})\n case 'qqqq':\n default:\n return (\n n.quarter(t, {width: 'wide', context: 'standalone'}) ||\n n.quarter(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.quarter(t, {width: 'narrow', context: 'standalone'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 4\n },\n set: function (t, e, n, r) {\n return t.setUTCMonth(3 * (n - 1), 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T'],\n },\n M: {\n priority: 110,\n parse: function (t, e, n, r) {\n var a = function (t) {\n return t - 1\n }\n switch (e) {\n case 'M':\n return ut(L, t, a)\n case 'MM':\n return dt(2, t, a)\n case 'Mo':\n return n.ordinalNumber(t, {unit: 'month', valueCallback: a})\n case 'MMM':\n return (\n n.month(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.month(t, {width: 'narrow', context: 'formatting'})\n )\n case 'MMMMM':\n return n.month(t, {width: 'narrow', context: 'formatting'})\n case 'MMMM':\n default:\n return (\n n.month(t, {width: 'wide', context: 'formatting'}) ||\n n.month(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.month(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 11\n },\n set: function (t, e, n, r) {\n return t.setUTCMonth(n, 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T'],\n },\n L: {\n priority: 110,\n parse: function (t, e, n, r) {\n var a = function (t) {\n return t - 1\n }\n switch (e) {\n case 'L':\n return ut(L, t, a)\n case 'LL':\n return dt(2, t, a)\n case 'Lo':\n return n.ordinalNumber(t, {unit: 'month', valueCallback: a})\n case 'LLL':\n return (\n n.month(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.month(t, {width: 'narrow', context: 'standalone'})\n )\n case 'LLLLL':\n return n.month(t, {width: 'narrow', context: 'standalone'})\n case 'LLLL':\n default:\n return (\n n.month(t, {width: 'wide', context: 'standalone'}) ||\n n.month(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.month(t, {width: 'narrow', context: 'standalone'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 11\n },\n set: function (t, e, n, r) {\n return t.setUTCMonth(n, 1), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T'],\n },\n w: {\n priority: 100,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'w':\n return ut(Q, t)\n case 'wo':\n return n.ordinalNumber(t, {unit: 'week'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 53\n },\n set: function (t, e, n, r) {\n return S(\n (function (t, e, n) {\n h(2, arguments)\n var r = m(t),\n a = f(e),\n i = H(r, n) - a\n return r.setUTCDate(r.getUTCDate() - 7 * i), r\n })(t, n, r),\n r,\n )\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T'],\n },\n I: {\n priority: 100,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'I':\n return ut(Q, t)\n case 'Io':\n return n.ordinalNumber(t, {unit: 'week'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 53\n },\n set: function (t, e, n, r) {\n return Y(\n (function (t, e) {\n h(2, arguments)\n var n = m(t),\n r = f(e),\n a = B(n) - r\n return n.setUTCDate(n.getUTCDate() - 7 * a), n\n })(t, n, r),\n r,\n )\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T'],\n },\n d: {\n priority: 90,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'd':\n return ut(W, t)\n case 'do':\n return n.ordinalNumber(t, {unit: 'date'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n var r = gt(t.getUTCFullYear()),\n a = t.getUTCMonth()\n return r ? e >= 1 && e <= wt[a] : e >= 1 && e <= mt[a]\n },\n set: function (t, e, n, r) {\n return t.setUTCDate(n), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T'],\n },\n D: {\n priority: 90,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'D':\n case 'DD':\n return ut(F, t)\n case 'Do':\n return n.ordinalNumber(t, {unit: 'date'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return gt(t.getUTCFullYear()) ? e >= 1 && e <= 366 : e >= 1 && e <= 365\n },\n set: function (t, e, n, r) {\n return t.setUTCMonth(0, n), t.setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: [\n 'Y',\n 'R',\n 'q',\n 'Q',\n 'M',\n 'L',\n 'w',\n 'I',\n 'd',\n 'E',\n 'i',\n 'e',\n 'c',\n 't',\n 'T',\n ],\n },\n E: {\n priority: 90,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'E':\n case 'EE':\n case 'EEE':\n return (\n n.day(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n case 'EEEEE':\n return n.day(t, {width: 'narrow', context: 'formatting'})\n case 'EEEEEE':\n return (\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n case 'EEEE':\n default:\n return (\n n.day(t, {width: 'wide', context: 'formatting'}) ||\n n.day(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 6\n },\n set: function (t, e, n, r) {\n return (t = E(t, n, r)).setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T'],\n },\n e: {\n priority: 90,\n parse: function (t, e, n, r) {\n var a = function (t) {\n var e = 7 * Math.floor((t - 1) / 7)\n return ((t + r.weekStartsOn + 6) % 7) + e\n }\n switch (e) {\n case 'e':\n case 'ee':\n return dt(e.length, t, a)\n case 'eo':\n return n.ordinalNumber(t, {unit: 'day', valueCallback: a})\n case 'eee':\n return (\n n.day(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n case 'eeeee':\n return n.day(t, {width: 'narrow', context: 'formatting'})\n case 'eeeeee':\n return (\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n case 'eeee':\n default:\n return (\n n.day(t, {width: 'wide', context: 'formatting'}) ||\n n.day(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.day(t, {width: 'short', context: 'formatting'}) ||\n n.day(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 6\n },\n set: function (t, e, n, r) {\n return (t = E(t, n, r)).setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: [\n 'y',\n 'R',\n 'u',\n 'q',\n 'Q',\n 'M',\n 'L',\n 'I',\n 'd',\n 'D',\n 'E',\n 'i',\n 'c',\n 't',\n 'T',\n ],\n },\n c: {\n priority: 90,\n parse: function (t, e, n, r) {\n var a = function (t) {\n var e = 7 * Math.floor((t - 1) / 7)\n return ((t + r.weekStartsOn + 6) % 7) + e\n }\n switch (e) {\n case 'c':\n case 'cc':\n return dt(e.length, t, a)\n case 'co':\n return n.ordinalNumber(t, {unit: 'day', valueCallback: a})\n case 'ccc':\n return (\n n.day(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.day(t, {width: 'short', context: 'standalone'}) ||\n n.day(t, {width: 'narrow', context: 'standalone'})\n )\n case 'ccccc':\n return n.day(t, {width: 'narrow', context: 'standalone'})\n case 'cccccc':\n return (\n n.day(t, {width: 'short', context: 'standalone'}) ||\n n.day(t, {width: 'narrow', context: 'standalone'})\n )\n case 'cccc':\n default:\n return (\n n.day(t, {width: 'wide', context: 'standalone'}) ||\n n.day(t, {width: 'abbreviated', context: 'standalone'}) ||\n n.day(t, {width: 'short', context: 'standalone'}) ||\n n.day(t, {width: 'narrow', context: 'standalone'})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 6\n },\n set: function (t, e, n, r) {\n return (t = E(t, n, r)).setUTCHours(0, 0, 0, 0), t\n },\n incompatibleTokens: [\n 'y',\n 'R',\n 'u',\n 'q',\n 'Q',\n 'M',\n 'L',\n 'I',\n 'd',\n 'D',\n 'E',\n 'i',\n 'e',\n 't',\n 'T',\n ],\n },\n i: {\n priority: 90,\n parse: function (t, e, n, r) {\n var a = function (t) {\n return 0 === t ? 7 : t\n }\n switch (e) {\n case 'i':\n case 'ii':\n return dt(e.length, t)\n case 'io':\n return n.ordinalNumber(t, {unit: 'day'})\n case 'iii':\n return (\n n.day(t, {width: 'abbreviated', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'short', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'narrow', context: 'formatting', valueCallback: a})\n )\n case 'iiiii':\n return n.day(t, {width: 'narrow', context: 'formatting', valueCallback: a})\n case 'iiiiii':\n return (\n n.day(t, {width: 'short', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'narrow', context: 'formatting', valueCallback: a})\n )\n case 'iiii':\n default:\n return (\n n.day(t, {width: 'wide', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'abbreviated', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'short', context: 'formatting', valueCallback: a}) ||\n n.day(t, {width: 'narrow', context: 'formatting', valueCallback: a})\n )\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 7\n },\n set: function (t, e, n, r) {\n return (\n (t = (function (t, e) {\n h(2, arguments)\n var n = f(e)\n n % 7 == 0 && (n -= 7)\n var r = 1,\n a = m(t),\n i = a.getUTCDay(),\n o = n % 7,\n u = (o + 7) % 7,\n s = (u < r ? 7 : 0) + n - i\n return a.setUTCDate(a.getUTCDate() + s), a\n })(t, n, r)).setUTCHours(0, 0, 0, 0),\n t\n )\n },\n incompatibleTokens: [\n 'y',\n 'Y',\n 'u',\n 'q',\n 'Q',\n 'M',\n 'L',\n 'w',\n 'd',\n 'D',\n 'E',\n 'e',\n 'c',\n 't',\n 'T',\n ],\n },\n a: {\n priority: 80,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'a':\n case 'aa':\n case 'aaa':\n return (\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n case 'aaaaa':\n return n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return (\n n.dayPeriod(t, {width: 'wide', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n set: function (t, e, n, r) {\n return t.setUTCHours(ft(n), 0, 0, 0), t\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T'],\n },\n b: {\n priority: 80,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'b':\n case 'bb':\n case 'bbb':\n return (\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n case 'bbbbb':\n return n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return (\n n.dayPeriod(t, {width: 'wide', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n set: function (t, e, n, r) {\n return t.setUTCHours(ft(n), 0, 0, 0), t\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T'],\n },\n B: {\n priority: 80,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'B':\n case 'BB':\n case 'BBB':\n return (\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n case 'BBBBB':\n return n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return (\n n.dayPeriod(t, {width: 'wide', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'abbreviated', context: 'formatting'}) ||\n n.dayPeriod(t, {width: 'narrow', context: 'formatting'})\n )\n }\n },\n set: function (t, e, n, r) {\n return t.setUTCHours(ft(n), 0, 0, 0), t\n },\n incompatibleTokens: ['a', 'b', 't', 'T'],\n },\n h: {\n priority: 70,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'h':\n return ut(G, t)\n case 'ho':\n return n.ordinalNumber(t, {unit: 'hour'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 12\n },\n set: function (t, e, n, r) {\n var a = t.getUTCHours() >= 12\n return (\n a && n < 12\n ? t.setUTCHours(n + 12, 0, 0, 0)\n : a || 12 !== n\n ? t.setUTCHours(n, 0, 0, 0)\n : t.setUTCHours(0, 0, 0, 0),\n t\n )\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T'],\n },\n H: {\n priority: 70,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'H':\n return ut(R, t)\n case 'Ho':\n return n.ordinalNumber(t, {unit: 'hour'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 23\n },\n set: function (t, e, n, r) {\n return t.setUTCHours(n, 0, 0, 0), t\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T'],\n },\n K: {\n priority: 70,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'K':\n return ut(X, t)\n case 'Ko':\n return n.ordinalNumber(t, {unit: 'hour'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 11\n },\n set: function (t, e, n, r) {\n return (\n t.getUTCHours() >= 12 && n < 12\n ? t.setUTCHours(n + 12, 0, 0, 0)\n : t.setUTCHours(n, 0, 0, 0),\n t\n )\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T'],\n },\n k: {\n priority: 70,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'k':\n return ut(I, t)\n case 'ko':\n return n.ordinalNumber(t, {unit: 'hour'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 1 && e <= 24\n },\n set: function (t, e, n, r) {\n var a = n <= 24 ? n % 24 : n\n return t.setUTCHours(a, 0, 0, 0), t\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T'],\n },\n m: {\n priority: 60,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'm':\n return ut(A, t)\n case 'mo':\n return n.ordinalNumber(t, {unit: 'minute'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 59\n },\n set: function (t, e, n, r) {\n return t.setUTCMinutes(n, 0, 0), t\n },\n incompatibleTokens: ['t', 'T'],\n },\n s: {\n priority: 50,\n parse: function (t, e, n, r) {\n switch (e) {\n case 's':\n return ut(z, t)\n case 'so':\n return n.ordinalNumber(t, {unit: 'second'})\n default:\n return dt(e.length, t)\n }\n },\n validate: function (t, e, n) {\n return e >= 0 && e <= 59\n },\n set: function (t, e, n, r) {\n return t.setUTCSeconds(n, 0), t\n },\n incompatibleTokens: ['t', 'T'],\n },\n S: {\n priority: 30,\n parse: function (t, e, n, r) {\n return dt(e.length, t, function (t) {\n return Math.floor(t * Math.pow(10, 3 - e.length))\n })\n },\n set: function (t, e, n, r) {\n return t.setUTCMilliseconds(n), t\n },\n incompatibleTokens: ['t', 'T'],\n },\n X: {\n priority: 10,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'X':\n return st(nt, t)\n case 'XX':\n return st(rt, t)\n case 'XXXX':\n return st(at, t)\n case 'XXXXX':\n return st(ot, t)\n case 'XXX':\n default:\n return st(it, t)\n }\n },\n set: function (t, e, n, r) {\n return e.timestampIsSet ? t : new Date(t.getTime() - n)\n },\n incompatibleTokens: ['t', 'T', 'x'],\n },\n x: {\n priority: 10,\n parse: function (t, e, n, r) {\n switch (e) {\n case 'x':\n return st(nt, t)\n case 'xx':\n return st(rt, t)\n case 'xxxx':\n return st(at, t)\n case 'xxxxx':\n return st(ot, t)\n case 'xxx':\n default:\n return st(it, t)\n }\n },\n set: function (t, e, n, r) {\n return e.timestampIsSet ? t : new Date(t.getTime() - n)\n },\n incompatibleTokens: ['t', 'T', 'X'],\n },\n t: {\n priority: 40,\n parse: function (t, e, n, r) {\n return ct(t)\n },\n set: function (t, e, n, r) {\n return [new Date(1e3 * n), {timestampIsSet: !0}]\n },\n incompatibleTokens: '*',\n },\n T: {\n priority: 20,\n parse: function (t, e, n, r) {\n return ct(t)\n },\n set: function (t, e, n, r) {\n return [new Date(n), {timestampIsSet: !0}]\n },\n incompatibleTokens: '*',\n },\n },\n yt = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g,\n bt = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,\n Dt = /^'([^]*?)'?$/,\n Tt = /''/g,\n pt = /\\S/,\n kt = /[a-zA-Z]/\nfunction xt(t, e, n, r) {\n h(3, arguments)\n var a = String(t),\n i = String(e),\n o = r || {},\n u = o.locale || l\n if (!u.match) throw new RangeError('locale must contain match property')\n var s = u.options && u.options.firstWeekContainsDate,\n c = null == s ? 1 : f(s),\n d = null == o.firstWeekContainsDate ? c : f(o.firstWeekContainsDate)\n if (!(d >= 1 && d <= 7))\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively')\n var w = u.options && u.options.weekStartsOn,\n y = null == w ? 0 : f(w),\n b = null == o.weekStartsOn ? y : f(o.weekStartsOn)\n if (!(b >= 0 && b <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n if ('' === i) return '' === a ? m(n) : new Date(NaN)\n var T,\n k = {firstWeekContainsDate: d, weekStartsOn: b, locale: u},\n x = [{priority: 10, set: Ct, index: 0}],\n S = i\n .match(bt)\n .map(function (t) {\n var e = t[0]\n return 'p' === e || 'P' === e ? (0, D[e])(t, u.formatLong, k) : t\n })\n .join('')\n .match(yt),\n P = []\n for (T = 0; T < S.length; T++) {\n var E = S[T]\n !o.useAdditionalWeekYearTokens && M(E) && U(E), !o.useAdditionalDayOfYearTokens && C(E) && U(E)\n var Y = E[0],\n N = vt[Y]\n if (N) {\n var q = N.incompatibleTokens\n if (Array.isArray(q)) {\n for (var B = void 0, O = 0; O < P.length; O++) {\n var H = P[O].token\n if (-1 !== q.indexOf(H) || H === Y) {\n B = P[O]\n break\n }\n }\n if (B)\n throw new RangeError(\n \"The format string mustn't contain `\"\n .concat(B.fullToken, '` and `')\n .concat(E, '` at the same time'),\n )\n } else if ('*' === N.incompatibleTokens && P.length)\n throw new RangeError(\n \"The format string mustn't contain `\".concat(E, '` and any other token at the same time'),\n )\n P.push({token: Y, fullToken: E})\n var L = N.parse(a, E, u.match, k)\n if (!L) return new Date(NaN)\n x.push({\n priority: N.priority,\n set: N.set,\n validate: N.validate,\n value: L.value,\n index: x.length,\n }),\n (a = L.rest)\n } else {\n if (Y.match(kt))\n throw new RangeError(\n 'Format string contains an unescaped latin alphabet character `' + Y + '`',\n )\n if ((\"''\" === E ? (E = \"'\") : \"'\" === Y && (E = Mt(E)), 0 !== a.indexOf(E)))\n return new Date(NaN)\n a = a.slice(E.length)\n }\n }\n if (a.length > 0 && pt.test(a)) return new Date(NaN)\n var W = x\n .map(function (t) {\n return t.priority\n })\n .sort(function (t, e) {\n return e - t\n })\n .filter(function (t, e, n) {\n return n.indexOf(t) === e\n })\n .map(function (t) {\n return x\n .filter(function (e) {\n return e.priority === t\n })\n .reverse()\n })\n .map(function (t) {\n return t[0]\n }),\n F = m(n)\n if (isNaN(F)) return new Date(NaN)\n var Q = g(F, p(F)),\n R = {}\n for (T = 0; T < W.length; T++) {\n var I = W[T]\n if (I.validate && !I.validate(Q, I.value, k)) return new Date(NaN)\n var X = I.set(Q, R, I.value, k)\n X[0] ? ((Q = X[0]), v(R, X[1])) : (Q = X)\n }\n return Q\n}\nfunction Ct(t, e) {\n if (e.timestampIsSet) return t\n var n = new Date(0)\n return (\n n.setFullYear(t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()),\n n.setHours(t.getUTCHours(), t.getUTCMinutes(), t.getUTCSeconds(), t.getUTCMilliseconds()),\n n\n )\n}\nfunction Mt(t) {\n return t.match(Dt)[1].replace(Tt, \"'\")\n}\nfunction Ut(t) {\n h(1, arguments)\n var e = m(t)\n return !isNaN(e)\n}\nfunction St(t, e) {\n for (var n = t < 0 ? '-' : '', r = Math.abs(t).toString(); r.length < e; ) r = '0' + r\n return n + r\n}\nvar Pt = function (t, e) {\n var n = t.getUTCFullYear(),\n r = n > 0 ? n : 1 - n\n return St('yy' === e ? r % 100 : r, e.length)\n },\n Et = function (t, e) {\n var n = t.getUTCMonth()\n return 'M' === e ? String(n + 1) : St(n + 1, 2)\n },\n Yt = function (t, e) {\n return St(t.getUTCDate(), e.length)\n },\n Nt = function (t, e) {\n return St(t.getUTCHours() % 12 || 12, e.length)\n },\n qt = function (t, e) {\n return St(t.getUTCHours(), e.length)\n },\n Bt = function (t, e) {\n return St(t.getUTCMinutes(), e.length)\n },\n Ot = function (t, e) {\n return St(t.getUTCSeconds(), e.length)\n },\n Ht = function (t, e) {\n var n = e.length,\n r = t.getUTCMilliseconds()\n return St(Math.floor(r * Math.pow(10, n - 3)), e.length)\n }\nvar Lt = 'midnight',\n Wt = 'noon',\n Ft = 'morning',\n Qt = 'afternoon',\n Rt = 'evening',\n It = 'night',\n Xt = {\n G: function (t, e, n) {\n var r = t.getUTCFullYear() > 0 ? 1 : 0\n switch (e) {\n case 'G':\n case 'GG':\n case 'GGG':\n return n.era(r, {width: 'abbreviated'})\n case 'GGGGG':\n return n.era(r, {width: 'narrow'})\n case 'GGGG':\n default:\n return n.era(r, {width: 'wide'})\n }\n },\n y: function (t, e, n) {\n if ('yo' === e) {\n var r = t.getUTCFullYear(),\n a = r > 0 ? r : 1 - r\n return n.ordinalNumber(a, {unit: 'year'})\n }\n return Pt(t, e)\n },\n Y: function (t, e, n, r) {\n var a = P(t, r),\n i = a > 0 ? a : 1 - a\n return 'YY' === e\n ? St(i % 100, 2)\n : 'Yo' === e\n ? n.ordinalNumber(i, {unit: 'year'})\n : St(i, e.length)\n },\n R: function (t, e) {\n return St(N(t), e.length)\n },\n u: function (t, e) {\n return St(t.getUTCFullYear(), e.length)\n },\n Q: function (t, e, n) {\n var r = Math.ceil((t.getUTCMonth() + 1) / 3)\n switch (e) {\n case 'Q':\n return String(r)\n case 'QQ':\n return St(r, 2)\n case 'Qo':\n return n.ordinalNumber(r, {unit: 'quarter'})\n case 'QQQ':\n return n.quarter(r, {width: 'abbreviated', context: 'formatting'})\n case 'QQQQQ':\n return n.quarter(r, {width: 'narrow', context: 'formatting'})\n case 'QQQQ':\n default:\n return n.quarter(r, {width: 'wide', context: 'formatting'})\n }\n },\n q: function (t, e, n) {\n var r = Math.ceil((t.getUTCMonth() + 1) / 3)\n switch (e) {\n case 'q':\n return String(r)\n case 'qq':\n return St(r, 2)\n case 'qo':\n return n.ordinalNumber(r, {unit: 'quarter'})\n case 'qqq':\n return n.quarter(r, {width: 'abbreviated', context: 'standalone'})\n case 'qqqqq':\n return n.quarter(r, {width: 'narrow', context: 'standalone'})\n case 'qqqq':\n default:\n return n.quarter(r, {width: 'wide', context: 'standalone'})\n }\n },\n M: function (t, e, n) {\n var r = t.getUTCMonth()\n switch (e) {\n case 'M':\n case 'MM':\n return Et(t, e)\n case 'Mo':\n return n.ordinalNumber(r + 1, {unit: 'month'})\n case 'MMM':\n return n.month(r, {width: 'abbreviated', context: 'formatting'})\n case 'MMMMM':\n return n.month(r, {width: 'narrow', context: 'formatting'})\n case 'MMMM':\n default:\n return n.month(r, {width: 'wide', context: 'formatting'})\n }\n },\n L: function (t, e, n) {\n var r = t.getUTCMonth()\n switch (e) {\n case 'L':\n return String(r + 1)\n case 'LL':\n return St(r + 1, 2)\n case 'Lo':\n return n.ordinalNumber(r + 1, {unit: 'month'})\n case 'LLL':\n return n.month(r, {width: 'abbreviated', context: 'standalone'})\n case 'LLLLL':\n return n.month(r, {width: 'narrow', context: 'standalone'})\n case 'LLLL':\n default:\n return n.month(r, {width: 'wide', context: 'standalone'})\n }\n },\n w: function (t, e, n, r) {\n var a = H(t, r)\n return 'wo' === e ? n.ordinalNumber(a, {unit: 'week'}) : St(a, e.length)\n },\n I: function (t, e, n) {\n var r = B(t)\n return 'Io' === e ? n.ordinalNumber(r, {unit: 'week'}) : St(r, e.length)\n },\n d: function (t, e, n) {\n return 'do' === e ? n.ordinalNumber(t.getUTCDate(), {unit: 'date'}) : Yt(t, e)\n },\n D: function (t, e, n) {\n var r = (function (t) {\n h(1, arguments)\n var e = m(t),\n n = e.getTime()\n e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0)\n var r = e.getTime(),\n a = n - r\n return Math.floor(a / 864e5) + 1\n })(t)\n return 'Do' === e ? n.ordinalNumber(r, {unit: 'dayOfYear'}) : St(r, e.length)\n },\n E: function (t, e, n) {\n var r = t.getUTCDay()\n switch (e) {\n case 'E':\n case 'EE':\n case 'EEE':\n return n.day(r, {width: 'abbreviated', context: 'formatting'})\n case 'EEEEE':\n return n.day(r, {width: 'narrow', context: 'formatting'})\n case 'EEEEEE':\n return n.day(r, {width: 'short', context: 'formatting'})\n case 'EEEE':\n default:\n return n.day(r, {width: 'wide', context: 'formatting'})\n }\n },\n e: function (t, e, n, r) {\n var a = t.getUTCDay(),\n i = (a - r.weekStartsOn + 8) % 7 || 7\n switch (e) {\n case 'e':\n return String(i)\n case 'ee':\n return St(i, 2)\n case 'eo':\n return n.ordinalNumber(i, {unit: 'day'})\n case 'eee':\n return n.day(a, {width: 'abbreviated', context: 'formatting'})\n case 'eeeee':\n return n.day(a, {width: 'narrow', context: 'formatting'})\n case 'eeeeee':\n return n.day(a, {width: 'short', context: 'formatting'})\n case 'eeee':\n default:\n return n.day(a, {width: 'wide', context: 'formatting'})\n }\n },\n c: function (t, e, n, r) {\n var a = t.getUTCDay(),\n i = (a - r.weekStartsOn + 8) % 7 || 7\n switch (e) {\n case 'c':\n return String(i)\n case 'cc':\n return St(i, e.length)\n case 'co':\n return n.ordinalNumber(i, {unit: 'day'})\n case 'ccc':\n return n.day(a, {width: 'abbreviated', context: 'standalone'})\n case 'ccccc':\n return n.day(a, {width: 'narrow', context: 'standalone'})\n case 'cccccc':\n return n.day(a, {width: 'short', context: 'standalone'})\n case 'cccc':\n default:\n return n.day(a, {width: 'wide', context: 'standalone'})\n }\n },\n i: function (t, e, n) {\n var r = t.getUTCDay(),\n a = 0 === r ? 7 : r\n switch (e) {\n case 'i':\n return String(a)\n case 'ii':\n return St(a, e.length)\n case 'io':\n return n.ordinalNumber(a, {unit: 'day'})\n case 'iii':\n return n.day(r, {width: 'abbreviated', context: 'formatting'})\n case 'iiiii':\n return n.day(r, {width: 'narrow', context: 'formatting'})\n case 'iiiiii':\n return n.day(r, {width: 'short', context: 'formatting'})\n case 'iiii':\n default:\n return n.day(r, {width: 'wide', context: 'formatting'})\n }\n },\n a: function (t, e, n) {\n var r = t.getUTCHours() / 12 >= 1 ? 'pm' : 'am'\n switch (e) {\n case 'a':\n case 'aa':\n case 'aaa':\n return n.dayPeriod(r, {width: 'abbreviated', context: 'formatting'})\n case 'aaaaa':\n return n.dayPeriod(r, {width: 'narrow', context: 'formatting'})\n case 'aaaa':\n default:\n return n.dayPeriod(r, {width: 'wide', context: 'formatting'})\n }\n },\n b: function (t, e, n) {\n var r,\n a = t.getUTCHours()\n switch (((r = 12 === a ? Wt : 0 === a ? Lt : a / 12 >= 1 ? 'pm' : 'am'), e)) {\n case 'b':\n case 'bb':\n case 'bbb':\n return n.dayPeriod(r, {width: 'abbreviated', context: 'formatting'})\n case 'bbbbb':\n return n.dayPeriod(r, {width: 'narrow', context: 'formatting'})\n case 'bbbb':\n default:\n return n.dayPeriod(r, {width: 'wide', context: 'formatting'})\n }\n },\n B: function (t, e, n) {\n var r,\n a = t.getUTCHours()\n switch (((r = a >= 17 ? Rt : a >= 12 ? Qt : a >= 4 ? Ft : It), e)) {\n case 'B':\n case 'BB':\n case 'BBB':\n return n.dayPeriod(r, {width: 'abbreviated', context: 'formatting'})\n case 'BBBBB':\n return n.dayPeriod(r, {width: 'narrow', context: 'formatting'})\n case 'BBBB':\n default:\n return n.dayPeriod(r, {width: 'wide', context: 'formatting'})\n }\n },\n h: function (t, e, n) {\n if ('ho' === e) {\n var r = t.getUTCHours() % 12\n return 0 === r && (r = 12), n.ordinalNumber(r, {unit: 'hour'})\n }\n return Nt(t, e)\n },\n H: function (t, e, n) {\n return 'Ho' === e ? n.ordinalNumber(t.getUTCHours(), {unit: 'hour'}) : qt(t, e)\n },\n K: function (t, e, n) {\n var r = t.getUTCHours() % 12\n return 'Ko' === e ? n.ordinalNumber(r, {unit: 'hour'}) : St(r, e.length)\n },\n k: function (t, e, n) {\n var r = t.getUTCHours()\n return 0 === r && (r = 24), 'ko' === e ? n.ordinalNumber(r, {unit: 'hour'}) : St(r, e.length)\n },\n m: function (t, e, n) {\n return 'mo' === e ? n.ordinalNumber(t.getUTCMinutes(), {unit: 'minute'}) : Bt(t, e)\n },\n s: function (t, e, n) {\n return 'so' === e ? n.ordinalNumber(t.getUTCSeconds(), {unit: 'second'}) : Ot(t, e)\n },\n S: function (t, e) {\n return Ht(t, e)\n },\n X: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset()\n if (0 === a) return 'Z'\n switch (e) {\n case 'X':\n return At(a)\n case 'XXXX':\n case 'XX':\n return zt(a)\n case 'XXXXX':\n case 'XXX':\n default:\n return zt(a, ':')\n }\n },\n x: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset()\n switch (e) {\n case 'x':\n return At(a)\n case 'xxxx':\n case 'xx':\n return zt(a)\n case 'xxxxx':\n case 'xxx':\n default:\n return zt(a, ':')\n }\n },\n O: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset()\n switch (e) {\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + Gt(a, ':')\n case 'OOOO':\n default:\n return 'GMT' + zt(a, ':')\n }\n },\n z: function (t, e, n, r) {\n var a = (r._originalDate || t).getTimezoneOffset()\n switch (e) {\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + Gt(a, ':')\n case 'zzzz':\n default:\n return 'GMT' + zt(a, ':')\n }\n },\n t: function (t, e, n, r) {\n var a = r._originalDate || t\n return St(Math.floor(a.getTime() / 1e3), e.length)\n },\n T: function (t, e, n, r) {\n return St((r._originalDate || t).getTime(), e.length)\n },\n }\nfunction Gt(t, e) {\n var n = t > 0 ? '-' : '+',\n r = Math.abs(t),\n a = Math.floor(r / 60),\n i = r % 60\n if (0 === i) return n + String(a)\n var o = e || ''\n return n + String(a) + o + St(i, 2)\n}\nfunction At(t, e) {\n return t % 60 == 0 ? (t > 0 ? '-' : '+') + St(Math.abs(t) / 60, 2) : zt(t, e)\n}\nfunction zt(t, e) {\n var n = e || '',\n r = t > 0 ? '-' : '+',\n a = Math.abs(t)\n return r + St(Math.floor(a / 60), 2) + n + St(a % 60, 2)\n}\nvar jt = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g,\n Kt = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,\n Jt = /^'([^]*?)'?$/,\n Zt = /''/g,\n _t = /[a-zA-Z]/\nfunction $t(t, e, n) {\n h(2, arguments)\n var r = String(e),\n a = n || {},\n i = a.locale || l,\n o = i.options && i.options.firstWeekContainsDate,\n u = null == o ? 1 : f(o),\n s = null == a.firstWeekContainsDate ? u : f(a.firstWeekContainsDate)\n if (!(s >= 1 && s <= 7))\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively')\n var c = i.options && i.options.weekStartsOn,\n d = null == c ? 0 : f(c),\n w = null == a.weekStartsOn ? d : f(a.weekStartsOn)\n if (!(w >= 0 && w <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n if (!i.localize) throw new RangeError('locale must contain localize property')\n if (!i.formatLong) throw new RangeError('locale must contain formatLong property')\n var v = m(t)\n if (!Ut(v)) throw new RangeError('Invalid time value')\n var y = p(v),\n b = g(v, y),\n T = {firstWeekContainsDate: s, weekStartsOn: w, locale: i, _originalDate: v},\n k = r\n .match(Kt)\n .map(function (t) {\n var e = t[0]\n return 'p' === e || 'P' === e ? (0, D[e])(t, i.formatLong, T) : t\n })\n .join('')\n .match(jt)\n .map(function (t) {\n if (\"''\" === t) return \"'\"\n var e = t[0]\n if (\"'\" === e) return Vt(t)\n var n = Xt[e]\n if (n)\n return (\n !a.useAdditionalWeekYearTokens && M(t) && U(t),\n !a.useAdditionalDayOfYearTokens && C(t) && U(t),\n n(b, t, i.localize, T)\n )\n if (e.match(_t))\n throw new RangeError(\n 'Format string contains an unescaped latin alphabet character `' + e + '`',\n )\n return t\n })\n .join('')\n return k\n}\nfunction Vt(t) {\n return t.match(Jt)[1].replace(Zt, \"'\")\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */ function te(\n t,\n e,\n) {\n h(2, arguments)\n var n = m(t),\n r = f(e)\n return isNaN(r) ? new Date(NaN) : r ? (n.setDate(n.getDate() + r), n) : n\n}\nfunction ee(t, e) {\n h(1, arguments)\n var n = t || {},\n r = m(n.start),\n a = m(n.end),\n i = a.getTime()\n if (!(r.getTime() <= i)) throw new RangeError('Invalid interval')\n var o = [],\n u = r\n u.setHours(0, 0, 0, 0)\n var s = e && 'step' in e ? Number(e.step) : 1\n if (s < 1 || isNaN(s)) throw new RangeError('`options.step` must be a number greater than 1')\n for (; u.getTime() <= i; ) o.push(m(u)), u.setDate(u.getDate() + s), u.setHours(0, 0, 0, 0)\n return o\n}\nfunction ne(t, e) {\n h(1, arguments)\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn)\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n var u = m(t),\n s = u.getDay(),\n c = 6 + (s < o ? -7 : 0) - (s - o)\n return u.setDate(u.getDate() + c), u.setHours(23, 59, 59, 999), u\n}\nfunction re(t) {\n h(1, arguments)\n var e = m(t)\n return e.setDate(1), e.setHours(0, 0, 0, 0), e\n}\nfunction ae(t, e) {\n h(1, arguments)\n var n = e || {},\n r = n.locale,\n a = r && r.options && r.options.weekStartsOn,\n i = null == a ? 0 : f(a),\n o = null == n.weekStartsOn ? i : f(n.weekStartsOn)\n if (!(o >= 0 && o <= 6)) throw new RangeError('weekStartsOn must be between 0 and 6 inclusively')\n var u = m(t),\n s = u.getDay(),\n c = (s < o ? 7 : 0) + s - o\n return u.setDate(u.getDate() - c), u.setHours(0, 0, 0, 0), u\n}\nfunction ie(t) {\n var e = void 0 === t ? {} : t,\n n = e.firstDayOfWeek,\n r = void 0 === n ? 1 : n,\n a = e.weekdayLabelFormat,\n i =\n void 0 === a\n ? function (t) {\n return $t(t, 'iiiiii')\n }\n : a,\n o = new Date()\n return ee({start: te(ae(o), r), end: te(ne(o), r)}).reduce(function (t, e) {\n return t.push(i(e)), t\n }, [])\n}\nfunction oe(t) {\n var e = t.year,\n n = t.month,\n r = t.firstDayOfWeek,\n a = void 0 === r ? 1 : r,\n i = t.dayLabelFormat,\n o =\n void 0 === i\n ? function (t) {\n return $t(t, 'dd')\n }\n : i,\n u = new Date(e, n),\n s = re(u),\n c = (function (t) {\n h(1, arguments)\n var e = m(t),\n n = e.getDay()\n return n\n })(s),\n d = (function (t) {\n h(1, arguments)\n var e = m(t),\n n = e.getMonth()\n return e.setFullYear(e.getFullYear(), n + 1, 0), e.setHours(23, 59, 59, 999), e\n })(u)\n return (function () {\n for (var t = 0, e = 0, n = arguments.length; e < n; e++) t += arguments[e].length\n var r = Array(t),\n a = 0\n for (e = 0; e < n; e++)\n for (var i = arguments[e], o = 0, u = i.length; o < u; o++, a++) r[a] = i[o]\n return r\n })(\n Array.from(Array(c >= a ? c - a : 6 - a + c + 1).keys()).fill(0),\n ee({start: s, end: d}).map(function (t) {\n return {date: t, dayLabel: o(t)}\n }),\n )\n}\nvar ue = function (t) {\n return $t(t, 'dd')\n },\n se = function (t) {\n return $t(t, 'eeeeee')\n },\n ce = function (t) {\n return $t(t, 'MMMM yyyy')\n }\nfunction de(e) {\n var n = e.year,\n r = e.month,\n a = e.firstDayOfWeek,\n i = void 0 === a ? 1 : a,\n o = e.dayLabelFormat,\n u = void 0 === o ? ue : o,\n s = e.weekdayLabelFormat,\n c = void 0 === s ? se : s,\n d = e.monthLabelFormat,\n l = void 0 === d ? ce : d\n return {\n days: t(\n function () {\n return oe({year: n, month: r, firstDayOfWeek: i, dayLabelFormat: u})\n },\n [n, r, i, u],\n ),\n weekdayLabels: t(\n function () {\n return ie({firstDayOfWeek: i, weekdayLabelFormat: c})\n },\n [i, c],\n ),\n monthLabel: l(new Date(n, r)),\n }\n}\nfunction le(t, e) {\n h(2, arguments)\n var n = m(t),\n r = m(e)\n return n.getTime() < r.getTime()\n}\nfunction fe(t, e) {\n h(2, arguments)\n var n = m(t),\n r = m(e)\n return n.getTime() > r.getTime()\n}\nfunction he(t, e) {\n h(2, arguments)\n var n = e || {},\n r = m(t).getTime(),\n a = m(n.start).getTime(),\n i = m(n.end).getTime()\n if (!(a <= i)) throw new RangeError('Invalid interval')\n return r >= a && r <= i\n}\nfunction me(t) {\n h(1, arguments)\n var e = m(t)\n return e.setHours(0, 0, 0, 0), e\n}\nfunction we(t, e) {\n h(2, arguments)\n var n = me(t),\n r = me(e)\n return n.getTime() === r.getTime()\n}\nfunction ge(t, e) {\n h(2, arguments)\n var n = m(t),\n r = f(e)\n if (isNaN(r)) return new Date(NaN)\n if (!r) return n\n var a = n.getDate(),\n i = new Date(n.getTime())\n i.setMonth(n.getMonth() + r + 1, 0)\n var o = i.getDate()\n return a >= o ? i : (n.setFullYear(i.getFullYear(), i.getMonth(), a), n)\n}\nvar ve = function (t, e) {\n return (\n void 0 === t && (t = []),\n t.some(function (t) {\n return we(e, t)\n })\n )\n}\nfunction ye(t, e, n) {\n return !(!e || !n) && he(t, {start: e, end: n})\n}\nfunction be(t, e, n) {\n return !!((e && we(t, e)) || (n && we(t, n)))\n}\nfunction De(t, e) {\n return !(!e || !we(t, e))\n}\nfunction Te(t, e) {\n return !(!e || !we(t, e))\n}\nfunction pe(t) {\n var e = t.date,\n n = t.minBookingDate,\n r = t.maxBookingDate,\n a = t.isDateBlockedFn,\n i = t.startDate,\n o = t.endDate,\n u = t.minBookingDays,\n s = void 0 === u ? 1 : u,\n c = t.unavailableDates,\n d = void 0 === c ? [] : c,\n l = n ? new Date(n.getFullYear(), n.getMonth(), n.getDate(), 0, 0, 0) : n,\n f = r ? new Date(r.getFullYear(), r.getMonth(), r.getDate(), 0, 0, 0) : r\n return !!(\n ve(d, e) ||\n (l && le(e, l)) ||\n (f && fe(e, f)) ||\n (i && !o && s > 1 && he(e, {start: i, end: te(i, s - 2)})) ||\n (a && a(e))\n )\n}\nfunction ke(t) {\n var e = re(t)\n return {\n year: (function (t) {\n h(1, arguments)\n var e = m(t),\n n = e.getFullYear()\n return n\n })(e),\n month: (function (t) {\n h(1, arguments)\n var e = m(t),\n n = e.getMonth()\n return n\n })(e),\n date: e,\n }\n}\nfunction xe() {\n return ke(me(Date.now()))\n}\nfunction Ce(t, e) {\n var n = e ? ke(e) : xe(),\n r = n.date,\n a = [n]\n return (\n t > 1 &&\n (a = Array.from(Array(t - 1).keys()).reduce(function (t) {\n return (r = ge(t[t.length - 1].date, 1)), t.concat([ke(r)])\n }, a)),\n a\n )\n}\nfunction Me(t, e, n, r) {\n var a = t[r ? (n > 0 ? 0 : t.length - r) : n > 0 ? t.length - 1 : 0].date\n return Array.from(Array(e).keys()).reduce(function (t) {\n return (\n (a = 0 === t.length ? ge(a, n) : ge(a, n >= 0 ? 1 : -1)),\n n > 0 ? t.concat([ke(a)]) : [ke(a)].concat(t)\n )\n }, [])\n}\nfunction Ue(t, e, n) {\n return t && 'string' == typeof e ? $t(t, e) : t && 'function' == typeof e ? e(t) : n\n}\nfunction Se(t) {\n var e = t.startDate,\n n = t.endDate,\n r = t.isDateBlocked,\n a = t.minBookingDays,\n i = t.exactMinBookingDays,\n o = t.minBookingDate,\n u = t.maxBookingDate,\n s = !o || !le(e, te(o, -1)),\n c = !u || !fe(te(e, a - 1), u)\n return (\n !(!e || 1 !== a || n || r(e)) ||\n ((e && a > 1 && !n && !i) || (e && a > 0 && i && s && c) || (e && a > 0 && i && !o && !u)\n ? !ee({start: e, end: te(e, a - 1)}).some(function (t) {\n return r(t)\n })\n : !(!e || !n || i) &&\n !le(n, te(e, a - 1)) &&\n !ee({start: e, end: n}).some(function (t) {\n return r(t)\n }))\n )\n}\nvar Pe = 'startDate',\n Ee = 'endDate'\nfunction Ye(t) {\n var a = t.startDate,\n i = t.endDate,\n o = t.focusedInput,\n u = t.minBookingDate,\n s = t.maxBookingDate,\n c = t.onDatesChange,\n d = t.initialVisibleMonth,\n l = t.exactMinBookingDays,\n f = void 0 !== l && l,\n h = t.minBookingDays,\n m = void 0 === h ? 1 : h,\n w = t.numberOfMonths,\n g = void 0 === w ? 2 : w,\n v = t.firstDayOfWeek,\n y = void 0 === v ? 1 : v,\n b = t.isDateBlocked,\n D =\n void 0 === b\n ? function () {\n return !1\n }\n : b,\n T = t.unavailableDates,\n p = void 0 === T ? [] : T,\n k = t.changeActiveMonthOnSelect,\n x = void 0 === k || k,\n C = e(function () {\n return Ce(g, a || d || null)\n }),\n M = C[0],\n U = C[1],\n S = e(null),\n P = S[0],\n E = S[1],\n Y = e(a),\n N = Y[0],\n q = Y[1]\n n(function () {\n return (\n 'undefined' != typeof window &&\n window.addEventListener &&\n window.addEventListener('keydown', L),\n function () {\n window.removeEventListener && window.removeEventListener('keydown', L)\n }\n )\n })\n var B = function (t) {\n return ve(p, t) || D(t)\n },\n O = function (t) {\n q(t), (!N || (N && !we(t, N))) && U(Ce(g, t))\n },\n H = function (t) {\n return pe({\n date: t,\n minBookingDate: u,\n maxBookingDate: s,\n startDate: a,\n endDate: i,\n minBookingDays: m,\n isDateBlockedFn: B,\n })\n }\n function L(t) {\n if (\n ('ArrowRight' === t.key ||\n 'ArrowLeft' === t.key ||\n 'ArrowDown' === t.key ||\n 'ArrowUp' === t.key) &&\n !N\n ) {\n var e = M[0]\n O(e.date), U(Ce(g, e.date))\n }\n }\n var W = r(\n function () {\n U(Me(M, g, -1)), q(null)\n },\n [M, g],\n ),\n F = r(\n function () {\n U(Me(M, g, -1, 1)), q(null)\n },\n [M, g],\n ),\n Q = r(\n function () {\n U(Me(M, g, 1)), q(null)\n },\n [M, g],\n ),\n R = r(\n function () {\n U(Me(M, g, 1, 1)), q(null)\n },\n [M, g],\n ),\n I = r(\n function (t) {\n U(Ce(g, t)), q(null)\n },\n [g],\n ),\n X = r(\n function (t) {\n void 0 === t && (t = 1), U(Me(M, g, -(12 * t - g + 1))), q(null)\n },\n [M, g],\n ),\n G = r(\n function (t) {\n void 0 === t && (t = 1), U(Me(M, g, 12 * t - g + 1)), q(null)\n },\n [M, g],\n )\n return {\n firstDayOfWeek: y,\n activeMonths: M,\n isDateSelected: function (t) {\n return ye(t, a, i)\n },\n isDateHovered: function (t) {\n return (function (t) {\n var e = t.date,\n n = t.startDate,\n r = t.endDate,\n a = t.isDateBlocked,\n i = t.hoveredDate,\n o = t.minBookingDays,\n u = t.exactMinBookingDays\n return i && o > 1 && u && he(e, {start: i, end: te(i, o - 1)})\n ? !ee({start: i, end: te(i, o - 1)}).some(function (t) {\n return a(t)\n })\n : n && !r && i && he(e, {start: n, end: te(n, o - 1)}) && we(n, i) && o > 1\n ? !ee({start: n, end: te(n, o - 1)}).some(function (t) {\n return a(t)\n })\n : !(!n || r || !i || le(i, n) || !he(e, {start: n, end: i})) &&\n !ee({start: n, end: i}).some(function (t) {\n return a(t)\n })\n })({\n date: t,\n hoveredDate: P,\n startDate: a,\n endDate: i,\n minBookingDays: m,\n exactMinBookingDays: f,\n isDateBlocked: B,\n })\n },\n isFirstOrLastSelectedDate: function (t) {\n return be(t, a, i)\n },\n isStartDate: function (t) {\n return De(t, a)\n },\n isEndDate: function (t) {\n return Te(t, i)\n },\n isDateBlocked: H,\n numberOfMonths: g,\n isDateFocused: function (t) {\n return !!N && we(t, N)\n },\n focusedDate: N,\n hoveredDate: P,\n onResetDates: function () {\n c({startDate: null, endDate: null, focusedInput: 'startDate'})\n },\n onDateHover: function (t) {\n if (t) {\n if (t) {\n var e = !H(t) || (a && we(t, a)),\n n = !u || !le(t, te(u, -1)),\n r = !s || !fe(t, s),\n o = te(t, m - 1),\n c = !u || !le(o, u),\n d = !s || !fe(o, s),\n l = f && m > 1 && n && r && c && d,\n h = a && !i && !f && n && r,\n w = !(m > 1 && a) || he(t, {start: a, end: te(a, m - 2)}),\n g = a && we(t, a) && w\n e && (l || h || g) ? E(t) : null !== P && E(null)\n }\n } else E(null)\n },\n onDateSelect: function (t) {\n ;('endDate' === o || 'startDate' === o) &&\n m > 0 &&\n f &&\n Se({\n minBookingDays: m,\n exactMinBookingDays: f,\n minBookingDate: u,\n maxBookingDate: s,\n isDateBlocked: B,\n startDate: t,\n endDate: null,\n })\n ? c({startDate: t, endDate: te(t, m - 1), focusedInput: null})\n : (('endDate' === o && a && le(t, a)) || ('startDate' === o && i && fe(t, i))) &&\n !f &&\n Se({minBookingDays: m, isDateBlocked: B, startDate: t, endDate: null})\n ? c({endDate: null, startDate: t, focusedInput: 'endDate'})\n : 'startDate' === o &&\n !f &&\n Se({minBookingDays: m, isDateBlocked: B, endDate: i, startDate: t})\n ? c({endDate: i, startDate: t, focusedInput: 'endDate'})\n : 'startDate' === o &&\n !f &&\n Se({minBookingDays: m, isDateBlocked: B, endDate: null, startDate: t})\n ? c({endDate: null, startDate: t, focusedInput: 'endDate'})\n : 'endDate' === o &&\n a &&\n !le(t, a) &&\n !f &&\n Se({minBookingDays: m, isDateBlocked: B, startDate: a, endDate: t}) &&\n c({startDate: a, endDate: t, focusedInput: null}),\n 'endDate' !== o && (!N || (N && !we(t, N))) && x && U(Ce(g, t))\n },\n onDateFocus: O,\n goToPreviousMonths: W,\n goToPreviousMonthsByOneMonth: F,\n goToNextMonths: Q,\n goToNextMonthsByOneMonth: R,\n goToDate: I,\n goToPreviousYear: X,\n goToNextYear: G,\n }\n}\nfunction Ne(t) {\n var e = t.date,\n n = t.focusedDate,\n a = t.isDateSelected,\n i = t.isDateFocused,\n o = t.isFirstOrLastSelectedDate,\n u = t.isDateHovered,\n s = t.isDateBlocked,\n c = t.onDateSelect,\n d = t.onDateFocus,\n l = t.onDateHover,\n f = r(\n function () {\n return c(e)\n },\n [e, c],\n ),\n h = r(\n function () {\n return l(e)\n },\n [e, l],\n ),\n m = s(e) && !u(e)\n return {\n tabIndex: null === n || i(e) ? 0 : -1,\n isSelected: a(e),\n isSelectedStartOrEnd: o(e),\n isWithinHoverRange: u(e),\n disabledDate: m,\n onKeyDown: function (t) {\n 'ArrowRight' === t.key\n ? d(te(e, 1))\n : 'ArrowLeft' === t.key\n ? d(te(e, -1))\n : 'ArrowUp' === t.key\n ? d(te(e, -7))\n : 'ArrowDown' === t.key && d(te(e, 7))\n },\n onClick: m ? function () {} : f,\n onMouseEnter: h,\n }\n}\nexport {\n Ee as END_DATE,\n Pe as START_DATE,\n ue as dayLabelFormat,\n xe as getCurrentYearMonthAndDate,\n ke as getDateMonthAndYear,\n oe as getDays,\n Ce as getInitialMonths,\n Ue as getInputValue,\n ie as getWeekdayLabels,\n pe as isDateBlocked,\n ye as isDateSelected,\n Te as isEndDate,\n be as isFirstOrLastSelectedDate,\n De as isStartDate,\n ce as monthLabelFormat,\n xt as parseDate,\n Ye as useDatepicker,\n Ne as useDay,\n de as useMonth,\n se as weekdayLabelFormat,\n}\n","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\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\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 * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n","import React from 'react';\nvar defaultContext = /*#__PURE__*/React.createContext(undefined);\nvar QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(contextSharing) {\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nexport var useQueryClient = function useQueryClient() {\n var queryClient = React.useContext(getQueryClientContext(React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nexport var QueryClientProvider = function QueryClientProvider(_ref) {\n var client = _ref.client,\n _ref$contextSharing = _ref.contextSharing,\n contextSharing = _ref$contextSharing === void 0 ? false : _ref$contextSharing,\n children = _ref.children;\n React.useEffect(function () {\n client.mount();\n return function () {\n client.unmount();\n };\n }, [client]);\n var Context = getQueryClientContext(contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\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;","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\n\nclass AnimatedAlways extends AnimatedNode {\n _what;\n\n constructor(what) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.always node argument should be of type AnimatedNode but got ${what}`\n );\n super({ type: 'always', what }, [what]);\n this._what = what;\n }\n\n toString() {\n return `AnimatedAlways, id: ${this.__nodeID}`;\n }\n\n update() {\n this.__getValue();\n }\n\n __onEvaluate() {\n val(this._what);\n return 0;\n }\n}\n\nexport function createAnimatedAlways(item) {\n return new AnimatedAlways(item);\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 */\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 }, [targetListeners]);\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 (disabled) {\n return;\n }\n\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(false);\n\n if (onBlur != null) {\n onBlur(e);\n }\n }\n }, [disabled, hostRef, setFocused, onBlur]);\n var focusHandler = React.useCallback(function (e) {\n if (disabled) {\n return;\n }\n\n if (e.nativeEvent.target === hostRef.current) {\n setFocused(true);\n\n if (onFocus != null) {\n onFocus(e);\n }\n }\n }, [disabled, 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;","const o=new WeakMap;let l=0;export default function i(t){const c=typeof t,s=t&&t.constructor,f=s==Date;let e,n;if(Object(t)===t&&!f&&s!=RegExp){if(e=o.get(t),e)return e;if(e=++l+\"~\",o.set(t,e),s==Array){for(e=\"@\",n=0;n {\n // we don't want to add native props as they affect layout\n // we also skip props which repeat here\n if (!(key in NATIVE_THREAD_PROPS_WHITELIST) &&\n !(key in UI_THREAD_PROPS_WHITELIST)) {\n propsToAdd[key] = true;\n }\n });\n addWhitelistedUIProps(propsToAdd);\n PROCESSED_VIEW_NAMES.add(viewName);\n }\n}\nconfigureProps();\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeMax = Math.max,\n nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = mergeWith;\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;","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\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 focusTimeout = null;\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 if (focusTimeout != null) {\n clearTimeout(focusTimeout);\n }\n\n focusTimeout = setTimeout(function () {\n if (hostNode != null) {\n hostNode.select();\n }\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) 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) 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;","import AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\nimport { val } from '../val';\nimport { adapt } from '../core/AnimatedBlock';\n\nclass AnimatedSet extends AnimatedNode {\n _what;\n _value;\n\n constructor(what, value) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: Animated.set first argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Animated.set second argument should be of type AnimatedNode, String or Number but got ${value}`\n );\n super({ type: 'set', what, value }, [value]);\n invariant(!what._constant, 'Value to be set cannot be constant');\n this._what = what;\n this._value = value;\n }\n\n toString() {\n return `AnimatedSet, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const newValue = val(this._value);\n this._what.setValue(newValue);\n return newValue;\n }\n}\n\nexport function createAnimatedSet(what, value) {\n return new AnimatedSet(what, adapt(value));\n}\n","import { ProxyNativeModule } from './NativeModulesProxy.types';\n\n// We default to an empty object shim wherever we don't have an environment-specific implementation\nexport default {} as { [moduleName: string]: ProxyNativeModule };\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 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;","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 defaultActiveTrackColor = '#A3D3CF';\nvar defaultTrackColor = '#939393';\nvar defaultDisabledTrackColor = '#D5D5D5';\nvar defaultActiveThumbColor = '#009688';\nvar defaultThumbColor = '#FAFAFA';\nvar defaultDisabledThumbColor = '#BDBDBD';\nvar Switch = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {\n var accessibilityLabel = props.accessibilityLabel,\n activeThumbColor = props.activeThumbColor,\n activeTrackColor = props.activeTrackColor,\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 thumbColor = props.thumbColor,\n trackColor = 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 !== null && activeTrackColor !== void 0 ? activeTrackColor : defaultActiveTrackColor;\n }\n } else {\n if (trackColor != null && typeof trackColor === 'object') {\n return trackColor.false;\n } else {\n return trackColor !== null && trackColor !== void 0 ? trackColor : defaultTrackColor;\n }\n }\n }();\n\n var thumbCurrentColor = value ? activeThumbColor !== null && activeThumbColor !== void 0 ? activeThumbColor : defaultActiveThumbColor : thumbColor !== null && thumbColor !== void 0 ? thumbColor : defaultThumbColor;\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\n var disabledTrackColor = function () {\n if (value === true) {\n if (typeof activeTrackColor === 'string' && activeTrackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.true) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n } else {\n if (typeof trackColor === 'string' && trackColor != null || typeof trackColor === 'object' && trackColor != null && trackColor.false) {\n return trackCurrentColor;\n } else {\n return defaultDisabledTrackColor;\n }\n }\n }();\n\n var disabledThumbColor = function () {\n if (value === true) {\n if (activeThumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n } else {\n if (thumbColor == null) {\n return defaultDisabledThumbColor;\n } else {\n return thumbCurrentColor;\n }\n }\n }();\n\n var trackStyle = [styles.track, {\n backgroundColor: disabled ? disabledTrackColor : trackCurrentColor,\n borderRadius: trackBorderRadius\n }];\n var thumbStyle = [styles.thumb, value && styles.thumbActive, {\n backgroundColor: disabled ? disabledThumbColor : 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;","/**\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\n if (urlToOpen.indexOf('tel:') === 0) {\n window.location = urlToOpen;\n } else {\n window.open(urlToOpen, '_blank', 'noopener');\n }\n }\n};\n\nexport default new Linking();","/**\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;","/**\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;","/**\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;","import { Platform, StyleSheet } from 'react-native';\nimport get from 'lodash.get';\nimport { resolveValueWithBreakpoint } from '../hooks/useThemeProps/utils';\nimport { hasValidBreakpointFormat, transparentize } from './tools';\nimport type { ITheme } from '.';\nimport type { UseResponsiveQueryParams } from '../utils/useResponsiveQuery';\n\nconst isNumber = (n: any) => typeof n === 'number' && !isNaN(n);\n\nexport const getColor = (rawValue: any, scale: any, theme: any) => {\n const alphaMatched =\n typeof rawValue === 'string' ? rawValue?.match(/:alpha\\.\\d\\d?\\d?/) : false;\n\n if (alphaMatched) {\n const colorMatched = rawValue?.match(/^.*?(?=:alpha)/);\n const color = colorMatched ? colorMatched[0] : colorMatched;\n const alphaValue = alphaMatched[0].split('.')[1];\n const alphaFromToken = get(theme.opacity, alphaValue, alphaValue);\n const alpha = alphaFromToken ? parseFloat(alphaFromToken) : 1;\n const newColor = transparentize(color, alpha)(theme);\n return newColor;\n } else {\n return get(scale, rawValue, rawValue);\n }\n};\n\n// To handle negative margins\nconst getMargin = (n: any, scale: any) => {\n n = convertStringNumberToNumber('margin', n);\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n const isNegative = n < 0;\n const absolute = Math.abs(n);\n const value = get(scale, absolute, absolute);\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n return value * (isNegative ? -1 : 1);\n};\n\nexport const layout = {\n width: {\n property: 'width',\n scale: 'sizes',\n },\n w: {\n property: 'width',\n scale: 'sizes',\n },\n height: {\n property: 'height',\n scale: 'sizes',\n },\n h: {\n property: 'height',\n scale: 'sizes',\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minW: {\n property: 'minWidth',\n scale: 'sizes',\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes',\n },\n minH: {\n property: 'minHeight',\n scale: 'sizes',\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxW: {\n property: 'maxWidth',\n scale: 'sizes',\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n maxH: {\n property: 'maxHeight',\n scale: 'sizes',\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n boxSize: {\n properties: ['width', 'height'],\n scale: 'sizes',\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true,\n textAlign: true,\n} as const;\n\nexport const flexbox = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n flexDir: {\n property: 'flexDirection',\n },\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true,\n} as const;\n\nexport const position = {\n position: true,\n zIndex: {\n property: 'zIndex',\n },\n top: {\n property: 'top',\n scale: 'space',\n },\n right: {\n property: 'right',\n scale: 'space',\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n },\n left: {\n property: 'left',\n scale: 'space',\n },\n} as const;\n\nexport const color = {\n color: {\n property: 'color',\n scale: 'colors',\n transformer: getColor,\n },\n tintColor: {\n property: 'tintColor',\n scale: 'colors',\n transformer: getColor,\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n opacity: {\n property: 'opacity',\n scale: 'opacity',\n },\n bg: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n bgColor: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n background: {\n property: 'backgroundColor',\n scale: 'colors',\n transformer: getColor,\n },\n textDecorationColor: {\n property: 'textDecorationColor',\n scale: 'colors',\n transformer: getColor,\n },\n} as const;\n\nexport const border = {\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths',\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles',\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii',\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders',\n },\n borderTopRadius: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderLeftRadius: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n borderRightRadius: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders',\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders',\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders',\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders',\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders',\n },\n borderTopWidth: {\n property: 'borderTopWidth',\n scale: 'borderWidths',\n },\n borderTopColor: {\n property: 'borderTopColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderTopStyle: {\n property: 'borderTopStyle',\n scale: 'borderStyles',\n },\n borderBottomWidth: {\n property: 'borderBottomWidth',\n scale: 'borderWidths',\n },\n borderBottomColor: {\n property: 'borderBottomColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderBottomStyle: {\n property: 'borderBottomStyle',\n scale: 'borderStyles',\n },\n borderLeftWidth: {\n property: 'borderLeftWidth',\n scale: 'borderWidths',\n },\n borderLeftColor: {\n property: 'borderLeftColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderLeftStyle: {\n property: 'borderLeftStyle',\n scale: 'borderStyles',\n },\n borderRightWidth: {\n property: 'borderRightWidth',\n scale: 'borderWidths',\n },\n borderRightColor: {\n property: 'borderRightColor',\n scale: 'colors',\n transformer: getColor,\n },\n borderRightStyle: {\n property: 'borderRightStyle',\n scale: 'borderStyles',\n },\n rounded: {\n property: 'borderRadius',\n scale: 'radii',\n },\n\n roundedTopLeft: {\n property: 'borderTopLeftRadius',\n scale: 'radii',\n },\n\n roundedTopRight: {\n property: 'borderTopRightRadius',\n scale: 'radii',\n },\n\n roundedBottomLeft: {\n property: 'borderBottomLeftRadius',\n scale: 'radii',\n },\n\n roundedBottomRight: {\n property: 'borderBottomRightRadius',\n scale: 'radii',\n },\n\n roundedTop: {\n properties: ['borderTopLeftRadius', 'borderTopRightRadius'],\n scale: 'radii',\n },\n borderBottomRadius: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n roundedBottom: {\n properties: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n\n roundedLeft: {\n properties: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n scale: 'radii',\n },\n\n roundedRight: {\n properties: ['borderTopRightRadius', 'borderBottomRightRadius'],\n scale: 'radii',\n },\n} as const;\n\nexport const background = {\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true,\n backgroundAttachment: true,\n backgroundBlendMode: true,\n bgImage: {\n property: 'backgroundImage',\n },\n bgImg: {\n property: 'backgroundImage',\n },\n bgBlendMode: {\n property: 'backgroundBlendMode',\n },\n bgSize: {\n property: 'backgroundSize',\n },\n bgPosition: {\n property: 'backgroundPosition',\n },\n bgPos: {\n property: 'backgroundPosition',\n },\n bgRepeat: {\n property: 'backgroundRepeat',\n },\n bgAttachment: {\n property: 'backgroundAttachment',\n },\n} as const;\n\nexport const space = {\n margin: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n m: {\n property: 'margin',\n scale: 'space',\n transformer: getMargin,\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n mt: {\n property: 'marginTop',\n scale: 'space',\n transformer: getMargin,\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n mr: {\n property: 'marginRight',\n scale: 'space',\n transformer: getMargin,\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n mb: {\n property: 'marginBottom',\n scale: 'space',\n transformer: getMargin,\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n ml: {\n property: 'marginLeft',\n scale: 'space',\n transformer: getMargin,\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n mx: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transformer: getMargin,\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n my: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transformer: getMargin,\n },\n\n padding: {\n property: 'padding',\n scale: 'space',\n },\n p: {\n property: 'padding',\n scale: 'space',\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n },\n pt: {\n property: 'paddingTop',\n scale: 'space',\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n },\n pr: {\n property: 'paddingRight',\n scale: 'space',\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n },\n pb: {\n property: 'paddingBottom',\n scale: 'space',\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n },\n pl: {\n property: 'paddingLeft',\n scale: 'space',\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n px: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n py: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n },\n gap: {\n property: 'gap',\n scale: 'space',\n },\n} as const;\n\nexport const typography = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts',\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights',\n transformer: (val: any, scale: any) => {\n return val ? get(scale, val, val).toString() : val;\n },\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights',\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings',\n },\n textAlign: true,\n fontStyle: true,\n wordBreak: true,\n overflowWrap: true,\n textOverflow: true,\n textTransform: true,\n whiteSpace: true,\n textDecoration: { property: 'textDecorationLine' },\n txtDecor: { property: 'textDecorationLine' },\n textDecorationLine: true,\n} as const;\n\nconst extraProps = {\n outline: true,\n outlineWidth: true,\n outlineColor: true,\n outlineStyle: true,\n shadow: {\n scale: 'shadows',\n },\n cursor: true,\n overflow: true,\n userSelect: { property: 'userSelect' },\n} as const;\n\nexport const propConfig = {\n ...color,\n ...space,\n ...layout,\n ...flexbox,\n ...border,\n ...position,\n ...typography,\n ...background,\n ...extraProps,\n} as const;\n\n// For backward compatibility with 3.0 of props like non token string numbers `` => used to get applied as 39px. RN expects fontWeight to be string and crashes with numbers\n// https://reactnative.dev/docs/text-style-props#fontweight\nconst convertStringNumberToNumber = (key: string, value: string) => {\n if (\n typeof value === 'string' &&\n key !== 'fontWeight' &&\n value &&\n !isNaN(Number(value))\n ) {\n return parseFloat(value);\n }\n\n return value;\n};\n\nconst getRNKeyAndStyleValue = ({\n config,\n value,\n key,\n theme,\n styledSystemProps,\n currentBreakpoint,\n}: any) => {\n let style: any = {};\n if (config === true) {\n style = {\n ...style,\n [key]: convertStringNumberToNumber(key, value),\n };\n } else if (config) {\n //@ts-ignore\n const { property, scale, properties, transformer } = config;\n let val = value;\n\n if (transformer) {\n val = transformer(val, theme[scale], theme, styledSystemProps.fontSize);\n } else {\n // If a token is not found in the theme\n val = get(theme[scale], value, value);\n }\n\n if (typeof val === 'string') {\n if (val.endsWith('px')) {\n val = parseFloat(val);\n } else if (val.endsWith('em') && Platform.OS !== 'web') {\n const fontSize = resolveValueWithBreakpoint(\n styledSystemProps.fontSize,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n val =\n parseFloat(val) *\n parseFloat(get(theme.fontSizes, fontSize, fontSize));\n }\n }\n\n val = convertStringNumberToNumber(key, val);\n\n if (properties) {\n //@ts-ignore\n properties.forEach((property) => {\n style = {\n ...style,\n [property]: val,\n };\n });\n } else if (property) {\n style = {\n ...style,\n [property]: val,\n };\n } else {\n style = {\n ...style,\n ...val,\n };\n }\n }\n\n return style;\n};\n\nexport const getStyleAndFilteredProps = ({\n style,\n theme,\n debug,\n currentBreakpoint,\n getResponsiveStyles,\n styledSystemProps,\n}: any) => {\n let styleFromProps: any = {};\n let dataSet: any = {};\n let responsiveStyles: null | Record<\n keyof typeof theme.breakpoints,\n Array\n > = null;\n\n const orderedBreakPoints = Object.entries(\n theme.breakpoints as ITheme['breakpoints']\n ).sort((a, b) => a[1] - b[1]);\n\n for (const key in styledSystemProps) {\n const rawValue = styledSystemProps[key];\n\n const config = propConfig[key as keyof typeof propConfig];\n\n if (hasValidBreakpointFormat(rawValue, theme.breakpoints)) {\n if (!responsiveStyles) responsiveStyles = {};\n\n const value = rawValue;\n if (Array.isArray(value)) {\n value.forEach((v, i) => {\n //@ts-ignore\n if (!responsiveStyles[orderedBreakPoints[i][0]]) {\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]] = [];\n }\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: v,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n //@ts-ignore\n responsiveStyles[orderedBreakPoints[i][0]].push(newStyle);\n });\n } else {\n for (const k in value) {\n const newStyle = getRNKeyAndStyleValue({\n config,\n value: value[k],\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n if (!responsiveStyles[k]) {\n responsiveStyles[k] = [];\n }\n responsiveStyles[k].push(newStyle);\n }\n }\n } else {\n const value = rawValue;\n const newStyle = getRNKeyAndStyleValue({\n config,\n value,\n key,\n styledSystemProps,\n theme,\n currentBreakpoint,\n });\n\n styleFromProps = {\n ...styleFromProps,\n ...newStyle,\n };\n }\n }\n\n if (responsiveStyles) {\n const query: UseResponsiveQueryParams = { query: [] };\n orderedBreakPoints.forEach((o) => {\n const key = o[0];\n if (key === 'base') {\n if (responsiveStyles) query.initial = responsiveStyles.base;\n } else {\n if (responsiveStyles)\n if (key in responsiveStyles) {\n query?.query?.push({\n minWidth: o[1],\n style: responsiveStyles[key],\n });\n }\n }\n });\n\n const { dataSet: newDataSet, styles } = getResponsiveStyles(query);\n dataSet = { ...dataSet, ...newDataSet };\n styleFromProps = { ...styleFromProps, ...StyleSheet.flatten(styles) };\n }\n\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log('style ', debug + ' :: ', {\n styleFromProps,\n style,\n styledSystemProps,\n });\n }\n\n return {\n styleSheet: StyleSheet.create({ box: styleFromProps }),\n dataSet,\n };\n};\n\nexport type StyledPropConfig = typeof propConfig;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap');\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' ||\n typeof value.splice == 'function' || isBuffer(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (nonEnumShadows || isPrototype(value)) {\n return !nativeKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEmpty;\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) 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}","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 * 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;","import invariant from 'invariant';\nimport AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport AnimatedClock from './AnimatedClock';\nimport { val } from '../val';\n\nexport class AnimatedParam extends AnimatedNode {\n argsStack = [];\n _prevCallID;\n\n constructor() {\n super({ type: 'param' }, []);\n this.__attach();\n }\n\n beginContext(ref, prevCallID) {\n this._prevCallID = prevCallID;\n this.argsStack.push(ref);\n }\n\n endContext() {\n this.argsStack.pop();\n }\n\n _getTopNode() {\n if (this.argsStack.length === 0)\n throw new Error(`param: Invocation failed because argsStack is empty`);\n const top = this.argsStack[this.argsStack.length - 1];\n return top;\n }\n\n setValue(value) {\n const top = this._getTopNode();\n if (top.setValue) {\n const callID = getCallID();\n setCallID(this._prevCallID);\n top.setValue(value);\n setCallID(callID);\n } else {\n throw new Error(\n `param: setValue(${value}) failed because the top element has no known method for updating it's current value.`\n );\n }\n }\n\n __onEvaluate() {\n const callID = getCallID();\n setCallID(this._prevCallID);\n const top = this._getTopNode();\n const value = val(top);\n setCallID(callID);\n return value;\n }\n\n start() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.start();\n }\n\n stop() {\n const node = this._getTopNode();\n invariant(\n node instanceof AnimatedClock || node instanceof AnimatedParam,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n node.stop();\n }\n\n isRunning() {\n const node = this._getTopNode();\n\n if (node instanceof AnimatedParam) {\n return node.isRunning();\n }\n invariant(\n node instanceof AnimatedClock,\n `param: top node should be of type AnimatedClock but got ${node}`\n );\n return node.isStarted();\n }\n}\n\nexport function createAnimatedParam() {\n return new AnimatedParam();\n}\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","import { Easing } from '../Easing';\nimport { defineAnimation } from './util';\nexport function withTiming(toValue, userConfig, callback) {\n 'worklet';\n return defineAnimation(toValue, () => {\n 'worklet';\n const config = {\n duration: 300,\n easing: Easing.inOut(Easing.quad),\n };\n if (userConfig) {\n Object.keys(userConfig).forEach((key) => (config[key] = userConfig[key]));\n }\n function timing(animation, now) {\n const { toValue, startTime, startValue } = animation;\n const runtime = now - startTime;\n if (runtime >= config.duration) {\n // reset startTime to avoid reusing finished animation config in `start` method\n animation.startTime = 0;\n animation.current = toValue;\n return true;\n }\n const progress = animation.easing(runtime / config.duration);\n animation.current =\n startValue + (toValue - startValue) * progress;\n return false;\n }\n function onStart(animation, value, now, previousAnimation) {\n if (previousAnimation &&\n previousAnimation.type === 'timing' &&\n previousAnimation.toValue === toValue &&\n previousAnimation.startTime) {\n // to maintain continuity of timing animations we check if we are starting\n // new timing over the old one with the same parameters. If so, we want\n // to copy animation timeline properties\n animation.startTime = previousAnimation.startTime;\n animation.startValue = previousAnimation.startValue;\n }\n else {\n animation.startTime = now;\n animation.startValue = value;\n }\n animation.current = value;\n if (typeof config.easing === 'object') {\n animation.easing = config.easing.factory();\n }\n else {\n animation.easing = config.easing;\n }\n }\n return {\n type: 'timing',\n onFrame: timing,\n onStart: onStart,\n progress: 0,\n toValue,\n startValue: 0,\n startTime: 0,\n easing: () => 0,\n current: toValue,\n callback,\n };\n });\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {ToggleProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface ToggleState {\n /** Whether the toggle is selected. */\n readonly isSelected: boolean,\n\n /** Updates selection state. */\n setSelected(isSelected: boolean): void,\n\n /** Toggle the selection state. */\n toggle(): void\n}\n\n/**\n * Provides state management for toggle components like checkboxes and switches.\n */\nexport function useToggleState(props: ToggleProps = {}): ToggleState {\n let {isReadOnly} = props;\n\n // have to provide an empty function so useControlledState doesn't throw a fit\n // can't use useControlledState's prop calling because we need the event object from the change\n let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, props.onChange);\n\n function updateSelected(value) {\n if (!isReadOnly) {\n setSelected(value);\n }\n }\n\n function toggleState() {\n if (!isReadOnly) {\n setSelected(!isSelected);\n }\n }\n\n return {\n isSelected,\n setSelected: updateSelected,\n toggle: toggleState\n };\n}\n","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import isDocument from './isDocument';\nexport default function isWindow(node) {\n if ('window' in node && node.window === node) return node;\n if (isDocument(node)) return node.defaultView || false;\n return false;\n}","export default function isDocument(element) {\n return 'nodeType' in element && element.nodeType === document.DOCUMENT_NODE;\n}","import isWindow from './isWindow';\nexport default function getscrollAccessor(offset) {\n var prop = offset === 'pageXOffset' ? 'scrollLeft' : 'scrollTop';\n\n function scrollAccessor(node, val) {\n var win = isWindow(node);\n\n if (val === undefined) {\n return win ? win[offset] : node[prop];\n }\n\n if (win) {\n win.scrollTo(win[offset], val);\n } else {\n node[prop] = val;\n }\n }\n\n return scrollAccessor;\n}","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll left position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageXOffset');","import getScrollAccessor from './getScrollAccessor';\n/**\n * Gets or sets the scroll top position of a given element.\n * \n * @param node the element\n * @param val the position to set\n */\n\nexport default getScrollAccessor('pageYOffset');","import contains from './contains';\nimport ownerDocument from './ownerDocument';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n/**\n * Returns the offset of a given element, including top and left positions, width and height.\n * \n * @param node the element\n */\n\nexport default function offset(node) {\n var doc = ownerDocument(node);\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n var docElem = doc && doc.documentElement; // Make sure it's not a disconnected DOM node\n\n if (!docElem || !contains(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();\n box = {\n top: box.top + scrollTop(docElem) - (docElem.clientTop || 0),\n left: box.left + scrollLeft(docElem) - (docElem.clientLeft || 0),\n width: box.width,\n height: box.height\n };\n return box;\n}","/* eslint-disable no-bitwise, no-cond-assign */\n\n/**\n * Checks if an element contains another given element.\n * \n * @param context the context element\n * @param node the element to check\n */\nexport default function contains(context, node) {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n if (context.contains) return context.contains(node);\n if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport css from './css';\nimport getOffset from './offset';\nimport getOffsetParent from './offsetParent';\nimport scrollLeft from './scrollLeft';\nimport scrollTop from './scrollTop';\n\nvar nodeName = function nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n};\n/**\n * Returns the relative position of a given element.\n * \n * @param node the element\n * @param offsetParent the offset parent\n */\n\n\nexport default function position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (css(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n var parent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n if (nodeName(parent) !== 'html') parentOffset = getOffset(parent);\n var borderTop = String(css(parent, 'borderTopWidth') || 0);\n parentOffset.top += parseInt(borderTop, 10) - scrollTop(parent) || 0;\n var borderLeft = String(css(parent, 'borderLeftWidth') || 0);\n parentOffset.left += parseInt(borderLeft, 10) - scrollLeft(parent) || 0;\n }\n\n var marginTop = String(css(node, 'marginTop') || 0);\n var marginLeft = String(css(node, 'marginLeft') || 0); // Subtract parent offsets and node margins\n\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - (parseInt(marginTop, 10) || 0),\n left: offset.left - parentOffset.left - (parseInt(marginLeft, 10) || 0)\n });\n}","import css from './css';\nimport ownerDocument from './ownerDocument';\n\nvar isHTMLElement = function isHTMLElement(e) {\n return !!e && 'offsetParent' in e;\n};\n\nexport default function offsetParent(node) {\n var doc = ownerDocument(node);\n var parent = node && node.offsetParent;\n\n while (isHTMLElement(parent) && parent.nodeName !== 'HTML' && css(parent, 'position') === 'static') {\n parent = parent.offsetParent;\n }\n\n return parent || doc.documentElement;\n}","// @ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {Axis, Placement, PlacementAxis, SizeAxis} from '@react-types/overlays';\nimport getCss from 'dom-helpers/css';\nimport getOffset from 'dom-helpers/offset';\nimport getPosition from 'dom-helpers/position';\nimport getScrollLeft from 'dom-helpers/scrollLeft';\nimport getScrollTop from 'dom-helpers/scrollTop';\nimport ownerDocument from 'dom-helpers/ownerDocument';\n\ninterface Position {\n top?: number,\n left?: number,\n bottom?: number,\n right?: number\n}\n\ninterface Dimensions {\n width: number,\n height: number,\n top: number,\n left: number,\n scroll: Position\n}\n\ninterface ParsedPlacement {\n placement: PlacementAxis,\n crossPlacement: PlacementAxis,\n axis: Axis,\n crossAxis: Axis,\n size: SizeAxis,\n crossSize: SizeAxis\n}\n\ninterface Offset {\n top: number,\n left: number,\n width: number,\n height: number\n}\n\ninterface PositionOpts {\n placement: Placement,\n targetNode: HTMLElement,\n overlayNode: HTMLElement,\n scrollNode: HTMLElement,\n padding: number,\n shouldFlip: boolean,\n boundaryElement: HTMLElement,\n offset: number,\n crossOffset: number,\n shouldOverlapWithTrigger: boolean\n}\n\nexport interface PositionResult {\n position?: Position,\n arrowOffsetLeft?: number,\n arrowOffsetTop?: number,\n maxHeight?: number,\n placement: PlacementAxis\n}\n\nconst AXIS = {\n top: 'top',\n bottom: 'top',\n left: 'left',\n right: 'left'\n};\n\nconst FLIPPED_DIRECTION = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\n\nconst CROSS_AXIS = {\n top: 'left',\n left: 'top'\n};\n\nconst AXIS_SIZE = {\n top: 'height',\n left: 'width'\n};\n\nconst PARSED_PLACEMENT_CACHE = {};\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\nfunction getContainerDimensions(containerNode: Element): Dimensions {\n let width = 0, height = 0, top = 0, left = 0;\n let scroll: Position = {};\n\n if (containerNode.tagName === 'BODY') {\n width = visualViewport?.width ?? document.documentElement.clientWidth;\n height = visualViewport?.height ?? document.documentElement.clientHeight;\n\n scroll.top =\n getScrollTop(ownerDocument(containerNode).documentElement) ||\n getScrollTop(containerNode);\n scroll.left =\n getScrollLeft(ownerDocument(containerNode).documentElement) ||\n getScrollLeft(containerNode);\n } else {\n ({width, height, top, left} = getOffset(containerNode));\n scroll.top = getScrollTop(containerNode);\n scroll.left = getScrollLeft(containerNode);\n }\n\n return {width, height, scroll, top, left};\n}\n\nfunction getScroll(node: HTMLElement): Offset {\n return {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n}\n\nfunction getDelta(\n axis: Axis,\n offset: number,\n size: number,\n containerDimensions: Dimensions,\n padding: number\n) {\n let containerScroll = containerDimensions.scroll[axis];\n let containerHeight = containerDimensions[AXIS_SIZE[axis]];\n\n let startEdgeOffset = offset - padding - containerScroll;\n let endEdgeOffset = offset + padding - containerScroll + size;\n\n if (startEdgeOffset < 0) {\n return -startEdgeOffset;\n } else if (endEdgeOffset > containerHeight) {\n return Math.max(containerHeight - endEdgeOffset, -startEdgeOffset);\n } else {\n return 0;\n }\n}\n\nfunction getMargins(node: HTMLElement): Position {\n let style = window.getComputedStyle(node);\n return {\n top: parseInt(style.marginTop, 10) || 0,\n bottom: parseInt(style.marginBottom, 10) || 0,\n left: parseInt(style.marginLeft, 10) || 0,\n right: parseInt(style.marginRight, 10) || 0\n };\n}\n\nfunction parsePlacement(input: Placement): ParsedPlacement {\n if (PARSED_PLACEMENT_CACHE[input]) {\n return PARSED_PLACEMENT_CACHE[input];\n }\n\n let [placement, crossPlacement] = input.split(' ');\n let axis: Axis = AXIS[placement] || 'right';\n let crossAxis: Axis = CROSS_AXIS[axis];\n\n if (!AXIS[crossPlacement]) {\n crossPlacement = 'center';\n }\n\n let size = AXIS_SIZE[axis];\n let crossSize = AXIS_SIZE[crossAxis];\n PARSED_PLACEMENT_CACHE[input] = {placement, crossPlacement, axis, crossAxis, size, crossSize};\n return PARSED_PLACEMENT_CACHE[input];\n}\n\nfunction computePosition(\n childOffset: Offset,\n boundaryDimensions: Dimensions,\n overlaySize: Offset,\n placementInfo: ParsedPlacement,\n offset: number,\n crossOffset: number,\n containerOffsetWithBoundary: Offset,\n isContainerPositioned: boolean\n) {\n let {placement, crossPlacement, axis, crossAxis, size, crossSize} = placementInfo;\n let position: Position = {};\n\n // button position\n position[crossAxis] = childOffset[crossAxis];\n if (crossPlacement === 'center') {\n // + (button size / 2) - (overlay size / 2)\n // at this point the overlay center should match the button center\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]) / 2;\n } else if (crossPlacement !== crossAxis) {\n // + (button size) - (overlay size)\n // at this point the overlay bottom should match the button bottom\n position[crossAxis] += (childOffset[crossSize] - overlaySize[crossSize]);\n }/* else {\n the overlay top should match the button top\n } */\n // add the crossOffset from props\n position[crossAxis] += crossOffset;\n\n // this is button center position - the overlay size + half of the button to align bottom of overlay with button center\n let minViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2) - overlaySize[crossSize];\n // this is button position of center, aligns top of overlay with button center\n let maxViablePosition = childOffset[crossAxis] + (childOffset[crossSize] / 2);\n\n // clamp it into the range of the min/max positions\n position[crossAxis] = Math.min(Math.max(minViablePosition, position[crossAxis]), maxViablePosition);\n\n // Floor these so the position isn't placed on a partial pixel, only whole pixels. Shouldn't matter if it was floored or ceiled, so chose one.\n if (placement === axis) {\n // If the container is positioned (non-static), then we use the container's actual\n // height, as `bottom` will be relative to this height. But if the container is static,\n // then it can only be the `document.body`, and `bottom` will be relative to _its_\n // container, which should be as large as boundaryDimensions.\n const containerHeight = (isContainerPositioned ? containerOffsetWithBoundary[size] : boundaryDimensions[size]);\n position[FLIPPED_DIRECTION[axis]] = Math.floor(containerHeight - childOffset[axis] + offset);\n } else {\n position[axis] = Math.floor(childOffset[axis] + childOffset[size] + offset);\n }\n\n return position;\n}\n\nfunction getMaxHeight(\n position: Position,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number\n) {\n return position.top != null\n // We want the distance between the top of the overlay to the bottom of the boundary\n ? Math.max(0,\n (boundaryDimensions.height + boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the bottom of the boundary\n - (containerOffsetWithBoundary.top + position.top) // this is the top of the overlay\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n )\n // We want the distance between the top of the trigger to the top of the boundary\n : Math.max(0,\n (childOffset.top + containerOffsetWithBoundary.top) // this is the top of the trigger\n - (boundaryDimensions.top + boundaryDimensions.scroll.top) // this is the top of the boundary\n - (margins.top + margins.bottom + padding) // save additional space for margin and padding\n );\n}\n\nfunction getAvailableSpace(\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n childOffset: Offset,\n margins: Position,\n padding: number,\n placementInfo: ParsedPlacement\n) {\n let {placement, axis, size} = placementInfo;\n if (placement === axis) {\n return Math.max(0, childOffset[axis] - boundaryDimensions[axis] - boundaryDimensions.scroll[axis] + containerOffsetWithBoundary[axis] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n }\n\n return Math.max(0, boundaryDimensions[size] + boundaryDimensions[axis] + boundaryDimensions.scroll[axis] - containerOffsetWithBoundary[axis] - childOffset[axis] - childOffset[size] - margins[axis] - margins[FLIPPED_DIRECTION[axis]] - padding);\n}\n\nexport function calculatePositionInternal(\n placementInput: Placement,\n childOffset: Offset,\n overlaySize: Offset,\n scrollSize: Offset,\n margins: Position,\n padding: number,\n flip: boolean,\n boundaryDimensions: Dimensions,\n containerOffsetWithBoundary: Offset,\n offset: number,\n crossOffset: number,\n isContainerPositioned: boolean,\n shouldOverlapWithTrigger: boolean\n): PositionResult {\n let placementInfo = parsePlacement(placementInput);\n let {size, crossAxis, crossSize, placement, crossPlacement, axis} = placementInfo;\n let position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let normalizedOffset = offset;\n let space = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n placementInfo\n );\n\n // Check if the scroll size of the overlay is greater than the available space to determine if we need to flip\n if (flip && scrollSize[size] > space) {\n let flippedPlacementInfo = parsePlacement(`${FLIPPED_DIRECTION[placement]} ${crossPlacement}` as Placement);\n let flippedPosition = computePosition(childOffset, boundaryDimensions, overlaySize, flippedPlacementInfo, offset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n let flippedSpace = getAvailableSpace(\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding + offset,\n flippedPlacementInfo\n );\n\n // If the available space for the flipped position is greater than the original available space, flip.\n if (flippedSpace > space) {\n placementInfo = flippedPlacementInfo;\n position = flippedPosition;\n normalizedOffset = offset;\n }\n }\n\n let delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let maxHeight = getMaxHeight(\n position,\n boundaryDimensions,\n containerOffsetWithBoundary,\n childOffset,\n margins,\n padding\n );\n\n overlaySize.height = Math.min(overlaySize.height, maxHeight);\n\n position = computePosition(childOffset, boundaryDimensions, overlaySize, placementInfo, normalizedOffset, crossOffset, containerOffsetWithBoundary, isContainerPositioned);\n delta = getDelta(crossAxis, position[crossAxis], overlaySize[crossSize], boundaryDimensions, padding);\n position[crossAxis] += delta;\n\n let arrowPosition: Position = {};\n arrowPosition[crossAxis] = (childOffset[crossAxis] - position[crossAxis] + childOffset[crossSize] / 2);\n\n if (shouldOverlapWithTrigger) {\n position[FLIPPED_DIRECTION[placementInfo.placement]] = position[FLIPPED_DIRECTION[placementInfo.placement]] - childOffset[size];\n }\n\n return {\n position,\n maxHeight: maxHeight,\n arrowOffsetLeft: arrowPosition.left,\n arrowOffsetTop: arrowPosition.top,\n placement: placementInfo.placement\n };\n}\n\n/**\n * Determines where to place the overlay with regards to the target and the position of an optional indicator.\n */\nexport function calculatePosition(opts: PositionOpts): PositionResult {\n let {\n placement,\n targetNode,\n overlayNode,\n scrollNode,\n padding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n shouldOverlapWithTrigger\n } = opts;\n\n let container = overlayNode.offsetParent || document.body;\n let isBodyContainer = container.tagName === 'BODY';\n const containerPositionStyle = window.getComputedStyle(container).position;\n let isContainerPositioned = !!containerPositionStyle && containerPositionStyle !== 'static';\n let childOffset: Offset = isBodyContainer ? getOffset(targetNode) : getPosition(targetNode, container);\n\n if (!isBodyContainer) {\n childOffset.top += parseInt(getCss(targetNode, 'marginTop'), 10) || 0;\n childOffset.left += parseInt(getCss(targetNode, 'marginLeft'), 10) || 0;\n }\n\n let overlaySize: Offset = getOffset(overlayNode);\n let margins = getMargins(overlayNode);\n overlaySize.width += margins.left + margins.right;\n overlaySize.height += margins.top + margins.bottom;\n\n let scrollSize = getScroll(scrollNode);\n let boundaryDimensions = getContainerDimensions(boundaryElement);\n let containerOffsetWithBoundary: Offset = boundaryElement.tagName === 'BODY' ? getOffset(container) : getPosition(container, boundaryElement);\n\n\n return calculatePositionInternal(\n placement,\n childOffset,\n overlaySize,\n scrollSize,\n margins,\n padding,\n shouldFlip,\n boundaryDimensions,\n containerOffsetWithBoundary,\n offset,\n crossOffset,\n isContainerPositioned,\n shouldOverlapWithTrigger\n );\n}\n","//@ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {RefObject, useEffect} from 'react';\n\n// This behavior moved from useOverlayTrigger to useOverlayPosition.\n// For backward compatibility, where useOverlayTrigger handled hiding the popover on close,\n// it sets a close function here mapped from the trigger element. This way we can avoid\n// forcing users to pass an onClose function to useOverlayPosition which could be considered\n// a breaking change.\nexport const onCloseMap: WeakMap void> = new WeakMap();\n\ninterface CloseOnScrollOptions {\n triggerRef: RefObject,\n isOpen?: boolean,\n onClose?: () => void\n}\n\n/** @private */\nexport function useCloseOnScroll(opts: CloseOnScrollOptions) {\n let {triggerRef, isOpen, onClose} = opts;\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n let onScroll = (e: MouseEvent) => {\n // Ignore if scrolling an scrollable region outside the trigger's tree.\n let target = e.target as HTMLElement;\n if (!triggerRef.current || !target.contains(triggerRef.current)) {\n return;\n }\n\n let onCloseHandler = onClose || onCloseMap.get(triggerRef.current);\n if (onCloseHandler) {\n onCloseHandler();\n }\n };\n\n window.addEventListener('scroll', onScroll, true);\n return () => {\n window.removeEventListener('scroll', onScroll, true);\n };\n }, [isOpen, onClose, triggerRef]);\n}\n","//@ts-nocheck\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { calculatePosition, PositionResult } from './calculatePosition';\nimport {\n HTMLAttributes,\n RefObject,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport { Placement, PlacementAxis, PositionProps } from '@react-types/overlays';\nimport { useCloseOnScroll } from './useCloseOnScroll';\nimport { isRTL, useLayoutEffect } from '@react-native-aria/utils';\n\ninterface AriaPositionProps extends PositionProps {\n /**\n * Element that that serves as the positioning boundary.\n * @default document.body\n */\n boundaryElement?: HTMLElement;\n /**\n * The ref for the element which the overlay positions itself with respect to.\n */\n targetRef: RefObject;\n /**\n * The ref for the overlay element.\n */\n overlayRef: RefObject;\n /**\n * A ref for the scrollable region within the overlay.\n * @default overlayRef\n */\n scrollRef?: RefObject;\n /**\n * Whether the overlay should update its position automatically.\n * @default true\n */\n shouldUpdatePosition?: boolean;\n /** Handler that is called when the overlay should close. */\n onClose?: () => void;\n /** Determines whether the overlay should overlap with the trigger */\n shouldOverlapWithTrigger?: boolean;\n}\n\ninterface PositionAria {\n /** Props for the overlay container element. */\n overlayProps: HTMLAttributes;\n /** Props for the overlay tip arrow if any. */\n arrowProps: HTMLAttributes;\n /** Placement of the overlay with respect to the overlay trigger. */\n placement: PlacementAxis;\n /** Updates the position of the overlay. */\n updatePosition(): void;\n}\n\n// @ts-ignore\nlet visualViewport = typeof window !== 'undefined' && window.visualViewport;\n\n/**\n * Handles positioning overlays like popovers and menus relative to a trigger\n * element, and updating the position when the window resizes.\n */\nexport function useOverlayPosition(props: AriaPositionProps): PositionAria {\n const direction = isRTL() ? 'rtl' : undefined;\n let {\n targetRef,\n overlayRef,\n scrollRef = overlayRef,\n placement = 'bottom' as Placement,\n containerPadding = 12,\n shouldFlip = true,\n boundaryElement = typeof document !== 'undefined' ? document.body : null,\n offset = 0,\n crossOffset = 0,\n shouldUpdatePosition = true,\n isOpen = true,\n shouldOverlapWithTrigger = false,\n onClose,\n } = props;\n let [position, setPosition] = useState({\n position: {},\n arrowOffsetLeft: undefined,\n arrowOffsetTop: undefined,\n maxHeight: undefined,\n placement: undefined,\n });\n\n let deps = [\n shouldUpdatePosition,\n placement,\n overlayRef.current,\n targetRef.current,\n scrollRef.current,\n containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n isOpen,\n direction,\n shouldOverlapWithTrigger\n ];\n\n let updatePosition = useCallback(() => {\n if (\n shouldUpdatePosition === false ||\n !isOpen ||\n !overlayRef.current ||\n !targetRef.current ||\n !scrollRef.current ||\n !boundaryElement\n ) {\n return;\n }\n\n setPosition(\n calculatePosition({\n placement: translateRTL(placement, direction),\n overlayNode: overlayRef.current,\n targetNode: targetRef.current,\n scrollNode: scrollRef.current,\n padding: containerPadding,\n shouldFlip,\n boundaryElement,\n offset,\n crossOffset,\n shouldOverlapWithTrigger,\n })\n );\n }, deps);\n\n // Update position when anything changes\n useLayoutEffect(updatePosition, deps);\n\n // Update position on window resize\n useResize(updatePosition);\n\n // Reposition the overlay and do not close on scroll while the visual viewport is resizing.\n // This will ensure that overlays adjust their positioning when the iOS virtual keyboard appears.\n let isResizing = useRef(false);\n useLayoutEffect(() => {\n let timeout: NodeJS.Timeout;\n let onResize = () => {\n isResizing.current = true;\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n isResizing.current = false;\n }, 500);\n\n updatePosition();\n };\n\n visualViewport?.addEventListener('resize', onResize);\n\n return () => {\n visualViewport?.removeEventListener('resize', onResize);\n };\n }, [updatePosition]);\n\n let close = useCallback(() => {\n if (!isResizing.current) {\n onClose();\n }\n }, [onClose, isResizing]);\n\n // When scrolling a parent scrollable region of the trigger (other than the body),\n // we hide the popover. Otherwise, its position would be incorrect.\n useCloseOnScroll({\n triggerRef: targetRef,\n isOpen,\n onClose: onClose ? close : undefined,\n });\n\n return {\n rendered: true,\n overlayProps: {\n style: {\n position: 'absolute',\n zIndex: 100000, // should match the z-index in ModalTrigger\n ...position.position,\n maxHeight: position.maxHeight,\n },\n },\n placement: position.placement,\n arrowProps: {\n style: {\n left: position.arrowOffsetLeft,\n top: position.arrowOffsetTop,\n },\n },\n updatePosition,\n };\n}\n\nfunction useResize(onResize) {\n useLayoutEffect(() => {\n window.addEventListener('resize', onResize, false);\n return () => {\n window.removeEventListener('resize', onResize, false);\n };\n }, [onResize]);\n}\n\nfunction translateRTL(position, direction) {\n if (direction === 'rtl') {\n return position.replace('start', 'right').replace('end', 'left');\n }\n return position.replace('start', 'left').replace('end', 'right');\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 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) 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;","import { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\nimport invariant from 'invariant';\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\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 = 0;\n var currentT = 0;\n var i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (\n Math.abs(currentX) > SUBDIVISION_PRECISION &&\n ++i < SUBDIVISION_MAX_ITERATIONS\n );\n return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction bezier(mX1, mY1, mX2, mY2) {\n // Precompute samples table\n var sampleValues = float32ArraySupported\n ? new Float32Array(kSplineTableSize)\n : new Array(kSplineTableSize);\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 (\n ;\n currentSample !== lastSample && sampleValues[currentSample] <= aX;\n ++currentSample\n ) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist =\n (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\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(\n aX,\n intervalStart,\n intervalStart + kSampleStepSize,\n mX1,\n mX2\n );\n }\n }\n\n return function BezierEasing(x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x; // linear\n }\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n\nexport default class AnimatedBezier extends AnimatedNode {\n _value;\n _bezier;\n\n constructor(value, mX1, mY1, mX2, mY2) {\n invariant(\n value instanceof AnimatedNode,\n `Reanimated: Bezier node argument should be of type AnimatedNode but got ${value}`\n );\n super({ type: 'bezier', mX1, mY1, mX2, mY2, input: value }, [value]);\n this._value = value;\n this._bezier = bezier(mX1, mY1, mX2, mY2);\n }\n\n toString() {\n return `AnimatedBezier, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._bezier(val(this._value));\n }\n}\n","import {\n cond,\n lessThan,\n multiply,\n pow,\n cos,\n sqrt,\n sub,\n add,\n divide,\n} from './base';\nimport AnimatedBezier from './core/AnimatedBezier';\n\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 */\nexport default class Easing {\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 static linear(t) {\n return t;\n }\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 static ease(t) {\n return new AnimatedBezier(t, 0.42, 0, 1, 1);\n }\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 static quad(t) {\n return multiply(t, t);\n }\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 static cubic(t) {\n return multiply(t, t, t);\n }\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 static poly(n) {\n return (t) => pow(t, n);\n }\n\n /**\n * A sinusoidal function.\n *\n * http://easings.net/#easeInSine\n */\n static sin(t) {\n return sub(1, cos(multiply(t, Math.PI, 0.5)));\n }\n\n /**\n * A circular function.\n *\n * http://easings.net/#easeInCirc\n */\n static circle(t) {\n return sub(1, sqrt(sub(1, multiply(t, t))));\n }\n\n /**\n * An exponential function.\n *\n * http://easings.net/#easeInExpo\n */\n static exp(t) {\n return pow(2, multiply(10, sub(t, 1)));\n }\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 static elastic(bounciness = 1) {\n const p = bounciness * Math.PI;\n return (t) =>\n sub(\n 1,\n multiply(pow(cos(multiply(t, Math.PI, 0.5)), 3), cos(multiply(t, p)))\n );\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 static back(s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return (t) => multiply(t, t, sub(multiply(add(s, 1), t), s));\n }\n\n /**\n * Provides a simple bouncing effect.\n *\n * http://easings.net/#easeInBounce\n */\n static bounce(t) {\n const sq = (v) => multiply(7.5625, v, v);\n return cond(\n lessThan(t, 1 / 2.75),\n sq(t),\n cond(\n lessThan(t, 2 / 2.75),\n add(0.75, sq(sub(t, 1.5 / 2.75))),\n cond(\n lessThan(t, 2.5 / 2.76),\n add(0.9375, sq(sub(t, 2.25 / 2.75))),\n add(0.984375, sq(sub(t, 2.625 / 2.75)))\n )\n )\n );\n }\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 static bezier(x1, y1, x2, y2) {\n return (t) => new AnimatedBezier(t, x1, y1, x2, y2);\n }\n\n /**\n * Runs an easing function forwards.\n */\n static in(easing) {\n return easing;\n }\n\n /**\n * Runs an easing function backwards.\n */\n static out(easing) {\n return (t) => sub(1, easing(sub(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 static inOut(easing) {\n return (t) =>\n cond(\n lessThan(t, 0.5),\n divide(easing(multiply(t, 2)), 2),\n sub(1, divide(easing(multiply(sub(1, t), 2)), 2))\n );\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport type {\n ColorMode,\n StorageManager,\n IColorModeContextProps,\n} from './types';\nimport { HybridContext } from './../hybrid-overlay/Context';\nimport type { IHybridContextProps } from './../hybrid-overlay/types';\nimport { useColorScheme } from 'react-native';\n\nexport const useColorMode = (): IColorModeContextProps => {\n const {\n colorMode: colorModeContext,\n }: {\n colorMode: IColorModeContextProps;\n } = React.useContext(HybridContext);\n if (colorModeContext === undefined) {\n throw new Error('useColorMode must be used within a NativeBaseProvider');\n }\n return colorModeContext;\n};\n\nexport function useColorModeValue(light: any, dark: any) {\n const { colorMode } = useColorMode();\n return colorMode === 'dark' ? dark : light;\n}\n\nexport function useModeManager(\n initialColorMode: ColorMode,\n useSystemColorMode: boolean | undefined,\n colorModeManager?: StorageManager\n) {\n const systemColorMode = useColorScheme();\n\n if (useSystemColorMode) {\n initialColorMode = systemColorMode;\n }\n\n const [colorMode, setRawMode] = useState(initialColorMode);\n const setColorMode = React.useCallback(\n async (val: ColorMode) => {\n if (colorModeManager) {\n await colorModeManager.set(val);\n }\n setRawMode(val);\n },\n [colorModeManager]\n );\n\n // For initial setting initial color mode from storage\n useEffect(() => {\n if (colorModeManager) {\n (async function getMode() {\n let value = await colorModeManager.get(initialColorMode);\n if (value && value !== colorMode) {\n setRawMode(value);\n }\n })();\n }\n }, [colorMode, initialColorMode, colorModeManager]);\n\n // Set system color mode only when user has not passed a colorModeManager\n useEffect(() => {\n if (!colorModeManager && useSystemColorMode) {\n setRawMode(systemColorMode);\n }\n }, [systemColorMode, colorModeManager, useSystemColorMode, setRawMode]);\n\n return { colorMode, setColorMode };\n}\n\nexport function useAccessibleColors(): [\n boolean,\n (val: boolean) => void,\n () => void\n] {\n const {\n colorMode: colorModeContext,\n }: {\n colorMode: IColorModeContextProps;\n } = React.useContext(HybridContext);\n const toggleAccessibleColors = () =>\n colorModeContext.setAccessibleColors(!colorModeContext.accessibleColors);\n return [\n colorModeContext.accessibleColors,\n colorModeContext.setAccessibleColors,\n toggleAccessibleColors,\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 */\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;","/**\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;","import ReanimatedModule from './ReanimatedModule';\nimport { NativeEventEmitter } from 'react-native';\nexport default new NativeEventEmitter(ReanimatedModule);\n","/* 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;","import { useTheme } from './useTheme';\nimport get from 'lodash.get';\n\nexport function useToken(\n property: string,\n token: T | T[],\n fallback?: T | T[]\n) {\n const theme = useTheme();\n if (Array.isArray(token)) {\n let fallbackArr: T[] = [];\n if (fallback) {\n fallbackArr = Array.isArray(fallback) ? fallback : [fallback];\n }\n return token.map((innerToken, index) => {\n const path = `${property}.${innerToken}`;\n return get(theme, path, fallbackArr[index] ?? innerToken);\n });\n }\n\n const path = `${property}.${token}`;\n return get(theme, path, fallback ?? token);\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) 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}","const pick = (obj, ...keys) =>\n keys\n .flat()\n .filter(key => Object.prototype.hasOwnProperty.call(obj, key))\n .reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n\nconst omit = (obj, ...keysToOmit) => {\n const keysToOmitSet = new Set(keysToOmit.flat());\n return Object.getOwnPropertyNames(obj)\n .filter(key => !keysToOmitSet.has(key))\n .reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n};\n\nmodule.exports = { pick, omit };\n","/*\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","/** @license React v17.0.2\n * react-jsx-runtime.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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","/** @license React v17.0.2\n * react-jsx-runtime.development.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';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie.
\n // or
). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n //
, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentName(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\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 NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (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","import { useContext, createContext } from 'react'\nimport invariant from 'invariant'\n\nconst MapContext = createContext(null)\n\nexport function useGoogleMap(): google.maps.Map | null {\n invariant(!!useContext, 'useGoogleMap is React hook and requires React version 16.8+')\n\n const map = useContext(MapContext)\n\n invariant(!!map, 'useGoogleMap needs a GoogleMap available up in the tree')\n\n return map\n}\n\nexport default MapContext\n","/* global google */\n/* eslint-disable filenames/match-regex */\nimport { reduce } from './reduce'\nimport { forEach } from './foreach'\n\nexport function applyUpdaterToNextProps (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updaterMap: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n prevProps: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nextProps: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instance: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const map: any = {}\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const iter = (fn: any, key: string): void => {\n const nextValue = nextProps[key]\n\n if (nextValue !== prevProps[key]) {\n map[key] = nextValue\n fn(instance, nextValue)\n }\n }\n\n forEach(updaterMap, iter)\n\n return map\n}\n\nexport function registerEvents(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instance: any,\n eventMap: Record\n): google.maps.MapsEventListener[] {\n const registeredList = reduce(\n eventMap,\n function reducer(\n acc: google.maps.MapsEventListener[],\n googleEventName: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onEventName: any\n ): google.maps.MapsEventListener[] {\n if (typeof props[onEventName] === 'function') {\n acc.push(google.maps.event.addListener(instance, googleEventName, props[onEventName]))\n }\n\n return acc\n },\n []\n )\n\n return registeredList\n}\n\nfunction unregisterEvent(registered: google.maps.MapsEventListener): void {\n google.maps.event.removeListener(registered)\n}\n\nexport function unregisterEvents(events: google.maps.MapsEventListener[] = []): void {\n events.forEach(unregisterEvent)\n}\n\nexport function applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps,\n instance,\n}: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n updaterMap: any\n eventMap: Record\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n prevProps: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nextProps: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instance: any\n}): google.maps.MapsEventListener[] {\n const registeredEvents = registerEvents(nextProps, instance, eventMap)\n\n applyUpdaterToNextProps(updaterMap, prevProps, nextProps, instance)\n\n return registeredEvents\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forEach(obj: any, fn: any): any {\n Object.keys(obj).forEach((key) => {\n return fn(obj[key], key)\n })\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function reduce(obj: any, fn: any, acc: any): any {\n return Object.keys(obj).reduce(function reducer(newAcc, key) {\n return fn(newAcc, obj[key], key)\n }, acc)\n}\n","import * as React from 'react'\nimport { CSSProperties, PureComponent, ReactNode } from 'react'\n\nimport MapContext from './map-context'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from './utils/helper'\n\nconst eventMap = {\n onDblClick: 'dblclick',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMapTypeIdChanged: 'maptypeid_changed',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseDown: 'mousedown',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n onTilesLoaded: 'tilesloaded',\n onBoundsChanged: 'bounds_changed',\n onCenterChanged: 'center_changed',\n onClick: 'click',\n onDrag: 'drag',\n onHeadingChanged: 'heading_changed',\n onIdle: 'idle',\n onProjectionChanged: 'projection_changed',\n onResize: 'resize',\n onTiltChanged: 'tilt_changed',\n onZoomChanged: 'zoom_changed',\n}\n\nconst updaterMap = {\n extraMapTypes(map: google.maps.Map, extra: google.maps.MapType[]): void {\n extra.forEach(function forEachExtra(it, i) {\n map.mapTypes.set(String(i), it)\n })\n },\n center(map: google.maps.Map, center: google.maps.LatLng | google.maps.LatLngLiteral): void {\n map.setCenter(center)\n },\n clickableIcons(map: google.maps.Map, clickable: boolean): void {\n map.setClickableIcons(clickable)\n },\n heading(map: google.maps.Map, heading: number): void {\n map.setHeading(heading)\n },\n mapTypeId(map: google.maps.Map, mapTypeId: string): void {\n map.setMapTypeId(mapTypeId)\n },\n options(map: google.maps.Map, options: google.maps.MapOptions): void {\n map.setOptions(options)\n },\n streetView(map: google.maps.Map, streetView: google.maps.StreetViewPanorama): void {\n map.setStreetView(streetView)\n },\n tilt(map: google.maps.Map, tilt: number): void {\n map.setTilt(tilt)\n },\n zoom(map: google.maps.Map, zoom: number): void {\n map.setZoom(zoom)\n },\n}\n\ninterface GoogleMapState {\n map: google.maps.Map | null\n}\n\nexport interface GoogleMapProps {\n children?: ReactNode | undefined\n id?: string | undefined\n mapContainerStyle?: CSSProperties | undefined\n mapContainerClassName?: string | undefined\n options?: google.maps.MapOptions | undefined\n /** Additional map types to overlay. Overlay map types will display on top of the base map they are attached to, in the order in which they appear in the overlayMapTypes array (overlays with higher index values are displayed in front of overlays with lower index values). */\n extraMapTypes?: google.maps.MapType[] | undefined\n /** The initial Map center. */\n center?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n /** When false, map icons are not clickable. A map icon represents a point of interest, also known as a POI. By default map icons are clickable. */\n clickableIcons?: boolean | undefined\n /** The heading for aerial imagery in degrees measured clockwise from cardinal direction North. Headings are snapped to the nearest available angle for which imagery is available. */\n heading?: number | undefined\n /** The initial Map mapTypeId. Defaults to ROADMAP. */\n mapTypeId?: string | undefined\n /** A StreetViewPanorama to display when the Street View pegman is dropped on the map. If no panorama is specified, a default StreetViewPanorama will be displayed in the map's div when the pegman is dropped. */\n streetView?: google.maps.StreetViewPanorama | undefined\n /** Controls the automatic switching behavior for the angle of incidence of the map. The only allowed values are 0 and 45. The value 0 causes the map to always use a 0° overhead view regardless of the zoom level and viewport. The value 45 causes the tilt angle to automatically switch to 45 whenever 45° imagery is available for the current zoom level and viewport, and switch back to 0 whenever 45° imagery is not available (this is the default behavior). 45° imagery is only available for satellite and hybrid map types, within some locations, and at some zoom levels. Note: getTilt returns the current tilt angle, not the value specified by this option. Because getTilt and this option refer to different things, do not bind() the tilt property; doing so may yield unpredictable effects. */\n tilt?: number | undefined\n /** The initial Map zoom level. Required. Valid values: Integers between zero, and up to the supported maximum zoom level. */\n zoom?: number | undefined\n /** This event is fired when the user clicks on the map. An ApiMouseEvent with properties for the clicked location is returned unless a place icon was clicked, in which case an IconMouseEvent with a placeId is returned. IconMouseEvent and ApiMouseEvent are identical, except that IconMouseEvent has the placeId field. The event can always be treated as an ApiMouseEvent when the placeId is not important. The click event is not fired if a Marker or InfoWindow was clicked. */\n onClick?:( (e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user double-clicks on the map. Note that the click event will also fire, right before this one. */\n onDblClick?:( (e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is repeatedly fired while the user drags the map. */\n onDrag?:( () => void) | undefined\n /** This event is fired when the user stops dragging the map. */\n onDragEnd?:( () => void) | undefined\n /** This event is fired when the user starts dragging the map. */\n onDragStart?:( () => void) | undefined\n /** This event is fired when the mapTypeId property changes. */\n onMapTypeIdChanged?:( () => void) | undefined\n /** This event is fired whenever the user's mouse moves over the map container. */\n onMouseMove?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user's mouse exits the map container. */\n onMouseOut?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user's mouse enters the map container. */\n onMouseOver?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousedown event is fired on the map container. */\n onMouseDown?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mouseup event is fired on the map container. */\n onMouseUp?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM contextmenu event is fired on the map container. */\n onRightClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the visible tiles have finished loading. */\n onTilesLoaded?: (() => void) | undefined\n /** This event is fired when the viewport bounds have changed. */\n onBoundsChanged?: (() => void) | undefined\n /** This event is fired when the map center property changes. */\n onCenterChanged?: (() => void) | undefined\n /** This event is fired when the map heading property changes. */\n onHeadingChanged?: (() => void) | undefined\n /** This event is fired when the map becomes idle after panning or zooming. */\n onIdle?: (() => void) | undefined\n /** This event is fired when the projection has changed. */\n onProjectionChanged?: (() => void) | undefined\n /** This event is fired when the map size has changed. */\n onResize?: (() => void) | undefined\n /** This event is fired when the map tilt property changes. */\n onTiltChanged?: (() => void) | undefined\n /** This event is fired when the map zoom property changes. */\n onZoomChanged?: (() => void) | undefined\n /** This callback is called when the map instance has loaded. It is called with the map instance. */\n onLoad?: ((map: google.maps.Map) => void | Promise) | undefined\n /** This callback is called when the component unmounts. It is called with the map instance. */\n onUnmount?: ((map: google.maps.Map) => void | Promise) | undefined\n}\n\n// function GoogleMapFunctional({ children, options, id, mapContainerStyle, center, clickableIcons, extraMapTypes, heading, mapContainerClassName, mapTypeId, onBoundsChanged, onCenterChanged, onClick, onDblClick, onDrag, onDragEnd, onDragStart, onHeadingChanged, onIdle, onProjectionChanged, onResize, onTiltChanged, onLoad }: GoogleMapProps): JSX.Element {\n// const [map, setMap] = useState(null)\n// const ref = useRef(null)\n\n// const getInstance = useCallback(() => {\n// if (ref.current === null) {\n// return null\n// }\n\n// return new google.maps.Map(ref.current, options)\n// }, [options])\n\n// useEffect(() => {\n\n// }, [])\n\n// const panTo = useCallback((latLng: google.maps.LatLng | google.maps.LatLngLiteral): void => {\n// const map = getInstance()\n// if (map) {\n// map.panTo(latLng)\n// }\n// }, [])\n\n// useEffect(() => {\n// const map = getInstance()\n\n\n\n// }, [])\n\n// return (\n// \n// \n// {map !== null ? children : <>}\n// \n//
\n// )\n// }\n\nexport class GoogleMap extends PureComponent {\n state: GoogleMapState = {\n map: null,\n }\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n mapRef: HTMLDivElement | null = null\n\n getInstance = (): google.maps.Map | null => {\n if (this.mapRef === null) {\n return null\n }\n\n return new google.maps.Map(this.mapRef, this.props.options)\n }\n\n panTo = (latLng: google.maps.LatLng | google.maps.LatLngLiteral): void => {\n const map = this.getInstance()\n if (map) {\n map.panTo(latLng)\n }\n }\n\n setMapCallback = (): void => {\n if (this.state.map !== null) {\n if (this.props.onLoad) {\n this.props.onLoad(this.state.map)\n }\n }\n }\n\n componentDidMount(): void {\n const map = this.getInstance()\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: map,\n })\n\n this.setState(function setMap() {\n return {\n map,\n }\n }, this.setMapCallback)\n }\n\n componentDidUpdate(prevProps: GoogleMapProps): void {\n if (this.state.map !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.map,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.map !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.map)\n }\n\n unregisterEvents(this.registeredEvents)\n }\n }\n\n getRef: React.LegacyRef = (ref: HTMLDivElement | null): void => {\n this.mapRef = ref\n }\n\n render(): ReactNode {\n return (\n \n \n {this.state.map !== null ? this.props.children : <>}\n \n
\n )\n }\n}\n\nexport default GoogleMap\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export const isBrowser: boolean = typeof document !== 'undefined'\n","import { isBrowser } from './isbrowser'\n\ninterface WindowWithGoogleMap extends Window {\n initMap?: (() => void) | undefined\n}\n\ninterface InjectScriptArg {\n url: string\n id: string\n nonce?: string | undefined\n}\n\nexport function injectScript({ url, id, nonce }: InjectScriptArg): Promise {\n if (!isBrowser) {\n return Promise.reject(new Error('document is undefined'))\n }\n\n return new Promise(function injectScriptCallback(resolve, reject) {\n const existingScript = document.getElementById(id) as HTMLScriptElement | undefined\n\n const windowWithGoogleMap: WindowWithGoogleMap = window\n\n if (existingScript) {\n // Same script id/url: keep same script\n const dataStateAttribute = existingScript.getAttribute('data-state')\n\n if (existingScript.src === url && dataStateAttribute !== 'error') {\n if (dataStateAttribute === 'ready') {\n return resolve(id)\n } else {\n const originalInitMap = windowWithGoogleMap.initMap\n\n const originalErrorCallback = existingScript.onerror\n\n windowWithGoogleMap.initMap = function initMap(): void {\n if (originalInitMap) {\n originalInitMap()\n }\n resolve(id)\n }\n\n existingScript.onerror = function(err): void {\n if (originalErrorCallback) {\n originalErrorCallback(err)\n }\n reject(err)\n }\n\n return\n }\n }\n // Same script id, but either\n // 1. requested URL is different\n // 2. script failed to load\n else {\n existingScript.remove()\n }\n }\n\n const script = document.createElement('script')\n\n script.type = 'text/javascript'\n script.src = url\n script.id = id\n script.async = true\n script.nonce = nonce\n script.onerror = function onerror(err): void {\n script.setAttribute('data-state', 'error')\n\n reject(err)\n }\n\n windowWithGoogleMap.initMap = function onload(): void {\n script.setAttribute('data-state', 'ready')\n\n resolve(id)\n }\n\n document.head.appendChild(script)\n }).catch(err => {\n console.error('injectScript error: ', err)\n\n throw err\n })\n}\n","function isRobotoStyle(element: HTMLElement): boolean {\n // roboto font download\n if (\n (element as HTMLLinkElement).href &&\n (element as HTMLLinkElement).href.indexOf('https://fonts.googleapis.com/css?family=Roboto') ===\n 0\n ) {\n return true\n }\n // roboto style elements\n if (\n element.tagName.toLowerCase() === 'style' &&\n // @ts-ignore\n element.styleSheet &&\n // @ts-ignore\n element.styleSheet.cssText &&\n // @ts-ignore\n element.styleSheet.cssText.replace('\\r\\n', '').indexOf('.gm-style') === 0\n ) {\n // @ts-ignore\n element.styleSheet.cssText = ''\n return true\n }\n // roboto style elements for other browsers\n if (\n element.tagName.toLowerCase() === 'style' &&\n element.innerHTML &&\n element.innerHTML.replace('\\r\\n', '').indexOf('.gm-style') === 0\n ) {\n element.innerHTML = ''\n return true\n }\n // when google tries to add empty style\n if (\n element.tagName.toLowerCase() === 'style' &&\n // @ts-ignore\n !element.styleSheet &&\n !element.innerHTML\n ) {\n return true\n }\n\n return false\n}\n\n// Preventing the Google Maps library from downloading an extra font\nexport function preventGoogleFonts (): void {\n // we override these methods only for one particular head element\n // default methods for other elements are not affected\n const head = document.getElementsByTagName('head')[0]\n\n const trueInsertBefore = head.insertBefore.bind(head)\n\n // TODO: adding return before reflect solves the TS issue\n // @ts-ignore\n head.insertBefore = function insertBefore(\n newElement: HTMLElement,\n referenceElement: HTMLElement\n ): void {\n if (!isRobotoStyle(newElement)) {\n Reflect.apply(trueInsertBefore, head, [newElement, referenceElement])\n }\n }\n\n const trueAppend = head.appendChild.bind(head)\n\n // TODO: adding return before reflect solves the TS issue\n // @ts-ignore\n head.appendChild = function appendChild(textNode: HTMLElement): void {\n if (!isRobotoStyle(textNode)) {\n Reflect.apply(trueAppend, head, [textNode])\n }\n }\n}\n","import invariant from 'invariant'\n\nexport type Libraries = (\"drawing\" | \"geometry\" | \"localContext\" | \"places\" | \"visualization\")[]\n\nexport interface LoadScriptUrlOptions {\n googleMapsApiKey: string | \"\"\n googleMapsClientId?: string | undefined\n version?: string | undefined\n language?: string | undefined\n region?: string | undefined\n libraries?: Libraries | undefined\n channel?: string | undefined\n mapIds?: string[] | undefined\n}\n\nexport function makeLoadScriptUrl({\n googleMapsApiKey,\n googleMapsClientId,\n version = 'weekly',\n language,\n region,\n libraries,\n channel,\n mapIds\n}: LoadScriptUrlOptions): string {\n const params = []\n\n invariant(\n (googleMapsApiKey && googleMapsClientId) || !(googleMapsApiKey && googleMapsClientId),\n 'You need to specify either googleMapsApiKey or googleMapsClientId for @react-google-maps/api load script to work. You cannot use both at the same time.'\n )\n\n if (googleMapsApiKey) {\n params.push(`key=${googleMapsApiKey}`)\n } else if (googleMapsClientId) {\n params.push(`client=${googleMapsClientId}`)\n }\n\n if (version) {\n params.push(`v=${version}`)\n }\n\n if (language) {\n params.push(`language=${language}`)\n }\n\n if (region) {\n params.push(`region=${region}`)\n }\n\n if (libraries && libraries.length) {\n params.push(`libraries=${libraries.sort().join(',')}`)\n }\n\n if (channel) {\n params.push(`channel=${channel}`)\n }\n\n if (mapIds && mapIds.length) {\n params.push(`map_ids=${mapIds.join(',')}`)\n }\n\n params.push('callback=initMap')\n\n return `https://maps.googleapis.com/maps/api/js?${params.join('&')}`\n}\n","import { createRef, PureComponent, type ReactNode, type RefObject } from 'react'\nimport invariant from 'invariant'\n\nimport { injectScript } from './utils/injectscript'\nimport { preventGoogleFonts } from './utils/prevent-google-fonts'\n\nimport { isBrowser } from './utils/isbrowser'\nimport { LoadScriptUrlOptions, makeLoadScriptUrl } from './utils/make-load-script-url'\n\nlet cleaningUp = false\n\ninterface LoadScriptState {\n loaded: boolean\n}\n\nexport interface LoadScriptProps extends LoadScriptUrlOptions {\n id: string\n nonce?: string | undefined\n loadingElement?: ReactNode\n onLoad?: () => void\n onError?: (error: Error) => void\n onUnmount?: () => void\n preventGoogleFontsLoading?: boolean\n}\n\nexport function DefaultLoadingElement(): JSX.Element {\n return
{`Loading...`}
\n}\n\nexport const defaultLoadScriptProps = {\n id: 'script-loader',\n version: 'weekly',\n}\n\nclass LoadScript extends PureComponent {\n public static defaultProps = defaultLoadScriptProps\n\n check: RefObject = createRef()\n\n state = {\n loaded: false,\n }\n\n cleanupCallback = (): void => {\n // @ts-ignore\n delete window.google.maps\n\n this.injectScript()\n }\n\n componentDidMount(): void {\n if (isBrowser) {\n if (window.google && window.google.maps && !cleaningUp) {\n console.error('google api is already presented')\n\n return\n }\n\n this.isCleaningUp()\n .then(this.injectScript)\n .catch(function error(err) {\n console.error('Error at injecting script after cleaning up: ', err)\n })\n }\n }\n\n componentDidUpdate(prevProps: LoadScriptProps): void {\n if (this.props.libraries !== prevProps.libraries) {\n console.warn(\n 'Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables'\n )\n }\n\n if (isBrowser && prevProps.language !== this.props.language) {\n this.cleanup()\n // TODO: refactor to use gDSFP maybe... wait for hooks refactoring.\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(function setLoaded() {\n return {\n loaded: false,\n }\n }, this.cleanupCallback)\n }\n }\n\n componentWillUnmount(): void {\n if (isBrowser) {\n this.cleanup()\n\n const timeoutCallback = (): void => {\n if (!this.check.current) {\n // @ts-ignore\n delete window.google\n cleaningUp = false\n }\n }\n\n window.setTimeout(timeoutCallback, 1)\n\n if (this.props.onUnmount) {\n this.props.onUnmount()\n }\n }\n }\n\n isCleaningUp = async (): Promise => {\n function promiseCallback(resolve: () => void): void {\n if (!cleaningUp) {\n resolve()\n } else {\n if (isBrowser) {\n const timer = window.setInterval(function interval() {\n if (!cleaningUp) {\n window.clearInterval(timer)\n\n resolve()\n }\n }, 1)\n }\n }\n\n return\n }\n\n return new Promise(promiseCallback)\n }\n\n cleanup = (): void => {\n cleaningUp = true\n const script = document.getElementById(this.props.id)\n\n if (script && script.parentNode) {\n script.parentNode.removeChild(script)\n }\n\n Array.prototype.slice\n .call(document.getElementsByTagName('script'))\n .filter(function filter(script: HTMLScriptElement): boolean {\n return typeof script.src === 'string' && script.src.includes('maps.googleapis')\n })\n .forEach(function forEach(script: HTMLScriptElement): void {\n if (script.parentNode) {\n script.parentNode.removeChild(script)\n }\n })\n\n Array.prototype.slice\n .call(document.getElementsByTagName('link'))\n .filter(function filter(link: HTMLLinkElement): boolean {\n return (\n link.href === 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Google+Sans'\n )\n })\n .forEach(function forEach(link: HTMLLinkElement) {\n if (link.parentNode) {\n link.parentNode.removeChild(link)\n }\n })\n\n Array.prototype.slice\n .call(document.getElementsByTagName('style'))\n .filter(function filter(style: HTMLStyleElement): boolean {\n return (\n style.innerText !== undefined &&\n style.innerText.length > 0 &&\n style.innerText.includes('.gm-')\n )\n })\n .forEach(function forEach(style: HTMLStyleElement) {\n if (style.parentNode) {\n style.parentNode.removeChild(style)\n }\n })\n }\n\n injectScript = (): void => {\n if (this.props.preventGoogleFontsLoading) {\n preventGoogleFonts()\n }\n\n invariant(!!this.props.id, 'LoadScript requires \"id\" prop to be a string: %s', this.props.id)\n\n const injectScriptOptions = {\n id: this.props.id,\n nonce: this.props.nonce,\n url: makeLoadScriptUrl(this.props),\n }\n\n injectScript(injectScriptOptions)\n .then(() => {\n if (this.props.onLoad) {\n this.props.onLoad()\n }\n\n this.setState(function setLoaded() {\n return {\n loaded: true,\n }\n })\n\n return\n })\n .catch(err => {\n if (this.props.onError) {\n this.props.onError(err)\n }\n\n console.error(`\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (${this\n .props.googleMapsApiKey || '-'}) or Client ID (${this.props.googleMapsClientId ||\n '-'}) to \n Otherwise it is a Network issue.\n `)\n })\n }\n\n render(): ReactNode {\n return (\n <>\n
\n\n {this.state.loaded\n ? this.props.children\n : this.props.loadingElement || }\n \n )\n }\n}\n\nexport default LoadScript\n","/* eslint-disable filenames/match-regex */\nimport { useEffect, useRef, useState } from 'react'\nimport invariant from 'invariant'\n\nimport { isBrowser } from './utils/isbrowser'\nimport { injectScript } from './utils/injectscript'\nimport { preventGoogleFonts } from './utils/prevent-google-fonts'\nimport { makeLoadScriptUrl, LoadScriptUrlOptions } from './utils/make-load-script-url'\n\nimport { defaultLoadScriptProps } from './LoadScript'\n\nexport interface UseLoadScriptOptions extends LoadScriptUrlOptions {\n id?: string | undefined\n nonce?: string | undefined\n preventGoogleFontsLoading?: boolean | undefined\n}\n\nlet previouslyLoadedUrl: string\n\nexport function useLoadScript({\n id = defaultLoadScriptProps.id,\n version = defaultLoadScriptProps.version,\n nonce,\n googleMapsApiKey,\n googleMapsClientId,\n language,\n region,\n libraries,\n preventGoogleFontsLoading,\n channel,\n mapIds,\n}: UseLoadScriptOptions): {\n isLoaded: boolean\n loadError: Error | undefined\n url: string\n} {\n const isMounted = useRef(false)\n const [isLoaded, setLoaded] = useState(false)\n const [loadError, setLoadError] = useState(undefined)\n\n useEffect(function trackMountedState() {\n isMounted.current = true\n return (): void => {\n isMounted.current = false\n }\n }, [])\n\n useEffect(\n function applyPreventGoogleFonts() {\n if (isBrowser && preventGoogleFontsLoading) {\n preventGoogleFonts()\n }\n },\n [preventGoogleFontsLoading]\n )\n\n useEffect(\n function validateLoadedState() {\n if (isLoaded) {\n invariant(\n !!window.google,\n 'useLoadScript was marked as loaded, but window.google is not present. Something went wrong.'\n )\n }\n },\n [isLoaded]\n )\n\n const url = makeLoadScriptUrl({\n version,\n googleMapsApiKey,\n googleMapsClientId,\n language,\n region,\n libraries,\n channel,\n mapIds\n })\n\n useEffect(\n function loadScriptAndModifyLoadedState() {\n if (!isBrowser) {\n return\n }\n\n function setLoadedIfMounted(): void {\n if (isMounted.current) {\n setLoaded(true)\n previouslyLoadedUrl = url\n }\n }\n\n if (window.google && window.google.maps && previouslyLoadedUrl === url) {\n setLoadedIfMounted()\n return\n }\n\n injectScript({ id, url, nonce })\n .then(setLoadedIfMounted)\n .catch(function handleInjectError(err) {\n if (isMounted.current) {\n setLoadError(err)\n }\n console.warn(`\n There has been an Error with loading Google Maps API script, please check that you provided correct google API key (${googleMapsApiKey ||\n '-'}) or Client ID (${googleMapsClientId || '-'})\n Otherwise it is a Network issue.\n `)\n console.error(err)\n })\n },\n [id, url, nonce]\n )\n\n const prevLibraries = useRef()\n\n useEffect(\n function checkPerformance() {\n if (prevLibraries.current && libraries !== prevLibraries.current) {\n console.warn(\n 'Performance warning! LoadScript has been reloaded unintentionally! You should not pass `libraries` prop as new array. Please keep an array of libraries as static class property for Components and PureComponents, or just a const variable outside of component, or somewhere in config files or ENV variables'\n )\n }\n prevLibraries.current = libraries\n },\n [libraries]\n )\n\n return { isLoaded, loadError, url }\n}\n","import { memo, ReactElement, useEffect } from 'react'\n\nimport { DefaultLoadingElement } from './LoadScript'\nimport { useLoadScript, UseLoadScriptOptions } from './useLoadScript'\n\nexport interface LoadScriptNextProps extends UseLoadScriptOptions {\n loadingElement?: ReactElement | undefined\n onLoad?: (() => void) | undefined\n onError?: ((error: Error) => void) | undefined\n onUnmount?: (() => void) | undefined\n children: ReactElement\n}\n\nconst defaultLoadingElement = \n\nfunction LoadScriptNext({\n loadingElement,\n onLoad,\n onError,\n onUnmount,\n children,\n ...hookOptions\n}: LoadScriptNextProps): JSX.Element {\n const { isLoaded, loadError } = useLoadScript(hookOptions)\n\n useEffect(\n function handleOnLoad() {\n if (isLoaded && typeof onLoad === 'function') {\n onLoad()\n }\n },\n [isLoaded, onLoad]\n )\n\n useEffect(\n function handleOnError() {\n if (loadError && typeof onError === 'function') {\n onError(loadError)\n }\n },\n [loadError, onError]\n )\n\n useEffect(\n function handleOnUnmount() {\n return () => {\n if (onUnmount) {\n onUnmount()\n }\n }\n },\n [onUnmount]\n )\n\n return isLoaded ? children : loadingElement || defaultLoadingElement\n}\n\nexport default memo(LoadScriptNext)\n","// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = 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\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, channel, client, id = DEFAULT_ID, libraries = [], language, region, version, mapIds, nonce, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", }) {\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.version = version;\n this.apiKey = apiKey;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.libraries = libraries;\n this.language = language;\n this.region = region;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.retries = retries;\n this.url = url;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n */\n createUrl() {\n let url = this.url;\n url += `?callback=${this.CALLBACK}`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const url = this.createUrl();\n const script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n document.head.appendChild(script);\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\nimport MapContext from '../../map-context'\n\nconst eventMap = {}\n\nconst updaterMap = {\n options(instance: google.maps.TrafficLayer, options: google.maps.TrafficLayerOptions): void {\n instance.setOptions(options)\n },\n}\n\ninterface TrafficLayerState {\n trafficLayer: google.maps.TrafficLayer | null\n}\n\nexport interface TrafficLayerProps {\n options?: google.maps.TrafficLayerOptions | undefined\n /** This callback is called when the trafficLayer instance has loaded. It is called with the trafficLayer instance. */\n onLoad?: ((trafficLayer: google.maps.TrafficLayer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the trafficLayer instance. */\n onUnmount?: ((trafficLayer: google.maps.TrafficLayer) => void) | undefined\n}\n\nexport class TrafficLayer extends PureComponent {\n static contextType = MapContext\n\n state = {\n trafficLayer: null,\n }\n\n setTrafficLayerCallback = () => {\n if (this.state.trafficLayer !== null && this.props.onLoad) {\n // @ts-ignore\n this.props.onLoad(this.state.trafficLayer)\n }\n }\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n componentDidMount(): void {\n const trafficLayer = new google.maps.TrafficLayer({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: trafficLayer,\n })\n\n this.setState(function setTrafficLayer() {\n return {\n trafficLayer,\n }\n }, this.setTrafficLayerCallback)\n }\n\n componentDidUpdate(prevProps: TrafficLayerProps): void {\n if (this.state.trafficLayer !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.trafficLayer,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.trafficLayer !== null) {\n if (this.props.onUnmount) {\n // @ts-ignore\n this.props.onUnmount(this.state.trafficLayer)\n }\n\n unregisterEvents(this.registeredEvents)\n\n // @ts-ignore\n this.state.trafficLayer.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default TrafficLayer\n","import { PureComponent } from 'react'\n\nimport MapContext from '../../map-context'\n\ninterface BicyclingLayerState {\n bicyclingLayer: google.maps.BicyclingLayer | null\n}\n\nexport interface BicyclingLayerProps {\n /** This callback is called when the bicyclingLayer instance has loaded. It is called with the bicyclingLayer instance. */\n onLoad?: ((bicyclingLayer: google.maps.BicyclingLayer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the bicyclingLayer instance. */\n onUnmount?: ((bicyclingLayer: google.maps.BicyclingLayer) => void) | undefined\n}\n\nexport class BicyclingLayer extends PureComponent {\n static contextType = MapContext\n\n state: BicyclingLayerState = {\n bicyclingLayer: null,\n }\n\n componentDidMount(): void {\n const bicyclingLayer = new google.maps.BicyclingLayer()\n\n this.setState(() => {\n return {\n bicyclingLayer,\n }\n }, this.setBicyclingLayerCallback)\n }\n\n componentWillUnmount(): void {\n if (this.state.bicyclingLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.bicyclingLayer)\n }\n\n // @ts-ignore\n this.state.bicyclingLayer.setMap(null)\n }\n }\n\n setBicyclingLayerCallback = (): void => {\n if (this.state.bicyclingLayer !== null) {\n\n this.state.bicyclingLayer.setMap(this.context)\n\n if (this.props.onLoad) {\n this.props.onLoad(this.state.bicyclingLayer)\n }\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default BicyclingLayer\n","import { PureComponent } from 'react'\n\nimport MapContext from '../../map-context'\n\ninterface TransitLayerState {\n transitLayer: google.maps.TransitLayer | null\n}\n\nexport interface TransitLayerProps {\n /** This callback is called when the transitLayer instance has loaded. It is called with the transitLayer instance. */\n onLoad?: ((transitLayer: google.maps.TransitLayer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the transitLayer instance. */\n onUnmount?: ((transitLayer: google.maps.TransitLayer) => void) | undefined\n}\n\nexport class TransitLayer extends PureComponent {\n static contextType = MapContext\n\n state = {\n transitLayer: null,\n }\n\n setTransitLayerCallback = (): void => {\n if (this.state.transitLayer !== null) {\n // TODO: how is this possibly null if we're doing a null check\n // @ts-ignore\n this.state.transitLayer.setMap(this.context)\n\n if (this.props.onLoad) {\n // @ts-ignore\n this.props.onLoad(this.state.transitLayer)\n }\n }\n }\n\n componentDidMount(): void {\n const transitLayer = new google.maps.TransitLayer()\n\n this.setState(function setTransitLayer() {\n return {\n transitLayer,\n }\n }, this.setTransitLayerCallback)\n }\n\n componentWillUnmount(): void {\n if (this.state.transitLayer !== null) {\n if (this.props.onUnmount) {\n // @ts-ignore\n this.props.onUnmount(this.state.transitLayer)\n }\n\n // @ts-ignore\n this.state.transitLayer.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default TransitLayer\n","/* globals google */\nimport { PureComponent } from 'react'\n\nimport invariant from 'invariant'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onCircleComplete: 'circlecomplete',\n onMarkerComplete: 'markercomplete',\n onOverlayComplete: 'overlaycomplete',\n onPolygonComplete: 'polygoncomplete',\n onPolylineComplete: 'polylinecomplete',\n onRectangleComplete: 'rectanglecomplete',\n}\n\nconst updaterMap = {\n drawingMode(\n instance: google.maps.drawing.DrawingManager,\n drawingMode: google.maps.drawing.OverlayType | null\n ): void {\n instance.setDrawingMode(drawingMode)\n },\n options(\n instance: google.maps.drawing.DrawingManager,\n options: google.maps.drawing.DrawingManagerOptions\n ): void {\n instance.setOptions(options)\n },\n}\n\ninterface DrawingManagerState {\n drawingManager: google.maps.drawing.DrawingManager | null\n}\n\nexport interface DrawingManagerProps {\n options?: google.maps.drawing.DrawingManagerOptions | undefined\n /** Changes the DrawingManager's drawing mode, which defines the type of overlay to be added on the map. Accepted values are 'marker', 'polygon', 'polyline', 'rectangle', 'circle', or null. A drawing mode of null means that the user can interact with the map as normal, and clicks do not draw anything. */\n drawingMode?: google.maps.drawing.OverlayType | null | undefined\n /** This event is fired when the user has finished drawing a circle. */\n onCircleComplete?: ((circle: google.maps.Circle) => void) | undefined\n /** This event is fired when the user has finished drawing a marker. */\n onMarkerComplete?: ((marker: google.maps.Marker) => void) | undefined\n /** This event is fired when the user has finished drawing an overlay of any type. */\n onOverlayComplete?: ((e: google.maps.drawing.OverlayCompleteEvent) => void) | undefined\n /** This event is fired when the user has finished drawing a polygon. */\n onPolygonComplete?: ((polygon: google.maps.Polygon) => void) | undefined\n /** This event is fired when the user has finished drawing a polyline. */\n onPolylineComplete?: ((polyline: google.maps.Polyline) => void) | undefined\n /** This event is fired when the user has finished drawing a rectangle. */\n onRectangleComplete?: ((rectangle: google.maps.Rectangle) => void) | undefined\n /** This callback is called when the drawingManager instance has loaded. It is called with the drawingManager instance. */\n onLoad?: ((drawingManager: google.maps.drawing.DrawingManager) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the drawingManager instance. */\n onUnmount?: ((drawingManager: google.maps.drawing.DrawingManager) => void) | undefined\n}\n\nexport class DrawingManager extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: DrawingManagerState = {\n drawingManager: null,\n }\n\n constructor(props: DrawingManagerProps) {\n super(props)\n\n invariant(\n !!google.maps.drawing,\n `Did you include prop libraries={['drawing']} in the URL? %s`,\n google.maps.drawing\n )\n }\n\n setDrawingManagerCallback = (): void => {\n if (this.state.drawingManager !== null && this.props.onLoad) {\n this.props.onLoad(this.state.drawingManager)\n }\n }\n\n componentDidMount(): void {\n const drawingManager = new google.maps.drawing.DrawingManager({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: drawingManager,\n })\n\n this.setState(function setDrawingManager() {\n return {\n drawingManager,\n }\n }, this.setDrawingManagerCallback)\n }\n\n componentDidUpdate(prevProps: DrawingManagerProps): void {\n if (this.state.drawingManager !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.drawingManager,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.drawingManager !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.drawingManager)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.drawingManager.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default DrawingManager\n","import { Children, cloneElement, isValidElement, PureComponent, type ReactElement, type ReactNode } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\nimport { HasMarkerAnchor } from '../../types'\n\nimport { Clusterer } from '@react-google-maps/marker-clusterer'\nimport { MarkerClusterer as GoogleClusterer} from '@googlemaps/markerclusterer'\n\nconst eventMap = {\n onAnimationChanged: 'animation_changed',\n onClick: 'click',\n onClickableChanged: 'clickable_changed',\n onCursorChanged: 'cursor_changed',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDraggableChanged: 'draggable_changed',\n onDragStart: 'dragstart',\n onFlatChanged: 'flat_changed',\n onIconChanged: 'icon_changed',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onPositionChanged: 'position_changed',\n onRightClick: 'rightclick',\n onShapeChanged: 'shape_changed',\n onTitleChanged: 'title_changed',\n onVisibleChanged: 'visible_changed',\n onZindexChanged: 'zindex_changed',\n}\n\nconst updaterMap = {\n animation(instance: google.maps.Marker, animation: google.maps.Animation): void {\n instance.setAnimation(animation)\n },\n clickable(instance: google.maps.Marker, clickable: boolean): void {\n instance.setClickable(clickable)\n },\n cursor(instance: google.maps.Marker, cursor: string): void {\n instance.setCursor(cursor)\n },\n draggable(instance: google.maps.Marker, draggable: boolean): void {\n instance.setDraggable(draggable)\n },\n icon(instance: google.maps.Marker, icon: string | google.maps.Icon | google.maps.Symbol): void {\n instance.setIcon(icon)\n },\n label(instance: google.maps.Marker, label: string | google.maps.MarkerLabel): void {\n instance.setLabel(label)\n },\n map(instance: google.maps.Marker, map: google.maps.Map): void {\n instance.setMap(map)\n },\n opacity(instance: google.maps.Marker, opacity: number): void {\n instance.setOpacity(opacity)\n },\n options(instance: google.maps.Marker, options: google.maps.MarkerOptions): void {\n instance.setOptions(options)\n },\n position(\n instance: google.maps.Marker,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ): void {\n instance.setPosition(position)\n },\n shape(instance: google.maps.Marker, shape: google.maps.MarkerShape): void {\n instance.setShape(shape)\n },\n title(instance: google.maps.Marker, title: string): void {\n instance.setTitle(title)\n },\n visible(instance: google.maps.Marker, visible: boolean): void {\n instance.setVisible(visible)\n },\n zIndex(instance: google.maps.Marker, zIndex: number): void {\n instance.setZIndex(zIndex)\n },\n}\n\nexport interface MarkerProps {\n options?: google.maps.MarkerOptions | undefined\n /** Start an animation. Any ongoing animation will be cancelled. Currently supported animations are: BOUNCE, DROP. Passing in null will cause any animation to stop. */\n animation?: google.maps.Animation | undefined\n /** If true, the marker receives mouse and touch events. Default value is true. */\n clickable?: boolean | undefined\n /** Mouse cursor to show on hover */\n cursor?: string | undefined\n /** If true, the marker can be dragged. Default value is false. */\n draggable?: boolean | undefined\n /** Icon for the foreground. If a string is provided, it is treated as though it were an Icon with the string as url. */\n icon?: string | google.maps.Icon | google.maps.Symbol | undefined\n /** Adds a label to the marker. The label can either be a string, or a MarkerLabel object. */\n label?: string | google.maps.MarkerLabel | undefined\n /** The marker's opacity between 0.0 and 1.0. */\n opacity?: number | undefined\n\n // required\n /** Marker position. */\n position: google.maps.LatLng | google.maps.LatLngLiteral\n /** Image map region definition used for drag/click. */\n shape?: google.maps.MarkerShape | undefined\n /** Rollover text */\n title?: string | undefined\n /** If true, the marker is visible */\n visible?: boolean | undefined\n /** All markers are displayed on the map in order of their zIndex, with higher values displaying in front of markers with lower values. By default, markers are displayed according to their vertical position on screen, with lower markers appearing in front of markers further up the screen. */\n zIndex?: number | undefined\n /** Render prop that handles clustering markers */\n clusterer?: Clusterer | GoogleClusterer | undefined\n /** Clusters are redrawn when a Marker is added unless noClustererRedraw? is set to true. */\n noClustererRedraw?: boolean | undefined\n /** This event is fired when the marker icon was clicked. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the marker's clickable property changes. */\n onClickableChanged?: (() => void) | undefined\n /** This event is fired when the marker's cursor property changes. */\n onCursorChanged?: (() => void) | undefined\n /** This event is fired when the marker's animation property changes. */\n onAnimationChanged?: (() => void) | undefined\n /** This event is fired when the marker icon was double clicked. */\n onDblClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is repeatedly fired while the user drags the marker. */\n onDrag?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user stops dragging the marker. */\n onDragEnd?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the marker's draggable property changes. */\n onDraggableChanged?: (() => void) | undefined\n /** This event is fired when the user starts dragging the marker. */\n onDragStart?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the marker's flat property changes. */\n onFlatChanged?: (() => void) | undefined\n /** This event is fired when the marker icon property changes. */\n onIconChanged?: (() => void) | undefined\n /** This event is fired for a mousedown on the marker. */\n onMouseDown?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the mouse leaves the area of the marker icon. */\n onMouseOut?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the mouse enters the area of the marker icon. */\n onMouseOver?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired for a mouseup on the marker. */\n onMouseUp?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the marker position property changes. */\n onPositionChanged?: (() => void) | undefined\n /** This event is fired for a rightclick on the marker. */\n onRightClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the marker's shape property changes. */\n onShapeChanged?: (() => void) | undefined\n /** This event is fired when the marker title property changes. */\n onTitleChanged?: (() => void) | undefined\n /** This event is fired when the marker's visible property changes. */\n onVisibleChanged?: (() => void) | undefined\n /** This event is fired when the marker's zIndex property changes. */\n onZindexChanged?: (() => void) | undefined\n /** This callback is called when the marker instance has loaded. It is called with the marker instance. */\n onLoad?: ((marker: google.maps.Marker) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the marker instance. */\n onUnmount?: ((marker: google.maps.Marker) => void) | undefined\n}\n\nexport class Marker extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n marker: google.maps.Marker | undefined\n\n componentDidMount(): void {\n const markerOptions = {\n ...(this.props.options || {}),\n ...(this.props.clusterer ? {} : { map: this.context }),\n position: this.props.position,\n }\n\n // Unfortunately we can't just do this in the contstructor, because the\n // `MapContext` might not be filled in yet.\n this.marker = new google.maps.Marker(markerOptions)\n\n if (this.props.clusterer) {\n this.props.clusterer.addMarker(this.marker, !!this.props.noClustererRedraw)\n } else {\n this.marker.setMap(this.context)\n }\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: this.marker,\n })\n\n if (this.props.onLoad) {\n this.props.onLoad(this.marker)\n }\n }\n\n componentDidUpdate(prevProps: MarkerProps): void {\n if (this.marker) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.marker,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.marker) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.marker)\n }\n\n unregisterEvents(this.registeredEvents)\n\n if (this.props.clusterer) {\n this.props.clusterer.removeMarker(this.marker, !!this.props.noClustererRedraw)\n } else {\n this.marker && this.marker.setMap(null)\n }\n }\n }\n\n render(): ReactNode {\n let children: ReactNode | null = null\n\n if (this.props.children) {\n children = Children.map(this.props.children, child => {\n if (!isValidElement(child)) {\n return child\n }\n\n let elementChild: ReactElement = child\n\n return cloneElement(elementChild, { anchor: this.marker })\n })\n }\n\n return children || null\n }\n}\n\nexport default Marker\n","var ClusterIcon = /** @class */ (function () {\n function ClusterIcon(cluster, styles) {\n cluster.getClusterer().extend(ClusterIcon, google.maps.OverlayView);\n this.cluster = cluster;\n this.clusterClassName = this.cluster.getClusterer().getClusterClass();\n this.className = this.clusterClassName;\n this.styles = styles;\n this.center = undefined;\n this.div = null;\n this.sums = null;\n this.visible = false;\n this.boundsChangedListener = null;\n this.url = '';\n this.height = 0;\n this.width = 0;\n this.anchorText = [0, 0];\n this.anchorIcon = [0, 0];\n this.textColor = 'black';\n this.textSize = 11;\n this.textDecoration = 'none';\n this.fontWeight = 'bold';\n this.fontStyle = 'normal';\n this.fontFamily = 'Arial,sans-serif';\n this.backgroundPosition = '0 0';\n // @ts-ignore\n this.setMap(cluster.getMap()); // Note: this causes onAdd to be called\n }\n ClusterIcon.prototype.onAdd = function () {\n var _this = this;\n var cMouseDownInCluster;\n var cDraggingMapByCluster;\n this.div = document.createElement('div');\n this.div.className = this.className;\n if (this.visible) {\n this.show();\n }\n // @ts-ignore\n this.getPanes().overlayMouseTarget.appendChild(this.div);\n // Fix for Issue 157\n this.boundsChangedListener = google.maps.event.addListener(\n // @ts-ignore\n this.getMap(), 'boundschanged', function boundsChanged() {\n cDraggingMapByCluster = cMouseDownInCluster;\n });\n google.maps.event.addDomListener(this.div, 'mousedown', function onMouseDown() {\n cMouseDownInCluster = true;\n cDraggingMapByCluster = false;\n });\n google.maps.event.addDomListener(this.div, 'click', function (event) {\n cMouseDownInCluster = false;\n if (!cDraggingMapByCluster) {\n var markerClusterer_1 = _this.cluster.getClusterer();\n /**\n * This event is fired when a cluster marker is clicked.\n * @name MarkerClusterer#click\n * @param {Cluster} c The cluster that was clicked.\n * @event\n */\n google.maps.event.trigger(markerClusterer_1, 'click', _this.cluster);\n google.maps.event.trigger(markerClusterer_1, 'clusterclick', _this.cluster); // deprecated name\n // The default click handler follows. Disable it by setting\n // the zoomOnClick property to false.\n if (markerClusterer_1.getZoomOnClick()) {\n // Zoom into the cluster.\n var maxZoom_1 = markerClusterer_1.getMaxZoom();\n var bounds_1 = _this.cluster.getBounds();\n // @ts-ignore\n markerClusterer_1.getMap().fitBounds(bounds_1);\n // There is a fix for Issue 170 here:\n setTimeout(function timeout() {\n // @ts-ignore\n markerClusterer_1.getMap().fitBounds(bounds_1);\n // Don't zoom beyond the max zoom level\n // @ts-ignore\n if (maxZoom_1 !== null && markerClusterer_1.getMap().getZoom() > maxZoom_1) {\n // @ts-ignore\n markerClusterer_1.getMap().setZoom(maxZoom_1 + 1);\n }\n }, 100);\n }\n // Prevent event propagation to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n });\n google.maps.event.addDomListener(this.div, 'mouseover', function () {\n /**\n * This event is fired when the mouse moves over a cluster marker.\n * @name MarkerClusterer#mouseover\n * @param {Cluster} c The cluster that the mouse moved over.\n * @event\n */\n google.maps.event.trigger(_this.cluster.getClusterer(), 'mouseover', _this.cluster);\n });\n google.maps.event.addDomListener(this.div, 'mouseout', function () {\n /**\n * This event is fired when the mouse moves out of a cluster marker.\n * @name MarkerClusterer#mouseout\n * @param {Cluster} c The cluster that the mouse moved out of.\n * @event\n */\n google.maps.event.trigger(_this.cluster.getClusterer(), 'mouseout', _this.cluster);\n });\n };\n ClusterIcon.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.hide();\n if (this.boundsChangedListener !== null) {\n google.maps.event.removeListener(this.boundsChangedListener);\n }\n google.maps.event.clearInstanceListeners(this.div);\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n ClusterIcon.prototype.draw = function () {\n if (this.visible && this.div !== null && this.center) {\n var _a = this.getPosFromLatLng(this.center), x = _a.x, y = _a.y;\n this.div.style.top = y + 'px';\n this.div.style.left = x + 'px';\n }\n };\n ClusterIcon.prototype.hide = function () {\n if (this.div) {\n this.div.style.display = 'none';\n }\n this.visible = false;\n };\n ClusterIcon.prototype.show = function () {\n var _a;\n if (this.div && this.center) {\n var divTitle = '';\n // NOTE: values must be specified in px units\n var bp = this.backgroundPosition.split(' ');\n var spriteH = parseInt(bp[0].replace(/^\\s+|\\s+$/g, ''), 10);\n var spriteV = parseInt(bp[1].replace(/^\\s+|\\s+$/g, ''), 10);\n var pos = this.getPosFromLatLng(this.center);\n if (this.sums === null || typeof this.sums.title === 'undefined' || this.sums.title === '') {\n divTitle = this.cluster.getClusterer().getTitle();\n }\n else {\n divTitle = this.sums.title;\n }\n this.div.style.cursor = 'pointer';\n this.div.style.position = 'absolute';\n this.div.style.top = \"\".concat(pos.y, \"px\");\n this.div.style.left = \"\".concat(pos.x, \"px\");\n this.div.style.width = \"\".concat(this.width, \"px\");\n this.div.style.height = \"\".concat(this.height, \"px\");\n var img = document.createElement('img');\n img.alt = divTitle;\n img.src = this.url;\n img.style.position = 'absolute';\n img.style.top = \"\".concat(spriteV, \"px\");\n img.style.left = \"\".concat(spriteH, \"px\");\n if (!this.cluster.getClusterer().enableRetinaIcons) {\n img.style.clip = \"rect(-\".concat(spriteV, \"px, -\").concat(spriteH + this.width, \"px, -\").concat(spriteV + this.height, \", -\").concat(spriteH, \")\");\n }\n var textElm = document.createElement('div');\n textElm.style.position = 'absolute';\n textElm.style.top = \"\".concat(this.anchorText[0], \"px\");\n textElm.style.left = \"\".concat(this.anchorText[1], \"px\");\n textElm.style.color = this.textColor;\n textElm.style.fontSize = \"\".concat(this.textSize, \"px\");\n textElm.style.fontFamily = this.fontFamily;\n textElm.style.fontWeight = this.fontWeight;\n textElm.style.fontStyle = this.fontStyle;\n textElm.style.textDecoration = this.textDecoration;\n textElm.style.textAlign = 'center';\n textElm.style.width = \"\".concat(this.width, \"px\");\n textElm.style.lineHeight = \"\".concat(this.height, \"px\");\n textElm.innerText = \"\".concat((_a = this.sums) === null || _a === void 0 ? void 0 : _a.text);\n this.div.innerHTML = '';\n this.div.appendChild(img);\n this.div.appendChild(textElm);\n this.div.title = divTitle;\n this.div.style.display = '';\n }\n this.visible = true;\n };\n ClusterIcon.prototype.useStyle = function (sums) {\n this.sums = sums;\n var styles = this.cluster.getClusterer().getStyles();\n var style = styles[Math.min(styles.length - 1, Math.max(0, sums.index - 1))];\n this.url = style.url;\n this.height = style.height;\n this.width = style.width;\n if (style.className)\n this.className = \"\".concat(this.clusterClassName, \" \").concat(style.className);\n this.anchorText = style.anchorText || [0, 0];\n this.anchorIcon = style.anchorIcon || [this.height / 2, this.width / 2];\n this.textColor = style.textColor || 'black';\n this.textSize = style.textSize || 11;\n this.textDecoration = style.textDecoration || 'none';\n this.fontWeight = style.fontWeight || 'bold';\n this.fontStyle = style.fontStyle || 'normal';\n this.fontFamily = style.fontFamily || 'Arial,sans-serif';\n this.backgroundPosition = style.backgroundPosition || '0 0';\n };\n ClusterIcon.prototype.setCenter = function (center) {\n this.center = center;\n };\n ClusterIcon.prototype.getPosFromLatLng = function (latlng) {\n // @ts-ignore\n var pos = this.getProjection().fromLatLngToDivPixel(latlng);\n pos.x -= this.anchorIcon[1];\n pos.y -= this.anchorIcon[0];\n // pos.x = pos.x\n // pos.y = pos.y\n return pos;\n };\n return ClusterIcon;\n}());\n\nvar Cluster = /** @class */ (function () {\n function Cluster(markerClusterer) {\n this.markerClusterer = markerClusterer;\n // @ts-ignore\n this.map = this.markerClusterer.getMap();\n this.gridSize = this.markerClusterer.getGridSize();\n this.minClusterSize = this.markerClusterer.getMinimumClusterSize();\n this.averageCenter = this.markerClusterer.getAverageCenter();\n this.markers = [];\n this.center = undefined;\n this.bounds = null;\n this.clusterIcon = new ClusterIcon(this, this.markerClusterer.getStyles());\n }\n Cluster.prototype.getSize = function () {\n return this.markers.length;\n };\n Cluster.prototype.getMarkers = function () {\n return this.markers;\n };\n Cluster.prototype.getCenter = function () {\n return this.center;\n };\n Cluster.prototype.getMap = function () {\n return this.map;\n };\n Cluster.prototype.getClusterer = function () {\n return this.markerClusterer;\n };\n Cluster.prototype.getBounds = function () {\n var bounds = new google.maps.LatLngBounds(this.center, this.center);\n var markers = this.getMarkers();\n for (var i = 0; i < markers.length; i++) {\n var position = markers[i].getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n return bounds;\n };\n Cluster.prototype.remove = function () {\n // @ts-ignore\n this.clusterIcon.setMap(null);\n this.markers = [];\n // @ts-ignore\n delete this.markers;\n };\n Cluster.prototype.addMarker = function (marker) {\n if (this.isMarkerAlreadyAdded(marker)) {\n return false;\n }\n if (!this.center) {\n var position = marker.getPosition();\n if (position) {\n this.center = position;\n this.calculateBounds();\n }\n }\n else {\n if (this.averageCenter) {\n var position = marker.getPosition();\n if (position) {\n var length_1 = this.markers.length + 1;\n this.center = new google.maps.LatLng((this.center.lat() * (length_1 - 1) + position.lat()) / length_1, (this.center.lng() * (length_1 - 1) + position.lng()) / length_1);\n this.calculateBounds();\n }\n }\n }\n marker.isAdded = true;\n this.markers.push(marker);\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = this.map.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n // Zoomed in past max zoom, so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n }\n else if (mCount < this.minClusterSize) {\n // Min cluster size not reached so show the marker.\n if (marker.getMap() !== this.map) {\n marker.setMap(this.map);\n }\n }\n else if (mCount === this.minClusterSize) {\n // Hide the markers that were showing.\n for (var i = 0; i < mCount; i++) {\n this.markers[i].setMap(null);\n }\n }\n else {\n marker.setMap(null);\n }\n return true;\n };\n Cluster.prototype.isMarkerInClusterBounds = function (marker) {\n if (this.bounds !== null) {\n var position = marker.getPosition();\n if (position) {\n return this.bounds.contains(position);\n }\n }\n return false;\n };\n Cluster.prototype.calculateBounds = function () {\n this.bounds = this.markerClusterer.getExtendedBounds(new google.maps.LatLngBounds(this.center, this.center));\n };\n Cluster.prototype.updateIcon = function () {\n var mCount = this.markers.length;\n var maxZoom = this.markerClusterer.getMaxZoom();\n var zoom = this.map.getZoom();\n if (maxZoom !== null && typeof zoom !== 'undefined' && zoom > maxZoom) {\n this.clusterIcon.hide();\n return;\n }\n if (mCount < this.minClusterSize) {\n // Min cluster size not yet reached.\n this.clusterIcon.hide();\n return;\n }\n if (this.center) {\n this.clusterIcon.setCenter(this.center);\n }\n this.clusterIcon.useStyle(this.markerClusterer.getCalculator()(this.markers, this.markerClusterer.getStyles().length));\n this.clusterIcon.show();\n };\n Cluster.prototype.isMarkerAlreadyAdded = function (marker) {\n if (this.markers.includes) {\n return this.markers.includes(marker);\n }\n else {\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n return true;\n }\n }\n }\n return false;\n };\n return Cluster;\n}());\n\n/* global google */\n/**\n * Supports up to 9007199254740991 (Number.MAX_SAFE_INTEGER) markers\n * which is not a problem as max array length is 4294967296 (2**32)\n */\nvar CALCULATOR = function CALCULATOR(markers, numStyles) {\n var count = markers.length;\n var numberOfDigits = count.toString().length;\n var index = Math.min(numberOfDigits, numStyles);\n return {\n text: count.toString(),\n index: index,\n title: '',\n };\n};\nvar BATCH_SIZE = 2000;\nvar BATCH_SIZE_IE = 500;\nvar IMAGE_PATH = 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m';\nvar IMAGE_EXTENSION = 'png';\nvar IMAGE_SIZES = [53, 56, 66, 78, 90];\nvar CLUSTERER_CLASS = 'cluster';\nvar Clusterer = /** @class */ (function () {\n function Clusterer(map, optMarkers, optOptions) {\n if (optMarkers === void 0) { optMarkers = []; }\n if (optOptions === void 0) { optOptions = {}; }\n this.extend(Clusterer, google.maps.OverlayView);\n this.markers = [];\n this.clusters = [];\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n this.gridSize = optOptions.gridSize || 60;\n this.minClusterSize = optOptions.minimumClusterSize || 2;\n this.maxZoom = optOptions.maxZoom || null;\n this.styles = optOptions.styles || [];\n this.title = optOptions.title || '';\n this.zoomOnClick = true;\n if (optOptions.zoomOnClick !== undefined) {\n this.zoomOnClick = optOptions.zoomOnClick;\n }\n this.averageCenter = false;\n if (optOptions.averageCenter !== undefined) {\n this.averageCenter = optOptions.averageCenter;\n }\n this.ignoreHidden = false;\n if (optOptions.ignoreHidden !== undefined) {\n this.ignoreHidden = optOptions.ignoreHidden;\n }\n this.enableRetinaIcons = false;\n if (optOptions.enableRetinaIcons !== undefined) {\n this.enableRetinaIcons = optOptions.enableRetinaIcons;\n }\n this.imagePath = optOptions.imagePath || IMAGE_PATH;\n this.imageExtension = optOptions.imageExtension || IMAGE_EXTENSION;\n this.imageSizes = optOptions.imageSizes || IMAGE_SIZES;\n this.calculator = optOptions.calculator || CALCULATOR;\n this.batchSize = optOptions.batchSize || BATCH_SIZE;\n this.batchSizeIE = optOptions.batchSizeIE || BATCH_SIZE_IE;\n this.clusterClass = optOptions.clusterClass || CLUSTERER_CLASS;\n if (navigator.userAgent.toLowerCase().indexOf('msie') !== -1) {\n // Try to avoid IE timeout when processing a huge number of markers:\n this.batchSize = this.batchSizeIE;\n }\n this.timerRefStatic = null;\n this.setupStyles();\n this.addMarkers(optMarkers, true);\n // @ts-ignore\n this.setMap(map); // Note: this causes onAdd to be called\n }\n Clusterer.prototype.onAdd = function () {\n var _this = this;\n // @ts-ignore\n this.activeMap = this.getMap();\n this.ready = true;\n this.repaint();\n // Add the map event listeners\n this.listeners = [\n google.maps.event.addListener(\n // @ts-ignore\n this.getMap(), 'zoom_changed', function () {\n _this.resetViewport(false);\n // Workaround for this Google bug: when map is at level 0 and \"-\" of\n // zoom slider is clicked, a \"zoom_changed\" event is fired even though\n // the map doesn't zoom out any further. In this situation, no \"idle\"\n // event is triggered so the cluster markers that have been removed\n // do not get redrawn. Same goes for a zoom in at maxZoom.\n if (\n // @ts-ignore\n _this.getMap().getZoom() === (_this.get('minZoom') || 0) ||\n // @ts-ignore\n _this.getMap().getZoom() === _this.get('maxZoom')) {\n google.maps.event.trigger(_this, 'idle');\n }\n }),\n google.maps.event.addListener(\n // @ts-ignore\n this.getMap(), 'idle', function () {\n _this.redraw();\n }),\n ];\n };\n Clusterer.prototype.onRemove = function () {\n // Put all the managed markers back on the map:\n for (var i = 0; i < this.markers.length; i++) {\n if (this.markers[i].getMap() !== this.activeMap) {\n this.markers[i].setMap(this.activeMap);\n }\n }\n // Remove all clusters:\n for (var i = 0; i < this.clusters.length; i++) {\n this.clusters[i].remove();\n }\n this.clusters = [];\n // Remove map event listeners:\n for (var i = 0; i < this.listeners.length; i++) {\n google.maps.event.removeListener(this.listeners[i]);\n }\n this.listeners = [];\n this.activeMap = null;\n this.ready = false;\n };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n Clusterer.prototype.draw = function () { };\n Clusterer.prototype.setupStyles = function () {\n if (this.styles.length > 0) {\n return;\n }\n for (var i = 0; i < this.imageSizes.length; i++) {\n this.styles.push({\n url: this.imagePath + (i + 1) + '.' + this.imageExtension,\n height: this.imageSizes[i],\n width: this.imageSizes[i],\n });\n }\n };\n Clusterer.prototype.fitMapToMarkers = function () {\n var markers = this.getMarkers();\n var bounds = new google.maps.LatLngBounds();\n for (var i = 0; i < markers.length; i++) {\n var position = markers[i].getPosition();\n if (position) {\n bounds.extend(position);\n }\n }\n // @ts-ignore\n this.getMap().fitBounds(bounds);\n };\n Clusterer.prototype.getGridSize = function () {\n return this.gridSize;\n };\n Clusterer.prototype.setGridSize = function (gridSize) {\n this.gridSize = gridSize;\n };\n Clusterer.prototype.getMinimumClusterSize = function () {\n return this.minClusterSize;\n };\n Clusterer.prototype.setMinimumClusterSize = function (minimumClusterSize) {\n this.minClusterSize = minimumClusterSize;\n };\n Clusterer.prototype.getMaxZoom = function () {\n return this.maxZoom;\n };\n Clusterer.prototype.setMaxZoom = function (maxZoom) {\n this.maxZoom = maxZoom;\n };\n Clusterer.prototype.getStyles = function () {\n return this.styles;\n };\n Clusterer.prototype.setStyles = function (styles) {\n this.styles = styles;\n };\n Clusterer.prototype.getTitle = function () {\n return this.title;\n };\n Clusterer.prototype.setTitle = function (title) {\n this.title = title;\n };\n Clusterer.prototype.getZoomOnClick = function () {\n return this.zoomOnClick;\n };\n Clusterer.prototype.setZoomOnClick = function (zoomOnClick) {\n this.zoomOnClick = zoomOnClick;\n };\n Clusterer.prototype.getAverageCenter = function () {\n return this.averageCenter;\n };\n Clusterer.prototype.setAverageCenter = function (averageCenter) {\n this.averageCenter = averageCenter;\n };\n Clusterer.prototype.getIgnoreHidden = function () {\n return this.ignoreHidden;\n };\n Clusterer.prototype.setIgnoreHidden = function (ignoreHidden) {\n this.ignoreHidden = ignoreHidden;\n };\n Clusterer.prototype.getEnableRetinaIcons = function () {\n return this.enableRetinaIcons;\n };\n Clusterer.prototype.setEnableRetinaIcons = function (enableRetinaIcons) {\n this.enableRetinaIcons = enableRetinaIcons;\n };\n Clusterer.prototype.getImageExtension = function () {\n return this.imageExtension;\n };\n Clusterer.prototype.setImageExtension = function (imageExtension) {\n this.imageExtension = imageExtension;\n };\n Clusterer.prototype.getImagePath = function () {\n return this.imagePath;\n };\n Clusterer.prototype.setImagePath = function (imagePath) {\n this.imagePath = imagePath;\n };\n Clusterer.prototype.getImageSizes = function () {\n return this.imageSizes;\n };\n Clusterer.prototype.setImageSizes = function (imageSizes) {\n this.imageSizes = imageSizes;\n };\n Clusterer.prototype.getCalculator = function () {\n return this.calculator;\n };\n Clusterer.prototype.setCalculator = function (calculator) {\n this.calculator = calculator;\n };\n Clusterer.prototype.getBatchSizeIE = function () {\n return this.batchSizeIE;\n };\n Clusterer.prototype.setBatchSizeIE = function (batchSizeIE) {\n this.batchSizeIE = batchSizeIE;\n };\n Clusterer.prototype.getClusterClass = function () {\n return this.clusterClass;\n };\n Clusterer.prototype.setClusterClass = function (clusterClass) {\n this.clusterClass = clusterClass;\n };\n Clusterer.prototype.getMarkers = function () {\n return this.markers;\n };\n Clusterer.prototype.getTotalMarkers = function () {\n return this.markers.length;\n };\n Clusterer.prototype.getClusters = function () {\n return this.clusters;\n };\n Clusterer.prototype.getTotalClusters = function () {\n return this.clusters.length;\n };\n Clusterer.prototype.addMarker = function (marker, optNoDraw) {\n this.pushMarkerTo(marker);\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.addMarkers = function (markers, optNoDraw) {\n for (var key in markers) {\n if (Object.prototype.hasOwnProperty.call(markers, key)) {\n this.pushMarkerTo(markers[key]);\n }\n }\n if (!optNoDraw) {\n this.redraw();\n }\n };\n Clusterer.prototype.pushMarkerTo = function (marker) {\n var _this = this;\n // If the marker is draggable add a listener so we can update the clusters on the dragend:\n if (marker.getDraggable()) {\n google.maps.event.addListener(marker, 'dragend', function () {\n if (_this.ready) {\n marker.isAdded = false;\n _this.repaint();\n }\n });\n }\n marker.isAdded = false;\n this.markers.push(marker);\n };\n Clusterer.prototype.removeMarker_ = function (marker) {\n var index = -1;\n if (this.markers.indexOf) {\n index = this.markers.indexOf(marker);\n }\n else {\n for (var i = 0; i < this.markers.length; i++) {\n if (marker === this.markers[i]) {\n index = i;\n break;\n }\n }\n }\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n return true;\n };\n Clusterer.prototype.removeMarker = function (marker, optNoDraw) {\n var removed = this.removeMarker_(marker);\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.removeMarkers = function (markers, optNoDraw) {\n var removed = false;\n for (var i = 0; i < markers.length; i++) {\n removed = removed || this.removeMarker_(markers[i]);\n }\n if (!optNoDraw && removed) {\n this.repaint();\n }\n return removed;\n };\n Clusterer.prototype.clearMarkers = function () {\n this.resetViewport(true);\n this.markers = [];\n };\n Clusterer.prototype.repaint = function () {\n var oldClusters = this.clusters.slice();\n this.clusters = [];\n this.resetViewport(false);\n this.redraw();\n // Remove the old clusters.\n // Do it in a timeout to prevent blinking effect.\n setTimeout(function timeout() {\n for (var i = 0; i < oldClusters.length; i++) {\n oldClusters[i].remove();\n }\n }, 0);\n };\n Clusterer.prototype.getExtendedBounds = function (bounds) {\n // @ts-ignore\n var projection = this.getProjection();\n // Convert the points to pixels and the extend out by the grid size.\n var trPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getNorthEast().lng()));\n trPix.x += this.gridSize;\n trPix.y -= this.gridSize;\n var blPix = projection.fromLatLngToDivPixel(\n // Turn the bounds into latlng.\n new google.maps.LatLng(bounds.getSouthWest().lat(), bounds.getSouthWest().lng()));\n blPix.x -= this.gridSize;\n blPix.y += this.gridSize;\n // Extend the bounds to contain the new bounds.\n bounds.extend(\n // Convert the pixel points back to LatLng nw\n projection.fromDivPixelToLatLng(trPix));\n bounds.extend(\n // Convert the pixel points back to LatLng sw\n projection.fromDivPixelToLatLng(blPix));\n return bounds;\n };\n Clusterer.prototype.redraw = function () {\n // Redraws all the clusters.\n this.createClusters(0);\n };\n Clusterer.prototype.resetViewport = function (optHide) {\n // Remove all the clusters\n for (var i = 0; i < this.clusters.length; i++) {\n this.clusters[i].remove();\n }\n this.clusters = [];\n // Reset the markers to not be added and to be removed from the map.\n for (var i = 0; i < this.markers.length; i++) {\n var marker = this.markers[i];\n marker.isAdded = false;\n if (optHide) {\n marker.setMap(null);\n }\n }\n };\n Clusterer.prototype.distanceBetweenPoints = function (p1, p2) {\n var R = 6371; // Radius of the Earth in km\n var dLat = ((p2.lat() - p1.lat()) * Math.PI) / 180;\n var dLon = ((p2.lng() - p1.lng()) * Math.PI) / 180;\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos((p1.lat() * Math.PI) / 180) *\n Math.cos((p2.lat() * Math.PI) / 180) *\n Math.sin(dLon / 2) *\n Math.sin(dLon / 2);\n return R * (2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)));\n };\n Clusterer.prototype.isMarkerInBounds = function (marker, bounds) {\n var position = marker.getPosition();\n if (position) {\n return bounds.contains(position);\n }\n return false;\n };\n Clusterer.prototype.addToClosestCluster = function (marker) {\n var cluster;\n var distance = 40000; // Some large number\n var clusterToAddTo = null;\n for (var i = 0; i < this.clusters.length; i++) {\n cluster = this.clusters[i];\n var center = cluster.getCenter();\n var position = marker.getPosition();\n if (center && position) {\n var d = this.distanceBetweenPoints(center, position);\n if (d < distance) {\n distance = d;\n clusterToAddTo = cluster;\n }\n }\n }\n if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n clusterToAddTo.addMarker(marker);\n }\n else {\n cluster = new Cluster(this);\n cluster.addMarker(marker);\n this.clusters.push(cluster);\n }\n };\n Clusterer.prototype.createClusters = function (iFirst) {\n var _this = this;\n if (!this.ready) {\n return;\n }\n // Cancel previous batch processing if we're working on the first batch:\n if (iFirst === 0) {\n /**\n * This event is fired when the Clusterer begins\n * clustering markers.\n * @name Clusterer#clusteringbegin\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringbegin', this);\n if (this.timerRefStatic !== null) {\n window.clearTimeout(this.timerRefStatic);\n // @ts-ignore\n delete this.timerRefStatic;\n }\n }\n // Get our current map view bounds.\n // Create a new bounds object so we don't affect the map.\n //\n // See Comments 9 & 11 on Issue 3651 relating to this workaround for a Google Maps bug:\n var mapBounds = \n // @ts-ignore\n this.getMap().getZoom() > 3\n ? new google.maps.LatLngBounds(\n // @ts-ignore\n this.getMap()\n .getBounds()\n .getSouthWest(), \n // @ts-ignore\n this.getMap()\n .getBounds()\n .getNorthEast())\n : new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472, -178.48388434375), new google.maps.LatLng(-85.08136444384544, 178.00048865625));\n var bounds = this.getExtendedBounds(mapBounds);\n var iLast = Math.min(iFirst + this.batchSize, this.markers.length);\n for (var i = iFirst; i < iLast; i++) {\n var marker = this.markers[i];\n if (!marker.isAdded && this.isMarkerInBounds(marker, bounds)) {\n if (!this.ignoreHidden || (this.ignoreHidden && marker.getVisible())) {\n this.addToClosestCluster(marker);\n }\n }\n }\n if (iLast < this.markers.length) {\n this.timerRefStatic = window.setTimeout(function () {\n _this.createClusters(iLast);\n }, 0);\n }\n else {\n this.timerRefStatic = null;\n /**\n * This event is fired when the Clusterer stops\n * clustering markers.\n * @name Clusterer#clusteringend\n * @param {Clusterer} mc The Clusterer whose markers are being clustered.\n * @event\n */\n google.maps.event.trigger(this, 'clusteringend', this);\n for (var i = 0; i < this.clusters.length; i++) {\n this.clusters[i].updateIcon();\n }\n }\n };\n Clusterer.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n // eslint-disable-next-line guard-for-in\n for (var property in object.prototype) {\n // @ts-ignore\n this.prototype[property] = object.prototype[property];\n }\n // @ts-ignore\n return this;\n }.apply(obj1, [obj2]);\n };\n return Clusterer;\n}());\n\nexport { Cluster, ClusterIcon, Clusterer };\n//# sourceMappingURL=esm.js.map\n","import { PureComponent, type ReactNode } from 'react'\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nimport {\n Clusterer,\n ClusterIconStyle,\n Cluster,\n ClustererOptions,\n TCalculator,\n} from '@react-google-maps/marker-clusterer'\n\nconst eventMap = {\n onClick: 'click',\n onClusteringBegin: 'clusteringbegin',\n onClusteringEnd: 'clusteringend',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n}\n\nconst updaterMap = {\n averageCenter(instance: Clusterer, averageCenter: boolean): void {\n instance.setAverageCenter(averageCenter)\n },\n\n batchSizeIE(instance: Clusterer, batchSizeIE: number): void {\n instance.setBatchSizeIE(batchSizeIE)\n },\n\n calculator(instance: Clusterer, calculator: any): void {\n instance.setCalculator(calculator)\n },\n\n clusterClass(instance: Clusterer, clusterClass: string): void {\n instance.setClusterClass(clusterClass)\n },\n\n enableRetinaIcons(instance: Clusterer, enableRetinaIcons: boolean): void {\n instance.setEnableRetinaIcons(enableRetinaIcons)\n },\n\n gridSize(instance: Clusterer, gridSize: number): void {\n instance.setGridSize(gridSize)\n },\n\n ignoreHidden(instance: Clusterer, ignoreHidden: boolean): void {\n instance.setIgnoreHidden(ignoreHidden)\n },\n\n imageExtension(instance: Clusterer, imageExtension: string): void {\n instance.setImageExtension(imageExtension)\n },\n\n imagePath(instance: Clusterer, imagePath: string): void {\n instance.setImagePath(imagePath)\n },\n\n imageSizes(instance: Clusterer, imageSizes: number[]): void {\n instance.setImageSizes(imageSizes)\n },\n\n maxZoom(instance: Clusterer, maxZoom: number): void {\n instance.setMaxZoom(maxZoom)\n },\n\n minimumClusterSize(instance: Clusterer, minimumClusterSize: number): void {\n instance.setMinimumClusterSize(minimumClusterSize)\n },\n\n styles(instance: Clusterer, styles: ClusterIconStyle[]): void {\n instance.setStyles(styles)\n },\n\n title(instance: Clusterer, title: string): void {\n instance.setTitle(title)\n },\n\n zoomOnClick(instance: Clusterer, zoomOnClick: boolean): void {\n instance.setZoomOnClick(zoomOnClick)\n },\n}\n\ninterface ClustererState {\n markerClusterer: Clusterer | null\n}\n\nexport interface ClustererProps {\n // required\n children: (markerClusterer: Clusterer) => ReactNode\n\n options?: ClustererOptions | undefined\n /** Whether the position of a cluster marker should be the average position of all markers in the cluster. If set to false, the cluster marker is positioned at the location of the first marker added to the cluster. The default value is false. */\n averageCenter?: boolean | undefined\n /** When Internet Explorer is being used, markers are processed in several batches with a small delay inserted between each batch in an attempt to avoid Javascript timeout errors. Set this property to the number of markers to be processed in a single batch; select as high a number as you can without causing a timeout error in the browser. This number might need to be as low as 100 if 15,000 markers are being managed, for example. The default value is MarkerClusterer.BATCH_SIZE_IE. */\n batchSizeIE?: number | undefined\n /** The function used to determine the text to be displayed on a cluster marker and the index indicating which style to use for the cluster marker. The input parameters for the function are (1) the array of markers represented by a cluster marker and (2) the number of cluster icon styles. It returns a ClusterIconInfo object. The default calculator returns a text property which is the number of markers in the cluster and an index property which is one higher than the lowest integer such that 10^i exceeds the number of markers in the cluster, or the size of the styles array, whichever is less. The styles array element used has an index of index minus 1. For example, the default calculator returns a text value of \"125\" and an index of 3 for a cluster icon representing 125 markers so the element used in the styles array is 2. A calculator may also return a title property that contains the text of the tooltip to be used for the cluster marker. If title is not defined, the tooltip is set to the value of the title property for the MarkerClusterer. The default value is MarkerClusterer.CALCULATOR. */\n calculator?: TCalculator | undefined\n /** The name of the CSS class defining general styles for the cluster markers. Use this class to define CSS styles that are not set up by the code that processes the styles array. The default value is \"cluster\". */\n clusterClass?: string | undefined\n /** Whether to allow the use of cluster icons that have sizes that are some multiple (typically double) of their actual display size. Icons such as these look better when viewed on high-resolution monitors such as Apple's Retina displays. Note: if this property is true, sprites cannot be used as cluster icons. The default value is false. */\n enableRetinaIcons?: boolean | undefined\n /** The grid size of a cluster in pixels. The grid is a square. The default value is 60. */\n gridSize?: number | undefined\n /** Whether to ignore hidden markers in clusters. You may want to set this to true to ensure that hidden markers are not included in the marker count that appears on a cluster marker (this count is the value of the text property of the result returned by the default calculator). If set to true and you change the visibility of a marker being clustered, be sure to also call MarkerClusterer.repaint(). The default value is false. */\n ignoreHidden?: boolean | undefined\n /** The extension name for the cluster icon image files (e.g., \"png\" or \"jpg\"). The default value is MarkerClusterer.IMAGE_EXTENSION. */\n imageExtension?: string | undefined\n /** The full URL of the root name of the group of image files to use for cluster icons. The complete file name is of the form imagePath.imageExtension where n is the image file number (1, 2, etc.). The default value is MarkerClusterer.IMAGE_PATH. */\n imagePath?: string | undefined\n /** An array of numbers containing the widths of the group of imagePath.imageExtension image files. (The images are assumed to be square.) The default value is MarkerClusterer.IMAGE_SIZES. */\n imageSizes?: number[] | undefined\n /** The maximum zoom level at which clustering is enabled or null if clustering is to be enabled at all zoom levels. The default value is null. */\n maxZoom?: number | undefined\n /** The minimum number of markers needed in a cluster before the markers are hidden and a cluster marker appears. The default value is 2. */\n minimumClusterSize?: number | undefined\n /** An array of ClusterIconStyle elements defining the styles of the cluster markers to be used. The element to be used to style a given cluster marker is determined by the function defined by the calculator property. The default is an array of ClusterIconStyle elements whose properties are derived from the values for imagePath, imageExtension, and imageSizes. */\n styles?: ClusterIconStyle[] | undefined\n /** The tooltip to display when the mouse moves over a cluster marker. (Alternatively, you can use a custom calculator function to specify a different tooltip for each cluster marker.) The default value is \"\". */\n title?: string | undefined\n /** Whether to zoom the map when a cluster marker is clicked. You may want to set this to false if you have installed a handler for the click event and it deals with zooming on its own. The default value is true. */\n zoomOnClick?: boolean | undefined\n /** This event is fired when a cluster marker is clicked. */\n onClick?: ((cluster: Cluster) => void) | undefined\n /** This event is fired when the MarkerClusterer begins clustering markers. */\n onClusteringBegin?: ((markerClusterer: Clusterer) => void) | undefined\n /** This event is fired when the MarkerClusterer stops clustering markers. */\n onClusteringEnd?: ((markerClusterer: Clusterer) => void) | undefined\n /** \tThis event is fired when the mouse moves over a cluster marker. */\n onMouseOver?: ((cluster: Cluster) => void | undefined)\n /** This event is fired when the mouse moves out of a cluster marker. */\n onMouseOut?: ((cluster: Cluster) => void | undefined)\n /** This callback is called when the markerClusterer instance has loaded. It is called with the markerClusterer instance. */\n onLoad?: ((markerClusterer: Clusterer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the markerClusterer instance. */\n onUnmount?: ((markerClusterer: Clusterer) => void) | undefined\n}\n\nexport class ClustererComponent extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: ClustererState = {\n markerClusterer: null,\n }\n\n setClustererCallback = (): void => {\n if (this.state.markerClusterer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.markerClusterer)\n }\n }\n\n componentDidMount(): void {\n if (this.context) {\n const markerClusterer = new Clusterer(this.context, [], this.props.options)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: markerClusterer,\n })\n\n this.setState(function setClusterer(): ClustererState {\n return {\n markerClusterer,\n }\n }, this.setClustererCallback)\n }\n }\n\n componentDidUpdate(prevProps: ClustererProps): void {\n if (this.state.markerClusterer) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.markerClusterer,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.markerClusterer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.markerClusterer)\n }\n\n unregisterEvents(this.registeredEvents)\n // @ts-ignore\n this.state.markerClusterer.setMap(null)\n }\n }\n\n render(): ReactNode {\n return this.state.markerClusterer !== null\n ? this.props.children(this.state.markerClusterer)\n : null\n }\n}\n\nexport default ClustererComponent\n","var InfoBox = /** @class */ (function () {\n function InfoBox(options) {\n if (options === void 0) { options = {}; }\n this.extend(InfoBox, google.maps.OverlayView);\n // Standard options (in common with google.maps.InfoWindow):\n this.content = options.content || '';\n this.disableAutoPan = options.disableAutoPan || false;\n this.maxWidth = options.maxWidth || 0;\n this.pixelOffset = options.pixelOffset || new google.maps.Size(0, 0);\n this.position = options.position || new google.maps.LatLng(0, 0);\n this.zIndex = options.zIndex || null;\n // Additional options (unique to InfoBox):\n this.boxClass = options.boxClass || 'infoBox';\n this.boxStyle = options.boxStyle || {};\n this.closeBoxMargin = options.closeBoxMargin || '2px';\n this.closeBoxURL = options.closeBoxURL || 'http://www.google.com/intl/en_us/mapfiles/close.gif';\n if (options.closeBoxURL === '') {\n this.closeBoxURL = '';\n }\n this.infoBoxClearance = options.infoBoxClearance || new google.maps.Size(1, 1);\n if (typeof options.visible === 'undefined') {\n if (typeof options.isHidden === 'undefined') {\n options.visible = true;\n }\n else {\n options.visible = !options.isHidden;\n }\n }\n this.isHidden = !options.visible;\n this.alignBottom = options.alignBottom || false;\n this.pane = options.pane || 'floatPane';\n this.enableEventPropagation = options.enableEventPropagation || false;\n this.div = null;\n this.closeListener = null;\n this.moveListener = null;\n this.mapListener = null;\n this.contextListener = null;\n this.eventListeners = null;\n this.fixedWidthSet = null;\n }\n InfoBox.prototype.createInfoBoxDiv = function () {\n var _this = this;\n // This handler prevents an event in the InfoBox from being passed on to the map.\n function cancelHandler(event) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n // This handler ignores the current event in the InfoBox and conditionally prevents\n // the event from being passed on to the map. It is used for the contextmenu event.\n var ignoreHandler = function (event) {\n event.returnValue = false;\n if (event.preventDefault) {\n event.preventDefault();\n }\n if (!_this.enableEventPropagation) {\n cancelHandler(event);\n }\n };\n if (!this.div) {\n this.div = document.createElement('div');\n this.setBoxStyle();\n if (typeof this.content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + this.content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(this.content);\n }\n // @ts-ignore\n var panes = this.getPanes();\n panes[this.pane].appendChild(this.div); // Add the InfoBox div to the DOM\n this.addClickHandler();\n if (this.div.style.width) {\n this.fixedWidthSet = true;\n }\n else {\n if (this.maxWidth !== 0 && this.div.offsetWidth > this.maxWidth) {\n this.div.style.width = this.maxWidth + 'px';\n this.fixedWidthSet = true;\n }\n else {\n // The following code is needed to overcome problems with MSIE\n var bw = this.getBoxWidths();\n this.div.style.width = this.div.offsetWidth - bw.left - bw.right + 'px';\n this.fixedWidthSet = false;\n }\n }\n this.panBox(this.disableAutoPan);\n if (!this.enableEventPropagation) {\n this.eventListeners = [];\n // Cancel event propagation.\n // Note: mousemove not included (to resolve Issue 152)\n var events = [\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'mouseup',\n 'click',\n 'dblclick',\n 'touchstart',\n 'touchend',\n 'touchmove',\n ];\n for (var i = 0; i < events.length; i++) {\n this.eventListeners.push(google.maps.event.addDomListener(this.div, events[i], cancelHandler));\n }\n // Workaround for Google bug that causes the cursor to change to a pointer\n // when the mouse moves over a marker underneath InfoBox.\n this.eventListeners.push(google.maps.event.addDomListener(this.div, 'mouseover', function () {\n if (_this.div) {\n _this.div.style.cursor = 'default';\n }\n }));\n }\n this.contextListener = google.maps.event.addDomListener(this.div, 'contextmenu', ignoreHandler);\n /**\n * This event is fired when the DIV containing the InfoBox's content is attached to the DOM.\n * @name InfoBox#domready\n * @event\n */\n google.maps.event.trigger(this, 'domready');\n }\n };\n InfoBox.prototype.getCloseBoxImg = function () {\n var img = '';\n if (this.closeBoxURL !== '') {\n img = '\"\"';\n\";\n }\n return img;\n };\n InfoBox.prototype.addClickHandler = function () {\n if (this.div && this.div.firstChild && this.closeBoxURL !== '') {\n var closeBox = this.div.firstChild;\n this.closeListener = google.maps.event.addDomListener(closeBox, 'click', this.getCloseClickHandler());\n }\n else {\n this.closeListener = null;\n }\n };\n InfoBox.prototype.getCloseClickHandler = function () {\n var _this = this;\n return function (event) {\n // 1.0.3 fix: Always prevent propagation of a close box click to the map:\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n /**\n * This event is fired when the InfoBox's close box is clicked.\n * @name InfoBox#closeclick\n * @event\n */\n google.maps.event.trigger(_this, 'closeclick');\n _this.close();\n };\n };\n InfoBox.prototype.panBox = function (disablePan) {\n if (this.div && !disablePan) {\n // @ts-ignore\n var map = this.getMap();\n // Only pan if attached to map, not panorama\n if (map instanceof google.maps.Map) {\n var xOffset = 0;\n var yOffset = 0;\n var bounds = map.getBounds();\n if (bounds && !bounds.contains(this.position)) {\n // Marker not in visible area of map, so set center\n // of map to the marker position first.\n map.setCenter(this.position);\n }\n var mapDiv = map.getDiv();\n // @ts-ignore\n var mapWidth = mapDiv.offsetWidth;\n // @ts-ignore\n var mapHeight = mapDiv.offsetHeight;\n var iwOffsetX = this.pixelOffset.width;\n var iwOffsetY = this.pixelOffset.height;\n var iwWidth = this.div.offsetWidth;\n var iwHeight = this.div.offsetHeight;\n var padX = this.infoBoxClearance.width;\n var padY = this.infoBoxClearance.height;\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToContainerPixel(this.position);\n if (pixPosition !== null) {\n if (pixPosition.x < -iwOffsetX + padX) {\n xOffset = pixPosition.x + iwOffsetX - padX;\n }\n else if (pixPosition.x + iwWidth + iwOffsetX + padX > mapWidth) {\n xOffset = pixPosition.x + iwWidth + iwOffsetX + padX - mapWidth;\n }\n if (this.alignBottom) {\n if (pixPosition.y < -iwOffsetY + padY + iwHeight) {\n yOffset = pixPosition.y + iwOffsetY - padY - iwHeight;\n }\n else if (pixPosition.y + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwOffsetY + padY - mapHeight;\n }\n }\n else {\n if (pixPosition.y < -iwOffsetY + padY) {\n yOffset = pixPosition.y + iwOffsetY - padY;\n }\n else if (pixPosition.y + iwHeight + iwOffsetY + padY > mapHeight) {\n yOffset = pixPosition.y + iwHeight + iwOffsetY + padY - mapHeight;\n }\n }\n }\n if (!(xOffset === 0 && yOffset === 0)) {\n // Move the map to the shifted center.\n map.panBy(xOffset, yOffset);\n }\n }\n }\n };\n InfoBox.prototype.setBoxStyle = function () {\n if (this.div) {\n // Apply style values from the style sheet defined in the boxClass parameter:\n this.div.className = this.boxClass;\n // Clear existing inline style values:\n this.div.style.cssText = '';\n // Apply style values defined in the boxStyle parameter:\n var boxStyle = this.boxStyle;\n for (var i in boxStyle) {\n if (boxStyle.hasOwnProperty(i)) {\n // @ts-ignore\n this.div.style[i] = boxStyle[i];\n }\n }\n // Fix for iOS disappearing InfoBox problem\n // See http://stackoverflow.com/questions/9229535/google-maps-markers-disappear-at-certain-zoom-level-only-on-iphone-ipad\n this.div.style.webkitTransform = 'translateZ(0)';\n // Fix up opacity style for benefit of MSIE\n if (typeof this.div.style.opacity !== 'undefined' && this.div.style.opacity !== '') {\n // See http://www.quirksmode.org/css/opacity.html\n var opacity = parseFloat(this.div.style.opacity || '');\n // @ts-ignore\n this.div.style.msFilter =\n '\"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')\"';\n this.div.style.filter = 'alpha(opacity=' + opacity * 100 + ')';\n }\n // Apply required styles\n this.div.style.position = 'absolute';\n this.div.style.visibility = 'hidden';\n if (this.zIndex !== null) {\n this.div.style.zIndex = this.zIndex + '';\n }\n if (!this.div.style.overflow) {\n this.div.style.overflow = 'auto';\n }\n }\n };\n InfoBox.prototype.getBoxWidths = function () {\n var bw = { top: 0, bottom: 0, left: 0, right: 0 };\n if (!this.div) {\n return bw;\n }\n if (document.defaultView) {\n var ownerDocument = this.div.ownerDocument;\n var computedStyle = ownerDocument && ownerDocument.defaultView\n ? ownerDocument.defaultView.getComputedStyle(this.div, '')\n : null;\n if (computedStyle) {\n // The computed styles are always in pixel units (good!)\n bw.top = parseInt(computedStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(computedStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(computedStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(computedStyle.borderRightWidth || '', 10) || 0;\n }\n }\n else if (\n // @ts-ignore\n document.documentElement.currentStyle // MSIE\n ) {\n // @ts-ignore\n var currentStyle = this.div.currentStyle;\n if (currentStyle) {\n // The current styles may not be in pixel units, but assume they are (bad!)\n bw.top = parseInt(currentStyle.borderTopWidth || '', 10) || 0;\n bw.bottom = parseInt(currentStyle.borderBottomWidth || '', 10) || 0;\n bw.left = parseInt(currentStyle.borderLeftWidth || '', 10) || 0;\n bw.right = parseInt(currentStyle.borderRightWidth || '', 10) || 0;\n }\n }\n return bw;\n };\n InfoBox.prototype.onRemove = function () {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n };\n InfoBox.prototype.draw = function () {\n this.createInfoBoxDiv();\n if (this.div) {\n // @ts-ignore\n var projection = this.getProjection();\n var pixPosition = projection.fromLatLngToDivPixel(this.position);\n if (pixPosition !== null) {\n this.div.style.left = pixPosition.x + this.pixelOffset.width + 'px';\n if (this.alignBottom) {\n this.div.style.bottom = -(pixPosition.y + this.pixelOffset.height) + 'px';\n }\n else {\n this.div.style.top = pixPosition.y + this.pixelOffset.height + 'px';\n }\n }\n if (this.isHidden) {\n this.div.style.visibility = 'hidden';\n }\n else {\n this.div.style.visibility = 'visible';\n }\n }\n };\n InfoBox.prototype.setOptions = function (options) {\n if (options === void 0) { options = {}; }\n if (typeof options.boxClass !== 'undefined') {\n // Must be first\n this.boxClass = options.boxClass;\n this.setBoxStyle();\n }\n if (typeof options.boxStyle !== 'undefined') {\n // Must be second\n this.boxStyle = options.boxStyle;\n this.setBoxStyle();\n }\n if (typeof options.content !== 'undefined') {\n this.setContent(options.content);\n }\n if (typeof options.disableAutoPan !== 'undefined') {\n this.disableAutoPan = options.disableAutoPan;\n }\n if (typeof options.maxWidth !== 'undefined') {\n this.maxWidth = options.maxWidth;\n }\n if (typeof options.pixelOffset !== 'undefined') {\n this.pixelOffset = options.pixelOffset;\n }\n if (typeof options.alignBottom !== 'undefined') {\n this.alignBottom = options.alignBottom;\n }\n if (typeof options.position !== 'undefined') {\n this.setPosition(options.position);\n }\n if (typeof options.zIndex !== 'undefined') {\n this.setZIndex(options.zIndex);\n }\n if (typeof options.closeBoxMargin !== 'undefined') {\n this.closeBoxMargin = options.closeBoxMargin;\n }\n if (typeof options.closeBoxURL !== 'undefined') {\n this.closeBoxURL = options.closeBoxURL;\n }\n if (typeof options.infoBoxClearance !== 'undefined') {\n this.infoBoxClearance = options.infoBoxClearance;\n }\n if (typeof options.isHidden !== 'undefined') {\n this.isHidden = options.isHidden;\n }\n if (typeof options.visible !== 'undefined') {\n this.isHidden = !options.visible;\n }\n if (typeof options.enableEventPropagation !== 'undefined') {\n this.enableEventPropagation = options.enableEventPropagation;\n }\n if (this.div) {\n this.draw();\n }\n };\n InfoBox.prototype.setContent = function (content) {\n this.content = content;\n if (this.div) {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n // Odd code required to make things work with MSIE.\n if (!this.fixedWidthSet) {\n this.div.style.width = '';\n }\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n // Perverse code required to make things work with MSIE.\n // (Ensures the close box does, in fact, float to the right.)\n if (!this.fixedWidthSet) {\n this.div.style.width = this.div.offsetWidth + 'px';\n if (typeof content === 'string') {\n this.div.innerHTML = this.getCloseBoxImg() + content;\n }\n else {\n this.div.innerHTML = this.getCloseBoxImg();\n this.div.appendChild(content);\n }\n }\n this.addClickHandler();\n }\n /**\n * This event is fired when the content of the InfoBox changes.\n * @name InfoBox#content_changed\n * @event\n */\n google.maps.event.trigger(this, 'content_changed');\n };\n InfoBox.prototype.setPosition = function (latLng) {\n this.position = latLng;\n if (this.div) {\n this.draw();\n }\n /**\n * This event is fired when the position of the InfoBox changes.\n * @name InfoBox#position_changed\n * @event\n */\n google.maps.event.trigger(this, 'position_changed');\n };\n InfoBox.prototype.setVisible = function (isVisible) {\n this.isHidden = !isVisible;\n if (this.div) {\n this.div.style.visibility = this.isHidden ? 'hidden' : 'visible';\n }\n };\n InfoBox.prototype.setZIndex = function (index) {\n this.zIndex = index;\n if (this.div) {\n this.div.style.zIndex = index + '';\n }\n /**\n * This event is fired when the zIndex of the InfoBox changes.\n * @name InfoBox#zindex_changed\n * @event\n */\n google.maps.event.trigger(this, 'zindex_changed');\n };\n InfoBox.prototype.getContent = function () {\n return this.content;\n };\n InfoBox.prototype.getPosition = function () {\n return this.position;\n };\n InfoBox.prototype.getZIndex = function () {\n return this.zIndex;\n };\n InfoBox.prototype.getVisible = function () {\n // @ts-ignore\n var map = this.getMap();\n var isVisible;\n if (typeof map === 'undefined' || map === null) {\n isVisible = false;\n }\n else {\n isVisible = !this.isHidden;\n }\n return isVisible;\n };\n InfoBox.prototype.show = function () {\n this.isHidden = false;\n if (this.div) {\n this.div.style.visibility = 'visible';\n }\n };\n InfoBox.prototype.hide = function () {\n this.isHidden = true;\n if (this.div) {\n this.div.style.visibility = 'hidden';\n }\n };\n InfoBox.prototype.open = function (map, anchor) {\n var _this = this;\n if (anchor) {\n // @ts-ignore\n this.position = anchor.getPosition();\n this.moveListener = google.maps.event.addListener(anchor, 'position_changed', function () {\n // @ts-ignore\n var position = anchor.getPosition();\n _this.setPosition(position);\n });\n this.mapListener = google.maps.event.addListener(anchor, 'map_changed', function () {\n // @ts-ignore\n _this.setMap(anchor.map);\n });\n }\n // @ts-ignore\n this.setMap(map);\n if (this.div) {\n this.panBox();\n }\n };\n InfoBox.prototype.close = function () {\n if (this.closeListener) {\n google.maps.event.removeListener(this.closeListener);\n this.closeListener = null;\n }\n if (this.eventListeners) {\n for (var i = 0; i < this.eventListeners.length; i++) {\n google.maps.event.removeListener(this.eventListeners[i]);\n }\n this.eventListeners = null;\n }\n if (this.moveListener) {\n google.maps.event.removeListener(this.moveListener);\n this.moveListener = null;\n }\n if (this.mapListener) {\n google.maps.event.removeListener(this.mapListener);\n this.mapListener = null;\n }\n if (this.contextListener) {\n google.maps.event.removeListener(this.contextListener);\n this.contextListener = null;\n }\n // @ts-ignore\n this.setMap(null);\n };\n InfoBox.prototype.extend = function (obj1, obj2) {\n return function applyExtend(object) {\n // eslint-disable-next-line guard-for-in\n for (var property in object.prototype) {\n // @ts-ignore\n if (!this.prototype.hasOwnProperty(property)) {\n // @ts-ignore\n this.prototype[property] = object.prototype[property];\n }\n }\n // @ts-ignore\n return this;\n }.apply(obj1, [obj2]);\n };\n return InfoBox;\n}());\n\nexport { InfoBox };\n//# sourceMappingURL=esm.js.map\n","/* global google */\nimport { Children, PureComponent, type ReactPortal } from 'react'\nimport { createPortal } from 'react-dom'\nimport invariant from 'invariant'\nimport {\n InfoBox as GoogleMapsInfoBox,\n InfoBoxOptions as GoogleMapsInfoBoxOptions,\n} from '@react-google-maps/infobox'\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed',\n}\n\nconst updaterMap = {\n options(instance: GoogleMapsInfoBox, options: GoogleMapsInfoBoxOptions): void {\n instance.setOptions(options)\n },\n position(\n instance: GoogleMapsInfoBox,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ): void {\n if (position instanceof google.maps.LatLng) {\n instance.setPosition(position)\n } else {\n instance.setPosition(new google.maps.LatLng(position.lat, position.lng))\n }\n },\n visible(instance: GoogleMapsInfoBox, visible: boolean): void {\n instance.setVisible(visible)\n },\n zIndex(instance: GoogleMapsInfoBox, zIndex: number): void {\n instance.setZIndex(zIndex)\n },\n}\n\ntype InfoBoxOptions = Omit & {\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n}\n\ninterface InfoBoxState {\n infoBox: GoogleMapsInfoBox | null\n}\n\nexport interface InfoBoxProps {\n /** Can be any MVCObject that exposes a LatLng position property and optionally a Point anchorPoint property for calculating the pixelOffset. The anchorPoint is the offset from the anchor's position to the tip of the InfoBox. */\n anchor?: google.maps.MVCObject | undefined\n options?: InfoBoxOptions | undefined\n /** The LatLng at which to display this InfoBox. If the InfoBox is opened with an anchor, the anchor's position will be used instead. */\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n /** All InfoBoxes are displayed on the map in order of their zIndex, with higher values displaying in front of InfoBoxes with lower values. By default, InfoBoxes are displayed according to their latitude, with InfoBoxes of lower latitudes appearing in front of InfoBoxes at higher latitudes. InfoBoxes are always displayed in front of markers. */\n zIndex?: number | undefined\n /** This event is fired when the close button was clicked. */\n onCloseClick?: (() => void) | undefined\n /** This event is fired when the
containing the InfoBox's content is attached to the DOM. You may wish to monitor this event if you are building out your info window content dynamically. */\n onDomReady?: (() => void) | undefined\n /** This event is fired when the content property changes. */\n onContentChanged?: (() => void) | undefined\n /** This event is fired when the position property changes. */\n onPositionChanged?: (() => void) | undefined\n /** This event is fired when the InfoBox's zIndex changes. */\n onZindexChanged?: (() => void) | undefined\n /** This callback is called when the infoBox instance has loaded. It is called with the infoBox instance. */\n onLoad?: ((infoBox: GoogleMapsInfoBox) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the infoBox instance. */\n onUnmount?: ((infoBox: GoogleMapsInfoBox) => void) | undefined\n}\n\nexport class InfoBoxComponent extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n containerElement: HTMLElement | null = null\n\n state: InfoBoxState = {\n infoBox: null,\n }\n\n open = (infoBox: GoogleMapsInfoBox, anchor?: google.maps.MVCObject): void => {\n if (anchor) {\n infoBox.open(this.context, anchor)\n } else if (infoBox.getPosition()) {\n infoBox.open(this.context)\n } else {\n invariant(false, 'You must provide either an anchor or a position prop for .')\n }\n }\n\n setInfoBoxCallback = (): void => {\n const { anchor, onLoad } = this.props\n const { infoBox } = this.state\n\n if (infoBox !== null && this.containerElement !== null) {\n infoBox.setContent(this.containerElement)\n this.open(infoBox, anchor)\n\n if (onLoad) {\n onLoad(infoBox)\n }\n }\n }\n\n componentDidMount(): void {\n const { options } = this.props\n const { position, ...infoBoxOptions }: InfoBoxOptions = options || {}\n\n let positionLatLng: google.maps.LatLng | undefined\n if (position && !(position instanceof google.maps.LatLng)) {\n positionLatLng = new google.maps.LatLng(position.lat, position.lng)\n }\n\n const infoBox = new GoogleMapsInfoBox({\n ...infoBoxOptions,\n ...(positionLatLng ? { position: positionLatLng } : {}),\n })\n\n this.containerElement = document.createElement('div')\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: infoBox,\n })\n\n this.setState({ infoBox }, this.setInfoBoxCallback)\n }\n\n componentDidUpdate(prevProps: InfoBoxProps): void {\n const { infoBox } = this.state\n\n if (infoBox !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: infoBox,\n })\n }\n }\n\n componentWillUnmount(): void {\n const { onUnmount } = this.props\n const { infoBox } = this.state\n\n if (infoBox !== null) {\n if (onUnmount) {\n onUnmount(infoBox)\n }\n\n unregisterEvents(this.registeredEvents)\n infoBox.close()\n }\n }\n\n render(): ReactPortal | null {\n if (!this.containerElement) {\n return null\n }\n\n return createPortal(Children.only(this.props.children), this.containerElement)\n }\n}\n\nexport default InfoBoxComponent\n","(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global.KDBush = factory());\n}(this, (function () { 'use strict';\n\nfunction sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) { return; }\n\n var m = (left + right) >> 1;\n\n select(ids, coords, m, left, right, depth % 2);\n\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\n\nfunction select(ids, coords, k, left, right, inc) {\n\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n var t = coords[2 * k + inc];\n var i = left;\n var j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) { swapItem(ids, coords, left, right); }\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) { i++; }\n while (coords[2 * j + inc] > t) { j--; }\n }\n\n if (coords[2 * left + inc] === t) { swapItem(ids, coords, left, j); }\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) { left = j + 1; }\n if (k <= j) { right = j - 1; }\n }\n}\n\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\nfunction range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n var stack = [0, ids.length - 1, 0];\n var result = [];\n var x, y;\n\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) { result.push(ids[i]); }\n }\n continue;\n }\n\n var m = Math.floor((left + right) / 2);\n\n x = coords[2 * m];\n y = coords[2 * m + 1];\n\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) { result.push(ids[m]); }\n\n var nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction within(ids, coords, qx, qy, r, nodeSize) {\n var stack = [0, ids.length - 1, 0];\n var result = [];\n var r2 = r * r;\n\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) { result.push(ids[i]); }\n }\n continue;\n }\n\n var m = Math.floor((left + right) / 2);\n\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n\n if (sqDist(x, y, qx, qy) <= r2) { result.push(ids[m]); }\n\n var nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction sqDist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n}\n\nvar defaultGetX = function (p) { return p[0]; };\nvar defaultGetY = function (p) { return p[1]; };\n\nvar KDBush = function KDBush(points, getX, getY, nodeSize, ArrayType) {\n if ( getX === void 0 ) getX = defaultGetX;\n if ( getY === void 0 ) getY = defaultGetY;\n if ( nodeSize === void 0 ) nodeSize = 64;\n if ( ArrayType === void 0 ) ArrayType = Float64Array;\n\n this.nodeSize = nodeSize;\n this.points = points;\n\n var IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n\n var ids = this.ids = new IndexArrayType(points.length);\n var coords = this.coords = new ArrayType(points.length * 2);\n\n for (var i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sortKD(ids, coords, nodeSize, 0, ids.length - 1, 0);\n};\n\nKDBush.prototype.range = function range$1 (minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n};\n\nKDBush.prototype.within = function within$1 (x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n};\n\nreturn KDBush;\n\n})));\n","\nimport KDBush from 'kdbush';\n\nconst defaultOptions = {\n minZoom: 0, // min zoom to generate clusters on\n maxZoom: 16, // max zoom level to cluster the points on\n minPoints: 2, // minimum points to form a cluster\n radius: 40, // cluster radius in pixels\n extent: 512, // tile extent (radius is calculated relative to it)\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\n log: false, // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n\n // a reduce function for calculating custom cluster properties\n reduce: null, // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\n\nconst fround = Math.fround || (tmp => ((x) => { tmp[0] = +x; return tmp[0]; }))(new Float32Array(1));\n\nexport default class Supercluster {\n constructor(options) {\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n load(points) {\n const {log, minZoom, maxZoom, nodeSize} = this.options;\n\n if (log) console.time('total time');\n\n const timerId = `prepare ${ points.length } points`;\n if (log) console.time(timerId);\n\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n let clusters = [];\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n for (const id of ids) {\n const c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {extent, radius} = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n\n const tile = {\n features: []\n };\n\n this._addTileFeatures(\n tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom),\n tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(\n tree.range(1 - p / z2, top, 1, bottom),\n tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(\n tree.range(0, top, p / z2, bottom),\n tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n const f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (px * z2 - x)),\n Math.round(this.options.extent * (py * z2 - y))\n ]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(+z, this.options.maxZoom + 1));\n }\n\n _cluster(points, zoom) {\n const clusters = [];\n const {radius, extent, reduce, minPoints} = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n\n // loop through each point\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n // if we've already visited the point at this zoom level, skip it\n if (p.zoom <= zoom) continue;\n p.zoom = zoom;\n\n // find all nearby points\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n // filter out neighbors that are already processed\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = (i << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n wy += b.y * numPoints2;\n\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n\n } else { // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n\n return clusters;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return (clusterId - this.points.length) >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n}\n\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x), // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity, // the last zoom the cluster was processed at\n id, // encodes index of the first child of the cluster and its zoom level\n parentId: -1, // parent cluster id\n numPoints,\n properties\n };\n}\n\nfunction createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)), // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity, // the last zoom the point was processed at\n index: id, // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n };\n}\n\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\n\nfunction getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev =\n count >= 10000 ? `${Math.round(count / 1000) }k` :\n count >= 1000 ? `${Math.round(count / 100) / 10 }k` : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\nfunction extend(dest, src) {\n for (const id in src) dest[id] = src[id];\n return dest;\n}\n\nfunction getX(p) {\n return p.x;\n}\nfunction getY(p) {\n return p.y;\n}\n","var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\r\nvar keys = Object.keys;\r\n/**\r\n * are the values passed strictly equal or both NaN\r\n *\r\n * @param a the value to compare against\r\n * @param b the value to test\r\n * @returns are the values equal by the SameValueZero principle\r\n */\r\nfunction sameValueZeroEqual(a, b) {\r\n return a === b || (a !== a && b !== b);\r\n}\r\n/**\r\n * is the value a plain object\r\n *\r\n * @param value the value to test\r\n * @returns is the value a plain object\r\n */\r\nfunction isPlainObject(value) {\r\n return value.constructor === Object || value.constructor == null;\r\n}\r\n/**\r\n * is the value promise-like (meaning it is thenable)\r\n *\r\n * @param value the value to test\r\n * @returns is the value promise-like\r\n */\r\nfunction isPromiseLike(value) {\r\n return !!value && typeof value.then === 'function';\r\n}\r\n/**\r\n * is the value passed a react element\r\n *\r\n * @param value the value to test\r\n * @returns is the value a react element\r\n */\r\nfunction isReactElement(value) {\r\n return !!(value && value.$$typeof);\r\n}\r\n/**\r\n * in cases where WeakSet is not supported, creates a new custom\r\n * object that mimics the necessary API aspects for cache purposes\r\n *\r\n * @returns the new cache object\r\n */\r\nfunction getNewCacheFallback() {\r\n var values = [];\r\n return {\r\n add: function (value) {\r\n values.push(value);\r\n },\r\n has: function (value) {\r\n return values.indexOf(value) !== -1;\r\n },\r\n };\r\n}\r\n/**\r\n * get a new cache object to prevent circular references\r\n *\r\n * @returns the new cache object\r\n */\r\nvar getNewCache = (function (canUseWeakMap) {\r\n if (canUseWeakMap) {\r\n return function _getNewCache() {\r\n return new WeakSet();\r\n };\r\n }\r\n return getNewCacheFallback;\r\n})(HAS_WEAKSET_SUPPORT);\r\n/**\r\n * create a custom isEqual handler specific to circular objects\r\n *\r\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\r\n * @returns the method to create the `isEqual` function\r\n */\r\nfunction createCircularEqualCreator(isEqual) {\r\n return function createCircularEqual(comparator) {\r\n var _comparator = isEqual || comparator;\r\n return function circularEqual(a, b, indexOrKeyA, indexOrKeyB, parentA, parentB, cache) {\r\n if (cache === void 0) { cache = getNewCache(); }\r\n var isCacheableA = !!a && typeof a === 'object';\r\n var isCacheableB = !!b && typeof b === 'object';\r\n if (isCacheableA || isCacheableB) {\r\n var hasA = isCacheableA && cache.has(a);\r\n var hasB = isCacheableB && cache.has(b);\r\n if (hasA || hasB) {\r\n return hasA && hasB;\r\n }\r\n if (isCacheableA) {\r\n cache.add(a);\r\n }\r\n if (isCacheableB) {\r\n cache.add(b);\r\n }\r\n }\r\n return _comparator(a, b, cache);\r\n };\r\n };\r\n}\r\n/**\r\n * are the arrays equal in value\r\n *\r\n * @param a the array to test\r\n * @param b the array to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the arrays equal\r\n */\r\nfunction areArraysEqual(a, b, isEqual, meta) {\r\n var index = a.length;\r\n if (b.length !== index) {\r\n return false;\r\n }\r\n while (index-- > 0) {\r\n if (!isEqual(a[index], b[index], index, index, a, b, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * are the maps equal in value\r\n *\r\n * @param a the map to test\r\n * @param b the map to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta map to pass through\r\n * @returns are the maps equal\r\n */\r\nfunction areMapsEqual(a, b, isEqual, meta) {\r\n var isValueEqual = a.size === b.size;\r\n if (isValueEqual && a.size) {\r\n var matchedIndices_1 = {};\r\n var indexA_1 = 0;\r\n a.forEach(function (aValue, aKey) {\r\n if (isValueEqual) {\r\n var hasMatch_1 = false;\r\n var matchIndexB_1 = 0;\r\n b.forEach(function (bValue, bKey) {\r\n if (!hasMatch_1 && !matchedIndices_1[matchIndexB_1]) {\r\n hasMatch_1 =\r\n isEqual(aKey, bKey, indexA_1, matchIndexB_1, a, b, meta) && isEqual(aValue, bValue, aKey, bKey, a, b, meta);\r\n if (hasMatch_1) {\r\n matchedIndices_1[matchIndexB_1] = true;\r\n }\r\n }\r\n matchIndexB_1++;\r\n });\r\n indexA_1++;\r\n isValueEqual = hasMatch_1;\r\n }\r\n });\r\n }\r\n return isValueEqual;\r\n}\r\nvar OWNER = '_owner';\r\nvar hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);\r\n/**\r\n * are the objects equal in value\r\n *\r\n * @param a the object to test\r\n * @param b the object to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the objects equal\r\n */\r\nfunction areObjectsEqual(a, b, isEqual, meta) {\r\n var keysA = keys(a);\r\n var index = keysA.length;\r\n if (keys(b).length !== index) {\r\n return false;\r\n }\r\n if (index) {\r\n var key = void 0;\r\n while (index-- > 0) {\r\n key = keysA[index];\r\n if (key === OWNER) {\r\n var reactElementA = isReactElement(a);\r\n var reactElementB = isReactElement(b);\r\n if ((reactElementA || reactElementB) &&\r\n reactElementA !== reactElementB) {\r\n return false;\r\n }\r\n }\r\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], key, key, a, b, meta)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * are the regExps equal in value\r\n *\r\n * @param a the regExp to test\r\n * @param b the regExp to test agains\r\n * @returns are the regExps equal\r\n */\r\nfunction areRegExpsEqual(a, b) {\r\n return (a.source === b.source &&\r\n a.global === b.global &&\r\n a.ignoreCase === b.ignoreCase &&\r\n a.multiline === b.multiline &&\r\n a.unicode === b.unicode &&\r\n a.sticky === b.sticky &&\r\n a.lastIndex === b.lastIndex);\r\n}\r\n/**\r\n * are the sets equal in value\r\n *\r\n * @param a the set to test\r\n * @param b the set to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta set to pass through\r\n * @returns are the sets equal\r\n */\r\nfunction areSetsEqual(a, b, isEqual, meta) {\r\n var isValueEqual = a.size === b.size;\r\n if (isValueEqual && a.size) {\r\n var matchedIndices_2 = {};\r\n a.forEach(function (aValue, aKey) {\r\n if (isValueEqual) {\r\n var hasMatch_2 = false;\r\n var matchIndex_1 = 0;\r\n b.forEach(function (bValue, bKey) {\r\n if (!hasMatch_2 && !matchedIndices_2[matchIndex_1]) {\r\n hasMatch_2 = isEqual(aValue, bValue, aKey, bKey, a, b, meta);\r\n if (hasMatch_2) {\r\n matchedIndices_2[matchIndex_1] = true;\r\n }\r\n }\r\n matchIndex_1++;\r\n });\r\n isValueEqual = hasMatch_2;\r\n }\r\n });\r\n }\r\n return isValueEqual;\r\n}\n\nvar HAS_MAP_SUPPORT = typeof Map === 'function';\r\nvar HAS_SET_SUPPORT = typeof Set === 'function';\r\nfunction createComparator(createIsEqual) {\r\n var isEqual = \r\n /* eslint-disable no-use-before-define */\r\n typeof createIsEqual === 'function'\r\n ? createIsEqual(comparator)\r\n : function (a, b, indexOrKeyA, indexOrKeyB, parentA, parentB, meta) { return comparator(a, b, meta); };\r\n /* eslint-enable */\r\n /**\r\n * compare the value of the two objects and return true if they are equivalent in values\r\n *\r\n * @param a the value to test against\r\n * @param b the value to test\r\n * @param [meta] an optional meta object that is passed through to all equality test calls\r\n * @returns are a and b equivalent in value\r\n */\r\n function comparator(a, b, meta) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a && b && typeof a === 'object' && typeof b === 'object') {\r\n if (isPlainObject(a) && isPlainObject(b)) {\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n var aShape = Array.isArray(a);\r\n var bShape = Array.isArray(b);\r\n if (aShape || bShape) {\r\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\r\n }\r\n aShape = a instanceof Date;\r\n bShape = b instanceof Date;\r\n if (aShape || bShape) {\r\n return (aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime()));\r\n }\r\n aShape = a instanceof RegExp;\r\n bShape = b instanceof RegExp;\r\n if (aShape || bShape) {\r\n return aShape === bShape && areRegExpsEqual(a, b);\r\n }\r\n if (isPromiseLike(a) || isPromiseLike(b)) {\r\n return a === b;\r\n }\r\n if (HAS_MAP_SUPPORT) {\r\n aShape = a instanceof Map;\r\n bShape = b instanceof Map;\r\n if (aShape || bShape) {\r\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n if (HAS_SET_SUPPORT) {\r\n aShape = a instanceof Set;\r\n bShape = b instanceof Set;\r\n if (aShape || bShape) {\r\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n return a !== a && b !== b;\r\n }\r\n return comparator;\r\n}\n\nvar deepEqual = createComparator();\r\nvar shallowEqual = createComparator(function () { return sameValueZeroEqual; });\r\nvar circularDeepEqual = createComparator(createCircularEqualCreator());\r\nvar circularShallowEqual = createComparator(createCircularEqualCreator(sameValueZeroEqual));\n\nexport { circularDeepEqual, circularShallowEqual, createComparator as createCustomEqual, deepEqual, sameValueZeroEqual, shallowEqual };\n//# sourceMappingURL=fast-equals.esm.js.map\n","import SuperCluster from 'supercluster';\nimport { deepEqual } from 'fast-equals';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass Cluster {\n constructor({ markers, position }) {\n this.markers = markers;\n if (position) {\n if (position instanceof google.maps.LatLng) {\n this._position = position;\n }\n else {\n this._position = new google.maps.LatLng(position);\n }\n }\n }\n get bounds() {\n if (this.markers.length === 0 && !this._position) {\n return undefined;\n }\n return this.markers.reduce((bounds, marker) => {\n return bounds.extend(marker.getPosition());\n }, new google.maps.LatLngBounds(this._position, this._position));\n }\n get position() {\n return this._position || this.bounds.getCenter();\n }\n /**\n * Get the count of **visible** markers.\n */\n get count() {\n return this.markers.filter((m) => m.getVisible())\n .length;\n }\n /**\n * Add a marker to the cluster.\n */\n push(marker) {\n this.markers.push(marker);\n }\n /**\n * Cleanup references and remove marker from map.\n */\n delete() {\n if (this.marker) {\n this.marker.setMap(null);\n delete this.marker;\n }\n this.markers.length = 0;\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst filterMarkersToPaddedViewport = (map, mapCanvasProjection, markers, viewportPadding) => {\n const extendedMapBounds = extendBoundsToPaddedViewport(map.getBounds(), mapCanvasProjection, viewportPadding);\n return markers.filter((marker) => extendedMapBounds.contains(marker.getPosition()));\n};\n/**\n * Extends a bounds by a number of pixels in each direction.\n */\nconst extendBoundsToPaddedViewport = (bounds, projection, pixels) => {\n const { northEast, southWest } = latLngBoundsToPixelBounds(bounds, projection);\n const extendedPixelBounds = extendPixelBounds({ northEast, southWest }, pixels);\n return pixelBoundsToLatLngBounds(extendedPixelBounds, projection);\n};\n/**\n * @hidden\n */\nconst distanceBetweenPoints = (p1, p2) => {\n const R = 6371; // Radius of the Earth in km\n const dLat = ((p2.lat - p1.lat) * Math.PI) / 180;\n const dLon = ((p2.lng - p1.lng) * Math.PI) / 180;\n const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos((p1.lat * Math.PI) / 180) *\n Math.cos((p2.lat * Math.PI) / 180) *\n Math.sin(dLon / 2) *\n Math.sin(dLon / 2);\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n return R * c;\n};\n/**\n * @hidden\n */\nconst latLngBoundsToPixelBounds = (bounds, projection) => {\n return {\n northEast: projection.fromLatLngToDivPixel(bounds.getNorthEast()),\n southWest: projection.fromLatLngToDivPixel(bounds.getSouthWest()),\n };\n};\n/**\n * @hidden\n */\nconst extendPixelBounds = ({ northEast, southWest }, pixels) => {\n northEast.x += pixels;\n northEast.y -= pixels;\n southWest.x -= pixels;\n southWest.y += pixels;\n return { northEast, southWest };\n};\n/**\n * @hidden\n */\nconst pixelBoundsToLatLngBounds = ({ northEast, southWest }, projection) => {\n const bounds = new google.maps.LatLngBounds();\n bounds.extend(projection.fromDivPixelToLatLng(northEast));\n bounds.extend(projection.fromDivPixelToLatLng(southWest));\n return bounds;\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @hidden\n */\nclass AbstractAlgorithm {\n constructor({ maxZoom = 16 }) {\n this.maxZoom = maxZoom;\n }\n /**\n * Helper function to bypass clustering based upon some map state such as\n * zoom, number of markers, etc.\n *\n * ```typescript\n * cluster({markers, map}: AlgorithmInput): Cluster[] {\n * if (shouldBypassClustering(map)) {\n * return this.noop({markers, map})\n * }\n * }\n * ```\n */\n noop({ markers }) {\n return noop(markers);\n }\n}\n/**\n * Abstract viewport algorithm proves a class to filter markers by a padded\n * viewport. This is a common optimization.\n *\n * @hidden\n */\nclass AbstractViewportAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var { viewportPadding = 60 } = _a, options = __rest(_a, [\"viewportPadding\"]);\n super(options);\n this.viewportPadding = 60;\n this.viewportPadding = viewportPadding;\n }\n calculate({ markers, map, mapCanvasProjection, }) {\n if (map.getZoom() >= this.maxZoom) {\n return {\n clusters: this.noop({\n markers,\n map,\n mapCanvasProjection,\n }),\n changed: false,\n };\n }\n return {\n clusters: this.cluster({\n markers: filterMarkersToPaddedViewport(map, mapCanvasProjection, markers, this.viewportPadding),\n map,\n mapCanvasProjection,\n }),\n };\n }\n}\n/**\n * @hidden\n */\nconst noop = (markers) => {\n const clusters = markers.map((marker) => new Cluster({\n position: marker.getPosition(),\n markers: [marker],\n }));\n return clusters;\n};\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The default Grid algorithm historically used in Google Maps marker\n * clustering.\n *\n * The Grid algorithm does not implement caching and markers may flash as the\n * viewport changes. Instead use {@link SuperClusterAlgorithm}.\n */\nclass GridAlgorithm extends AbstractViewportAlgorithm {\n constructor(_a) {\n var { maxDistance = 40000, gridSize = 40 } = _a, options = __rest(_a, [\"maxDistance\", \"gridSize\"]);\n super(options);\n this.clusters = [];\n this.maxDistance = maxDistance;\n this.gridSize = gridSize;\n }\n cluster({ markers, map, mapCanvasProjection, }) {\n this.clusters = [];\n markers.forEach((marker) => {\n this.addToClosestCluster(marker, map, mapCanvasProjection);\n });\n return this.clusters;\n }\n addToClosestCluster(marker, map, projection) {\n let maxDistance = this.maxDistance; // Some large number\n let cluster = null;\n for (let i = 0; i < this.clusters.length; i++) {\n const candidate = this.clusters[i];\n const distance = distanceBetweenPoints(candidate.bounds.getCenter().toJSON(), marker.getPosition().toJSON());\n if (distance < maxDistance) {\n maxDistance = distance;\n cluster = candidate;\n }\n }\n if (cluster &&\n extendBoundsToPaddedViewport(cluster.bounds, projection, this.gridSize).contains(marker.getPosition())) {\n cluster.push(marker);\n }\n else {\n const cluster = new Cluster({ markers: [marker] });\n this.clusters.push(cluster);\n }\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Noop algorithm does not generate any clusters or filter markers by the an extended viewport.\n */\nclass NoopAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var options = __rest(_a, []);\n super(options);\n }\n calculate({ markers, map, mapCanvasProjection, }) {\n return {\n clusters: this.cluster({ markers, map, mapCanvasProjection }),\n changed: false,\n };\n }\n cluster(input) {\n return this.noop(input);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A very fast JavaScript algorithm for geospatial point clustering using KD trees.\n *\n * @see https://www.npmjs.com/package/supercluster for more information on options.\n */\nclass SuperClusterAlgorithm extends AbstractAlgorithm {\n constructor(_a) {\n var { maxZoom, radius = 60 } = _a, options = __rest(_a, [\"maxZoom\", \"radius\"]);\n super({ maxZoom });\n this.superCluster = new SuperCluster(Object.assign({ maxZoom: this.maxZoom, radius }, options));\n this.state = { zoom: null };\n }\n calculate(input) {\n let changed = false;\n if (!deepEqual(input.markers, this.markers)) {\n changed = true;\n // TODO use proxy to avoid copy?\n this.markers = [...input.markers];\n const points = this.markers.map((marker) => {\n return {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [\n marker.getPosition().lng(),\n marker.getPosition().lat(),\n ],\n },\n properties: { marker },\n };\n });\n this.superCluster.load(points);\n }\n const state = { zoom: input.map.getZoom() };\n if (!changed) {\n if (this.state.zoom > this.maxZoom && state.zoom > this.maxZoom) ;\n else {\n changed = changed || !deepEqual(this.state, state);\n }\n }\n this.state = state;\n if (changed) {\n this.clusters = this.cluster(input);\n }\n return { clusters: this.clusters, changed };\n }\n cluster({ map }) {\n return this.superCluster\n .getClusters([-180, -90, 180, 90], Math.round(map.getZoom()))\n .map(this.transformCluster.bind(this));\n }\n transformCluster({ geometry: { coordinates: [lng, lat], }, properties, }) {\n if (properties.cluster) {\n return new Cluster({\n markers: this.superCluster\n .getLeaves(properties.cluster_id, Infinity)\n .map((leaf) => leaf.properties.marker),\n position: new google.maps.LatLng({ lat, lng }),\n });\n }\n else {\n const marker = properties.marker;\n return new Cluster({\n markers: [marker],\n position: marker.getPosition(),\n });\n }\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides statistics on all clusters in the current render cycle for use in {@link Renderer.render}.\n */\nclass ClusterStats {\n constructor(markers, clusters) {\n this.markers = { sum: markers.length };\n const clusterMarkerCounts = clusters.map((a) => a.count);\n const clusterMarkerSum = clusterMarkerCounts.reduce((a, b) => a + b, 0);\n this.clusters = {\n count: clusters.length,\n markers: {\n mean: clusterMarkerSum / clusters.length,\n sum: clusterMarkerSum,\n min: Math.min(...clusterMarkerCounts),\n max: Math.max(...clusterMarkerCounts),\n },\n };\n }\n}\nclass DefaultRenderer {\n /**\n * The default render function for the library used by {@link MarkerClusterer}.\n *\n * Currently set to use the following:\n *\n * ```typescript\n * // change color if this cluster has more markers than the mean cluster\n * const color =\n * count > Math.max(10, stats.clusters.markers.mean)\n * ? \"#ff0000\"\n * : \"#0000ff\";\n *\n * // create svg url with fill color\n * const svg = window.btoa(`\n * \n * \n * \n * \n * \n * `);\n *\n * // create marker using svg icon\n * return new google.maps.Marker({\n * position,\n * icon: {\n * url: `data:image/svg+xml;base64,${svg}`,\n * scaledSize: new google.maps.Size(45, 45),\n * },\n * label: {\n * text: String(count),\n * color: \"rgba(255,255,255,0.9)\",\n * fontSize: \"12px\",\n * },\n * // adjust zIndex to be above other markers\n * zIndex: 1000 + count,\n * });\n * ```\n */\n render({ count, position }, stats) {\n // change color if this cluster has more markers than the mean cluster\n const color = count > Math.max(10, stats.clusters.markers.mean) ? \"#ff0000\" : \"#0000ff\";\n // create svg url with fill color\n const svg = window.btoa(`\n \n \n \n \n `);\n // create marker using svg icon\n return new google.maps.Marker({\n position,\n icon: {\n url: `data:image/svg+xml;base64,${svg}`,\n scaledSize: new google.maps.Size(45, 45),\n },\n label: {\n text: String(count),\n color: \"rgba(255,255,255,0.9)\",\n fontSize: \"12px\",\n },\n title: `Cluster of ${count} markers`,\n // adjust zIndex to be above other markers\n zIndex: Number(google.maps.Marker.MAX_ZINDEX) + count,\n });\n }\n}\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Extends an object's prototype by another's.\n *\n * @param type1 The Type to be extended.\n * @param type2 The Type to extend with.\n * @ignore\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extend(type1, type2) {\n /* istanbul ignore next */\n // eslint-disable-next-line prefer-const\n for (let property in type2.prototype) {\n type1.prototype[property] = type2.prototype[property];\n }\n}\n/**\n * @ignore\n */\nclass OverlayViewSafe {\n constructor() {\n // MarkerClusterer implements google.maps.OverlayView interface. We use the\n // extend function to extend MarkerClusterer with google.maps.OverlayView\n // because it might not always be available when the code is defined so we\n // look for it at the last possible moment. If it doesn't exist now then\n // there is no point going ahead :)\n extend(OverlayViewSafe, google.maps.OverlayView);\n }\n}\n\n/**\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar MarkerClustererEvents;\n(function (MarkerClustererEvents) {\n MarkerClustererEvents[\"CLUSTERING_BEGIN\"] = \"clusteringbegin\";\n MarkerClustererEvents[\"CLUSTERING_END\"] = \"clusteringend\";\n MarkerClustererEvents[\"CLUSTER_CLICK\"] = \"click\";\n})(MarkerClustererEvents || (MarkerClustererEvents = {}));\nconst defaultOnClusterClickHandler = (_, cluster, map) => {\n map.fitBounds(cluster.bounds);\n};\n/**\n * MarkerClusterer creates and manages per-zoom-level clusters for large amounts\n * of markers. See {@link MarkerClustererOptions} for more details.\n *\n */\nclass MarkerClusterer extends OverlayViewSafe {\n constructor({ map, markers = [], algorithm = new SuperClusterAlgorithm({}), renderer = new DefaultRenderer(), onClusterClick = defaultOnClusterClickHandler, }) {\n super();\n this.markers = [...markers];\n this.clusters = [];\n this.algorithm = algorithm;\n this.renderer = renderer;\n this.onClusterClick = onClusterClick;\n if (map) {\n this.setMap(map);\n }\n }\n addMarker(marker, noDraw) {\n if (this.markers.includes(marker)) {\n return;\n }\n this.markers.push(marker);\n if (!noDraw) {\n this.render();\n }\n }\n addMarkers(markers, noDraw) {\n markers.forEach((marker) => {\n this.addMarker(marker, true);\n });\n if (!noDraw) {\n this.render();\n }\n }\n removeMarker(marker, noDraw) {\n const index = this.markers.indexOf(marker);\n if (index === -1) {\n // Marker is not in our list of markers, so do nothing:\n return false;\n }\n marker.setMap(null);\n this.markers.splice(index, 1); // Remove the marker from the list of managed markers\n if (!noDraw) {\n this.render();\n }\n return true;\n }\n removeMarkers(markers, noDraw) {\n let removed = false;\n markers.forEach((marker) => {\n removed = this.removeMarker(marker, true) || removed;\n });\n if (removed && !noDraw) {\n this.render();\n }\n return removed;\n }\n clearMarkers(noDraw) {\n this.markers.length = 0;\n if (!noDraw) {\n this.render();\n }\n }\n /**\n * Recalculates and draws all the marker clusters.\n */\n render() {\n const map = this.getMap();\n if (map instanceof google.maps.Map && this.getProjection()) {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_BEGIN, this);\n const { clusters, changed } = this.algorithm.calculate({\n markers: this.markers,\n map,\n mapCanvasProjection: this.getProjection(),\n });\n // allow algorithms to return flag on whether the clusters/markers have changed\n if (changed || changed == undefined) {\n // reset visibility of markers and clusters\n this.reset();\n // store new clusters\n this.clusters = clusters;\n this.renderClusters();\n }\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTERING_END, this);\n }\n }\n onAdd() {\n this.idleListener = this.getMap().addListener(\"idle\", this.render.bind(this));\n this.render();\n }\n onRemove() {\n google.maps.event.removeListener(this.idleListener);\n this.reset();\n }\n reset() {\n this.markers.forEach((marker) => marker.setMap(null));\n this.clusters.forEach((cluster) => cluster.delete());\n this.clusters = [];\n }\n renderClusters() {\n // generate stats to pass to renderers\n const stats = new ClusterStats(this.markers, this.clusters);\n const map = this.getMap();\n this.clusters.forEach((cluster) => {\n if (cluster.markers.length === 1) {\n cluster.marker = cluster.markers[0];\n }\n else {\n cluster.marker = this.renderer.render(cluster, stats);\n if (this.onClusterClick) {\n cluster.marker.addListener(\"click\", \n /* istanbul ignore next */\n (event) => {\n google.maps.event.trigger(this, MarkerClustererEvents.CLUSTER_CLICK, cluster);\n this.onClusterClick(event, cluster, map);\n });\n }\n }\n cluster.marker.setMap(map);\n });\n }\n}\n\nexport { AbstractAlgorithm, AbstractViewportAlgorithm, Cluster, ClusterStats, DefaultRenderer, GridAlgorithm, MarkerClusterer, MarkerClustererEvents, NoopAlgorithm, SuperClusterAlgorithm, defaultOnClusterClickHandler, distanceBetweenPoints, extendBoundsToPaddedViewport, extendPixelBounds, filterMarkersToPaddedViewport, noop, pixelBoundsToLatLngBounds };\n//# sourceMappingURL=index.esm.js.map\n","import React, { useState, useEffect, memo } from 'react'\nimport { MarkerClusterer, MarkerClustererOptions } from '@googlemaps/markerclusterer'\n\nimport { useGoogleMap } from '../../map-context'\n\nexport type MarkerClustererOptionsSubset = Omit\n\nexport interface GoogleMarkerClustererProps {\n /** Render prop that exposes marker clusterer to children components\n *\n * The callback function should return a list of Marker components.\n */\n children: (markerClusterer: MarkerClusterer) => React.ReactElement,\n /** Subset of {@link MarkerClustererOptions} options\n *\n * ```\n * {\n * algorithm?: Algorithm;\n * renderer?: Renderer;\n * onClusterClick?: onClusterClickHandler;\n * }\n * ```\n */\n options: MarkerClustererOptionsSubset\n}\n\nexport const useGoogleMarkerClusterer = (options: MarkerClustererOptionsSubset): MarkerClusterer | null => {\n const map = useGoogleMap()\n\n const [markerClusterer, setMarkerClusterer] = useState(null)\n\n useEffect(() => {\n if (map && markerClusterer === null) {\n const markerCluster = new MarkerClusterer({ ...options, map })\n setMarkerClusterer(markerCluster)\n }\n }, [map])\n\n return markerClusterer\n}\n\n/** Wrapper around [@googlemaps/markerclusterer](https://github.com/googlemaps/js-markerclusterer)\n *\n * Accepts {@link MarkerClustererOptionsSubset} which is a subset of {@link MarkerClustererOptions}\n */\nfunction GoogleMarkerClusterer({ children, options }: GoogleMarkerClustererProps) {\n const markerClusterer = useGoogleMarkerClusterer(options)\n\n return markerClusterer !== null ? children(markerClusterer) : null\n}\n\nexport default memo(GoogleMarkerClusterer)\n","/* global google */\nimport * as React from 'react'\nimport * as ReactDOM from 'react-dom'\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\nimport invariant from 'invariant'\n\nconst eventMap = {\n onCloseClick: 'closeclick',\n onContentChanged: 'content_changed',\n onDomReady: 'domready',\n onPositionChanged: 'position_changed',\n onZindexChanged: 'zindex_changed',\n}\n\nconst updaterMap = {\n options(instance: google.maps.InfoWindow, options: google.maps.InfoWindowOptions): void {\n instance.setOptions(options)\n },\n position(\n instance: google.maps.InfoWindow,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ): void {\n instance.setPosition(position)\n },\n zIndex(instance: google.maps.InfoWindow, zIndex: number): void {\n instance.setZIndex(zIndex)\n },\n}\n\ninterface InfoWindowState {\n infoWindow: google.maps.InfoWindow | null\n}\n\nexport interface InfoWindowProps {\n /** Can be any MVCObject that exposes a LatLng position property and optionally a Point anchorPoint property for calculating the pixelOffset. The anchorPoint is the offset from the anchor's position to the tip of the InfoWindow. */\n anchor?: google.maps.MVCObject | undefined\n options?: google.maps.InfoWindowOptions | undefined\n /** The LatLng at which to display this InfoWindow. If the InfoWindow is opened with an anchor, the anchor's position will be used instead. */\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n /** All InfoWindows are displayed on the map in order of their zIndex, with higher values displaying in front of InfoWindows with lower values. By default, InfoWindows are displayed according to their latitude, with InfoWindows of lower latitudes appearing in front of InfoWindows at higher latitudes. InfoWindows are always displayed in front of markers. */\n zIndex?: number | undefined\n /** This event is fired when the close button was clicked. */\n onCloseClick?: (() => void) | undefined\n /** This event is fired when the
containing the InfoWindow's content is attached to the DOM. You may wish to monitor this event if you are building out your info window content dynamically. */\n onDomReady?: (() => void) | undefined\n /** This event is fired when the content property changes. */\n onContentChanged?: (() => void) | undefined\n /** This event is fired when the position property changes. */\n onPositionChanged?: (() => void) | undefined\n /** This event is fired when the InfoWindow's zIndex changes. */\n onZindexChanged?: (() => void) | undefined\n /** This callback is called when the infoWindow instance has loaded. It is called with the infoWindow instance. */\n onLoad?: ((infoWindow: google.maps.InfoWindow) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the infoWindow instance. */\n onUnmount?: ((infoWindow: google.maps.InfoWindow) => void) | undefined\n}\n\nexport class InfoWindow extends React.PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n containerElement: HTMLElement | null = null\n\n state: InfoWindowState = {\n infoWindow: null,\n }\n\n open = (infoWindow: google.maps.InfoWindow, anchor?: google.maps.MVCObject | undefined): void => {\n if (anchor) {\n infoWindow.open(this.context, anchor)\n } else if (infoWindow.getPosition()) {\n infoWindow.open(this.context)\n } else {\n invariant(\n false,\n `You must provide either an anchor (typically render it inside a ) or a position props for .`\n )\n }\n }\n\n setInfoWindowCallback = (): void => {\n if (this.state.infoWindow !== null && this.containerElement !== null) {\n this.state.infoWindow.setContent(this.containerElement)\n\n this.open(this.state.infoWindow, this.props.anchor)\n\n if (this.props.onLoad) {\n this.props.onLoad(this.state.infoWindow)\n }\n }\n }\n\n componentDidMount(): void {\n const infoWindow = new google.maps.InfoWindow({\n ...(this.props.options || {}),\n })\n\n this.containerElement = document.createElement('div')\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: infoWindow,\n })\n\n this.setState(() => {\n return {\n infoWindow,\n }\n }, this.setInfoWindowCallback)\n }\n\n componentDidUpdate(prevProps: InfoWindowProps): void {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.infoWindow,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.infoWindow !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.state.infoWindow.close()\n }\n }\n\n render(): React.ReactPortal | null {\n return this.containerElement ? (\n ReactDOM.createPortal(React.Children.only(this.props.children), this.containerElement)\n ) : (\n null\n )\n }\n}\n\nexport default InfoWindow\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n}\n\nconst updaterMap = {\n draggable(instance: google.maps.Polyline, draggable: boolean): void {\n instance.setDraggable(draggable)\n },\n editable(instance: google.maps.Polyline, editable: boolean): void {\n instance.setEditable(editable)\n },\n map(instance: google.maps.Polyline, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(instance: google.maps.Polyline, options: google.maps.PolylineOptions): void {\n instance.setOptions(options)\n },\n path(\n instance: google.maps.Polyline,\n path:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.LatLngLiteral[]\n ): void {\n instance.setPath(path)\n },\n visible(instance: google.maps.Polyline, visible: boolean): void {\n instance.setVisible(visible)\n },\n}\n\ninterface PolylineState {\n polyline: google.maps.Polyline | null\n}\n\nexport interface PolylineProps {\n options?: google.maps.PolylineOptions | undefined\n /** If set to true, the user can drag this shape over the map. The geodesic property defines the mode of dragging. */\n draggable?: boolean | undefined\n /** If set to true, the user can edit this shape by dragging the control points shown at the vertices and on each segment. */\n editable?: boolean | undefined\n /** Hides this poly if set to false. */\n visible?: boolean | undefined\n /** Sets the path. The ordered sequence of coordinates of the Polyline. This path may be specified using either a simple array of LatLngs, or an MVCArray of LatLngs. Note that if you pass a simple array, it will be converted to an MVCArray Inserting or removing LatLngs in the MVCArray will automatically update the polyline on the map. */\n path?:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.LatLngLiteral[]\n | undefined\n /** This event is fired when the DOM dblclick event is fired on the Polyline. */\n onDblClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user stops dragging the polyline. */\n onDragEnd?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user starts dragging the polyline. */\n onDragStart?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousedown event is fired on the Polyline. */\n onMouseDown?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousemove event is fired on the Polyline. */\n onMouseMove?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on Polyline mouseout. */\n onMouseOut?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on Polyline mouseover. */\n onMouseOver?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mouseup event is fired on the Polyline. */\n onMouseUp?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the Polyline is right-clicked on. */\n onRightClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM click event is fired on the Polyline. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is repeatedly fired while the user drags the polyline. */\n onDrag?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This callback is called when the polyline instance has loaded. It is called with the polyline instance. */\n onLoad?: ((polyline: google.maps.Polyline) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the polyline instance. */\n onUnmount?: ((polyline: google.maps.Polyline) => void) | undefined\n}\n\nexport class Polyline extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: PolylineState = {\n polyline: null,\n }\n\n setPolylineCallback = (): void => {\n if (this.state.polyline !== null && this.props.onLoad) {\n this.props.onLoad(this.state.polyline)\n }\n }\n\n componentDidMount(): void {\n const polyline = new google.maps.Polyline({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: polyline,\n })\n\n this.setState(function setPolyline() {\n return {\n polyline,\n }\n }, this.setPolylineCallback)\n }\n\n componentDidUpdate(prevProps: PolylineProps): void {\n if (this.state.polyline !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.polyline,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.polyline !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polyline)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.polyline.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default Polyline\n","/* global google */\nimport { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n}\n\nconst updaterMap = {\n draggable(instance: google.maps.Polygon, draggable: boolean): void {\n instance.setDraggable(draggable)\n },\n editable(instance: google.maps.Polygon, editable: boolean): void {\n instance.setEditable(editable)\n },\n map(instance: google.maps.Polygon, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(instance: google.maps.Polygon, options: google.maps.PolygonOptions): void {\n instance.setOptions(options)\n },\n path(\n instance: google.maps.Polygon,\n path:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.LatLngLiteral[]\n ): void {\n instance.setPath(path)\n },\n\n paths(\n instance: google.maps.Polygon,\n paths:\n | google.maps.MVCArray\n | google.maps.MVCArray>\n | google.maps.LatLng[]\n | google.maps.LatLng[][]\n | google.maps.LatLngLiteral[]\n | google.maps.LatLngLiteral[][]\n ): void {\n instance.setPaths(paths)\n },\n\n visible(instance: google.maps.Polygon, visible: boolean): void {\n instance.setVisible(visible)\n },\n}\n\ninterface PolygonState {\n polygon: google.maps.Polygon | null\n}\n\nexport interface PolygonProps {\n options?: google.maps.PolygonOptions\n /** If set to true, the user can drag this shape over the map. The geodesic property defines the mode of dragging. */\n draggable?: boolean\n /** If set to true, the user can edit this shape by dragging the control points shown at the vertices and on each segment. */\n editable?: boolean\n /** Hides this poly if set to false. */\n visible?: boolean\n /** Sets the first path. See Paths for more details. */\n path?:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.LatLngLiteral[]\n /** Sets the path for this polygon. The ordered sequence of coordinates that designates a closed loop. Unlike polylines, a polygon may consist of one or more paths. As a result, the paths property may specify one or more arrays of LatLng coordinates. Paths are closed automatically; do not repeat the first vertex of the path as the last vertex. Simple polygons may be defined using a single array of LatLngs. More complex polygons may specify an array of arrays. Any simple arrays are converted into MVCArrays. Inserting or removing LatLngs from the MVCArray will automatically update the polygon on the map. */\n paths?:\n | google.maps.MVCArray\n | google.maps.MVCArray>\n | google.maps.LatLng[]\n | google.maps.LatLng[][]\n | google.maps.LatLngLiteral[]\n | google.maps.LatLngLiteral[][]\n /** This event is fired when the DOM dblclick event is fired on the Polygon. */\n onDblClick?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the user stops dragging the polygon. */\n onDragEnd?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the user starts dragging the polygon. */\n onDragStart?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the DOM mousedown event is fired on the Polygon. */\n onMouseDown?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the DOM mousemove event is fired on the Polygon. */\n onMouseMove?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired on Polygon mouseout. */\n onMouseOut?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired on Polygon mouseover. */\n onMouseOver?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the DOM mouseup event is fired on the Polygon. */\n onMouseUp?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the Polygon is right-clicked on. */\n onRightClick?: (e: google.maps.MapMouseEvent) => void\n /** This event is fired when the DOM click event is fired on the Polygon. */\n onClick?: (e: google.maps.MapMouseEvent) => void\n /** This event is repeatedly fired while the user drags the polygon. */\n onDrag?: (e: google.maps.MapMouseEvent) => void\n /** This callback is called when the polygon instance has loaded. It is called with the polygon instance. */\n onLoad?: (polygon: google.maps.Polygon) => void\n /** This callback is called when the component unmounts. It is called with the polygon instance. */\n onUnmount?: (polygon: google.maps.Polygon) => void\n}\n\nexport class Polygon extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: PolygonState = {\n polygon: null,\n }\n\n setPolygonCallback = (): void => {\n if (this.state.polygon !== null && this.props.onLoad) {\n this.props.onLoad(this.state.polygon)\n }\n }\n\n componentDidMount(): void {\n const polygon = new google.maps.Polygon({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: polygon,\n })\n\n this.setState(function setPolygon() {\n return {\n polygon,\n }\n }, this.setPolygonCallback)\n }\n\n componentDidUpdate(prevProps: PolygonProps): void {\n if (this.state.polygon !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.polygon,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.polygon !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.polygon)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.polygon && this.state.polygon.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default Polygon\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onBoundsChanged: 'bounds_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRightClick: 'rightclick',\n}\n\nconst updaterMap = {\n bounds(\n instance: google.maps.Rectangle,\n bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral\n ): void {\n instance.setBounds(bounds)\n },\n draggable(instance: google.maps.Rectangle, draggable: boolean): void {\n instance.setDraggable(draggable)\n },\n editable(instance: google.maps.Rectangle, editable: boolean): void {\n instance.setEditable(editable)\n },\n map(instance: google.maps.Rectangle, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(instance: google.maps.Rectangle, options: google.maps.RectangleOptions): void {\n instance.setOptions(options)\n },\n visible(instance: google.maps.Rectangle, visible: boolean): void {\n instance.setVisible(visible)\n },\n}\n\ninterface RectangleState {\n rectangle: google.maps.Rectangle | null\n}\n\nexport interface RectangleProps {\n options?: google.maps.RectangleOptions | undefined\n /** Sets the bounds of this rectangle. */\n bounds?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | undefined\n /** If set to true, the user can drag this rectangle over the map. */\n draggable?: boolean | undefined\n /** If set to true, the user can edit this rectangle by dragging the control points shown at the corners and on each edge. */\n editable?: boolean | undefined\n /** Hides this rectangle if set to false. */\n visible?: boolean | undefined\n /** Indicates whether this Rectangle handles mouse events. Defaults to true. */\n clickable?: boolean | undefined\n /** This event is fired when the DOM dblclick event is fired on the rectangle. */\n onDblClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user stops dragging the rectangle. */\n onDragEnd?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user starts dragging the rectangle. */\n onDragStart?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousedown event is fired on the rectangle. */\n onMouseDown?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousemove event is fired on the rectangle. */\n onMouseMove?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on rectangle mouseout. */\n onMouseOut?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on rectangle mouseover. */\n onMouseOver?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mouseup event is fired on the rectangle. */\n onMouseUp?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the rectangle is right-clicked on. */\n onRightClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM click event is fired on the rectangle. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is repeatedly fired while the user drags the rectangle. */\n onDrag?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the rectangle's bounds are changed. */\n onBoundsChanged?: (() => void) | undefined\n /** This callback is called when the rectangle instance has loaded. It is called with the rectangle instance. */\n onLoad?: ((rectangle: google.maps.Rectangle) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the rectangle instance. */\n onUnmount?: ((rectangle: google.maps.Rectangle) => void) | undefined\n}\n\nexport class Rectangle extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: RectangleState = {\n rectangle: null,\n }\n\n setRectangleCallback = (): void => {\n if (this.state.rectangle !== null && this.props.onLoad) {\n this.props.onLoad(this.state.rectangle)\n }\n }\n\n componentDidMount(): void {\n const rectangle = new google.maps.Rectangle({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: rectangle,\n })\n\n this.setState(function setRectangle() {\n return {\n rectangle,\n }\n }, this.setRectangleCallback)\n }\n\n componentDidUpdate(prevProps: RectangleProps): void {\n if (this.state.rectangle !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.rectangle,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.rectangle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.rectangle)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.rectangle.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default Rectangle\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onCenterChanged: 'center_changed',\n onClick: 'click',\n onDblClick: 'dblclick',\n onDrag: 'drag',\n onDragEnd: 'dragend',\n onDragStart: 'dragstart',\n onMouseDown: 'mousedown',\n onMouseMove: 'mousemove',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRadiusChanged: 'radius_changed',\n onRightClick: 'rightclick',\n}\n\nconst updaterMap = {\n center(instance: google.maps.Circle, center: google.maps.LatLng): void {\n instance.setCenter(center)\n },\n draggable(instance: google.maps.Circle, draggable: boolean): void {\n instance.setDraggable(draggable)\n },\n editable(instance: google.maps.Circle, editable: boolean): void {\n instance.setEditable(editable)\n },\n map(instance: google.maps.Circle, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(instance: google.maps.Circle, options: google.maps.CircleOptions): void {\n instance.setOptions(options)\n },\n radius(instance: google.maps.Circle, radius: number): void {\n instance.setRadius(radius)\n },\n visible(instance: google.maps.Circle, visible: boolean): void {\n instance.setVisible(visible)\n },\n}\n\ninterface CircleState {\n circle: google.maps.Circle | null\n}\n\nexport interface CircleProps {\n options?: google.maps.CircleOptions | undefined\n\n // required\n /** sets the center of the circle */\n center: google.maps.LatLng | google.maps.LatLngLiteral\n\n // required\n /** Sets the radius of this circle (in meters) */\n radius: number\n /** If set to true, the user can drag this circle over the map */\n draggable?: boolean | undefined\n /** If set to true, the user can edit this circle by dragging the control points shown at the center and around the circumference of the circle. */\n editable?: boolean | undefined\n /** Hides this circle if set to false. */\n visible?: boolean | undefined\n /** This event is fired when the DOM dblclick event is fired on the circle. */\n onDblClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user stops dragging the circle. */\n onDragEnd?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the user starts dragging the circle. */\n onDragStart?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousedown event is fired on the circle. */\n onMouseDown?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mousemove event is fired on the circle. */\n onMouseMove?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on circle mouseout. */\n onMouseOut?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired on circle mouseover. */\n onMouseOver?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM mouseup event is fired on the circle. */\n onMouseUp?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the circle is right-clicked on. */\n onRightClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM click event is fired on the circle. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is repeatedly fired while the user drags the circle. */\n onDrag?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the circle's center is changed. */\n onCenterChanged?: (() => void) | undefined\n /** This event is fired when the circle's radius is changed. */\n onRadiusChanged?: (() => void) | undefined\n /** This callback is called when the circle instance has loaded. It is called with the circle instance. */\n onLoad?: ((circle: google.maps.Circle) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the circle instance. */\n onUnmount?: ((circle: google.maps.Circle) => void) | undefined\n}\n\nexport class Circle extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: CircleState = {\n circle: null,\n }\n\n setCircleCallback = (): void => {\n if (this.state.circle !== null && this.props.onLoad) {\n this.props.onLoad(this.state.circle)\n }\n }\n\n componentDidMount(): void {\n const circle = new google.maps.Circle({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: circle,\n })\n\n this.setState(function setCircle() {\n return {\n circle,\n }\n }, this.setCircleCallback)\n }\n\n componentDidUpdate(prevProps: CircleProps): void {\n if (this.state.circle !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.circle,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.circle !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.circle)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.circle && this.state.circle.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default Circle\n","import * as React from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onAddFeature: 'addfeature',\n onClick: 'click',\n onDblClick: 'dblclick',\n onMouseDown: 'mousedown',\n onMouseOut: 'mouseout',\n onMouseOver: 'mouseover',\n onMouseUp: 'mouseup',\n onRemoveFeature: 'removefeature',\n onRemoveProperty: 'removeproperty',\n onRightClick: 'rightclick',\n onSetGeometry: 'setgeometry',\n onSetProperty: 'setproperty',\n}\n\nconst updaterMap = {\n add(\n instance: google.maps.Data,\n features: google.maps.Data.Feature | google.maps.Data.FeatureOptions\n ): void {\n instance.add(features)\n },\n addgeojson(\n instance: google.maps.Data,\n geojson: object,\n options?: google.maps.Data.GeoJsonOptions | undefined\n ): void {\n instance.addGeoJson(geojson, options)\n },\n contains(instance: google.maps.Data, feature: google.maps.Data.Feature): void {\n instance.contains(feature)\n },\n foreach(instance: google.maps.Data, callback: (feature: google.maps.Data.Feature) => void): void {\n instance.forEach(callback)\n },\n loadgeojson(\n instance: google.maps.Data,\n url: string,\n options: google.maps.Data.GeoJsonOptions,\n callback: (features: google.maps.Data.Feature[]) => void\n ): void {\n instance.loadGeoJson(url, options, callback)\n },\n overridestyle(\n instance: google.maps.Data,\n feature: google.maps.Data.Feature,\n style: google.maps.Data.StyleOptions\n ): void {\n instance.overrideStyle(feature, style)\n },\n remove(instance: google.maps.Data, feature: google.maps.Data.Feature): void {\n instance.remove(feature)\n },\n revertstyle(instance: google.maps.Data, feature: google.maps.Data.Feature): void {\n instance.revertStyle(feature)\n },\n controlposition(instance: google.maps.Data, controlPosition: google.maps.ControlPosition): void {\n instance.setControlPosition(controlPosition)\n },\n controls(instance: google.maps.Data, controls: string[] | null): void {\n instance.setControls(controls)\n },\n drawingmode(instance: google.maps.Data, mode: string | null): void {\n instance.setDrawingMode(mode)\n },\n map(instance: google.maps.Data, map: google.maps.Map): void {\n instance.setMap(map)\n },\n style(\n instance: google.maps.Data,\n style: google.maps.Data.StylingFunction | google.maps.Data.StyleOptions\n ): void {\n instance.setStyle(style)\n },\n togeojson(instance: google.maps.Data, callback: (feature: object) => void): void {\n instance.toGeoJson(callback)\n },\n}\n\ninterface DataState {\n data: google.maps.Data | null\n}\n\nexport interface DataProps {\n options?: google.maps.Data.DataOptions | undefined\n /** This event is fired when a feature is added to the collection. */\n onAddFeature?: ((e: google.maps.Data.AddFeatureEvent) => void) | undefined\n /** This event is fired for a click on the geometry. */\n onClick?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired for a double click on the geometry. */\n onDblClick?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired for a mousedown on the geometry. */\n onMouseDown?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired when the mouse leaves the area of the geometry. */\n onMouseOut?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired when the mouse enters the area of the geometry. */\n onMouseOver?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired for a mouseup on the geometry. */\n onMouseUp?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired for a rightclick on the geometry. */\n onRightClick?: ((e: google.maps.Data.MouseEvent) => void) | undefined\n /** This event is fired when a feature is removed from the collection. */\n onRemoveFeature?: ((e: google.maps.Data.RemoveFeatureEvent) => void) | undefined\n /** This event is fired when a feature's property is removed. */\n onRemoveProperty?: ((e: google.maps.Data.RemovePropertyEvent) => void) | undefined\n /** This event is fired when a feature's geometry is set. */\n onSetGeometry?: ((e: google.maps.Data.SetGeometryEvent) => void) | undefined\n /** This event is fired when a feature's property is set. */\n onSetProperty?: ((e: google.maps.Data.SetPropertyEvent) => void) | undefined\n /** This callback is called when the data instance has loaded. It is called with the data instance. */\n onLoad?: ((data: google.maps.Data) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the data instance. */\n onUnmount?: ((data: google.maps.Data) => void) | undefined\n}\n\nexport class Data extends React.PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: DataState = {\n data: null,\n }\n\n setDataCallback = (): void => {\n if (this.state.data !== null && this.props.onLoad) {\n this.props.onLoad(this.state.data)\n }\n }\n\n componentDidMount(): void {\n const data = new google.maps.Data({\n ...(this.props.options || {}),\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: data,\n })\n\n this.setState(() => {\n return {\n data,\n }\n }, this.setDataCallback)\n }\n\n componentDidUpdate(prevProps: DataProps): void {\n if (this.state.data !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.data,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.data !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.data)\n }\n\n unregisterEvents(this.registeredEvents)\n\n if (this.state.data) {\n this.state.data.setMap(null)\n }\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default Data\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onClick: 'click',\n onDefaultViewportChanged: 'defaultviewport_changed',\n onStatusChanged: 'status_changed',\n}\n\nconst updaterMap = {\n options(instance: google.maps.KmlLayer, options: google.maps.KmlLayerOptions): void {\n instance.setOptions(options)\n },\n url(instance: google.maps.KmlLayer, url: string): void {\n instance.setUrl(url)\n },\n zIndex(instance: google.maps.KmlLayer, zIndex: number): void {\n instance.setZIndex(zIndex)\n },\n}\n\ninterface KmlLayerState {\n kmlLayer: google.maps.KmlLayer | null\n}\n\nexport interface KmlLayerProps {\n options?: google.maps.KmlLayerOptions | undefined\n /** The URL of the KML document to display. */\n url?: string | undefined\n /** The z-index of the layer. */\n zIndex?: number | undefined\n /** This event is fired when a feature in the layer is clicked. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the KML layers default viewport has changed. */\n onDefaultViewportChanged?: (() => void) | undefined | undefined\n /** This event is fired when the KML layer has finished loading. At this point it is safe to read the status property to determine if the layer loaded successfully. */\n onStatusChanged?: (() => void) | undefined | undefined\n /** This callback is called when the kmlLayer instance has loaded. It is called with the kmlLayer instance. */\n onLoad?: ((kmlLayer: google.maps.KmlLayer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the kmlLayer instance. */\n onUnmount?: ((kmlLayer: google.maps.KmlLayer) => void) | undefined\n}\n\nexport class KmlLayer extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: KmlLayerState = {\n kmlLayer: null,\n }\n\n setKmlLayerCallback = (): void => {\n if (this.state.kmlLayer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.kmlLayer)\n }\n }\n\n componentDidMount(): void {\n const kmlLayer = new google.maps.KmlLayer({\n ...this.props.options,\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: kmlLayer,\n })\n\n this.setState(function setLmlLayer() {\n return {\n kmlLayer,\n }\n }, this.setKmlLayerCallback)\n }\n\n componentDidUpdate(prevProps: KmlLayerProps): void {\n if (this.state.kmlLayer !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.kmlLayer,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.kmlLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.kmlLayer)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.kmlLayer.setMap(null)\n }\n }\n\n render():null {\n return null\n }\n}\n\nexport default KmlLayer\n","import { PositionDrawProps } from \"../../types\"\n\nexport function getOffsetOverride(\n containerElement: HTMLElement,\n getPixelPositionOffset?:( (offsetWidth: number, offsetHeight: number) => { x: number; y: number }) | undefined\n): { x: number; y: number } | {} {\n return typeof getPixelPositionOffset === 'function'\n ? getPixelPositionOffset(containerElement.offsetWidth, containerElement.offsetHeight)\n : {}\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLng(inst: any, Type: any): any { return new Type(inst.lat, inst.lng) }\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction createLatLngBounds(inst: any, Type: any): any {\n return new Type(\n new google.maps.LatLng(inst.ne.lat, inst.ne.lng),\n new google.maps.LatLng(inst.sw.lat, inst.sw.lng)\n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction ensureOfType(\n inst: google.maps.LatLng | google.maps.LatLngLiteral | undefined,\n type: any,\n factory: any\n): any {\n return inst instanceof type ? inst : factory(inst, type)\n}\n\nfunction ensureOfTypeBounds(\n inst: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral,\n type: any,\n factory: (inst: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral, type: any) => any\n): any {\n return inst instanceof type ? inst : factory(inst, type)\n}\n\nfunction getLayoutStylesByBounds(\n mapCanvasProjection: google.maps.MapCanvasProjection,\n offset: { x: number; y: number },\n bounds: google.maps.LatLngBounds\n): { left: string; top: string; width?: string | undefined; height?: string | undefined } {\n const ne = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getNorthEast())\n\n const sw = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(bounds.getSouthWest())\n\n if (ne && sw) {\n return {\n left: `${sw.x + offset.x}px`,\n top: `${ne.y + offset.y}px`,\n width: `${ne.x - sw.x - offset.x}px`,\n height: `${sw.y - ne.y - offset.y}px`,\n }\n }\n\n return {\n left: '-9999px',\n top: '-9999px',\n }\n}\n\nfunction getLayoutStylesByPosition (\n mapCanvasProjection: google.maps.MapCanvasProjection,\n offset: { x: number; y: number },\n position: google.maps.LatLng\n): { left: string; top: string } {\n const point = mapCanvasProjection && mapCanvasProjection.fromLatLngToDivPixel(position)\n\n if (point) {\n const { x, y } = point\n\n return {\n left: `${x + offset.x}px`,\n top: `${y + offset.y}px`,\n }\n }\n\n return {\n left: '-9999px',\n top: '-9999px',\n }\n}\n\nexport function getLayoutStyles (\n mapCanvasProjection: google.maps.MapCanvasProjection,\n offset: { x: number; y: number },\n bounds?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | undefined,\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n): PositionDrawProps {\n return bounds !== undefined\n ? getLayoutStylesByBounds(\n mapCanvasProjection,\n offset,\n ensureOfTypeBounds(bounds, google.maps.LatLngBounds, createLatLngBounds)\n )\n : getLayoutStylesByPosition(\n mapCanvasProjection,\n offset,\n ensureOfType(position, google.maps.LatLng, createLatLng)\n )\n}\n\nexport function arePositionsEqual (\n currentPosition: PositionDrawProps,\n previousPosition: PositionDrawProps\n): boolean {\n return currentPosition.left === previousPosition.left\n && currentPosition.top === previousPosition.top\n && currentPosition.width === previousPosition.height\n && currentPosition.height === previousPosition.height;\n}\n","import * as React from 'react'\nimport * as ReactDOM from 'react-dom'\n\nimport invariant from 'invariant'\n\nimport MapContext from '../../map-context'\n\nimport { getOffsetOverride, getLayoutStyles, arePositionsEqual } from './dom-helper'\n\ninterface OverlayViewState {\n paneEl: Element | null\n containerStyle: React.CSSProperties\n}\n\nfunction convertToLatLngString(latLngLike?: google.maps.LatLng | google.maps.LatLngLiteral | null) {\n if (!latLngLike) {\n return ''\n }\n\n const latLng = latLngLike instanceof google.maps.LatLng\n ? latLngLike\n : new google.maps.LatLng(latLngLike.lat, latLngLike.lng)\n\n return latLng + ''\n}\n\nfunction convertToLatLngBoundsString(latLngBoundsLike?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | null) {\n if (!latLngBoundsLike) {\n return ''\n }\n\n const latLngBounds = latLngBoundsLike instanceof google.maps.LatLngBounds\n ? latLngBoundsLike\n : new google.maps.LatLngBounds(\n new google.maps.LatLng(latLngBoundsLike.south, latLngBoundsLike.east),\n new google.maps.LatLng(latLngBoundsLike.north, latLngBoundsLike.west)\n )\n\n return latLngBounds + ''\n}\n\nexport type PaneNames = keyof google.maps.MapPanes\nexport interface OverlayViewProps {\n // required\n mapPaneName: PaneNames\n getPixelPositionOffset?: ((offsetWidth: number, offsetHeight: number) => { x: number; y: number }) | undefined\n bounds?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | undefined\n position?: google.maps.LatLng | google.maps.LatLngLiteral | undefined\n onLoad?: ((overlayView: google.maps.OverlayView) => void) | undefined\n onUnmount?: ((overlayView: google.maps.OverlayView) => void) | undefined\n}\n\nexport class OverlayView extends React.PureComponent {\n static FLOAT_PANE: PaneNames = `floatPane`\n static MAP_PANE: PaneNames = `mapPane`\n static MARKER_LAYER: PaneNames = `markerLayer`\n static OVERLAY_LAYER: PaneNames = `overlayLayer`\n static OVERLAY_MOUSE_TARGET: PaneNames = `overlayMouseTarget`\n\n static contextType = MapContext\n\n state: OverlayViewState = {\n paneEl: null,\n containerStyle: {\n // set initial position\n position: 'absolute'\n },\n }\n\n overlayView: google.maps.OverlayView\n containerRef: React.RefObject\n\n updatePane = (): void => {\n const mapPaneName = this.props.mapPaneName\n\n // https://developers.google.com/maps/documentation/javascript/3.exp/reference#MapPanes\n const mapPanes = this.overlayView.getPanes()\n invariant(\n !!mapPaneName,\n `OverlayView requires props.mapPaneName but got %s`,\n mapPaneName\n )\n\n if (mapPanes) {\n this.setState({\n paneEl: mapPanes[mapPaneName]\n })\n } else {\n this.setState({\n paneEl: null\n })\n }\n }\n onAdd = (): void => {\n this.updatePane()\n this.props.onLoad?.(this.overlayView)\n }\n\n onPositionElement = (): void => {\n const mapCanvasProjection = this.overlayView.getProjection()\n\n const offset = {\n x: 0,\n y: 0,\n ...(this.containerRef.current\n ? getOffsetOverride(this.containerRef.current, this.props.getPixelPositionOffset)\n : {}),\n }\n\n const layoutStyles = getLayoutStyles(\n mapCanvasProjection,\n offset,\n this.props.bounds,\n this.props.position\n )\n\n const { left, top, width, height } = this.state.containerStyle;\n if(!arePositionsEqual(layoutStyles, { left, top, width, height })) {\n this.setState({\n containerStyle: {\n ...layoutStyles,\n position: 'absolute'\n },\n })\n }\n }\n\n draw = (): void => {\n this.onPositionElement()\n }\n\n onRemove = (): void => {\n this.setState(() => ({\n paneEl: null\n }))\n // this.mapPaneEl = null\n this.props.onUnmount?.(this.overlayView)\n }\n\n constructor(props: OverlayViewProps) {\n super(props)\n\n this.containerRef = React.createRef()\n // You must implement three methods: onAdd(), draw(), and onRemove().\n const overlayView = new google.maps.OverlayView()\n overlayView.onAdd = this.onAdd\n overlayView.draw = this.draw\n overlayView.onRemove = this.onRemove\n this.overlayView = overlayView\n }\n\n componentDidMount(): void {\n // You must call setMap() with a valid Map object to trigger the call to\n // the onAdd() method and setMap(null) in order to trigger the onRemove() method.\n this.overlayView.setMap(this.context)\n }\n\n componentDidUpdate(prevProps: OverlayViewProps): void {\n const prevPositionString = convertToLatLngString(prevProps.position)\n const positionString = convertToLatLngString(this.props.position)\n const prevBoundsString = convertToLatLngBoundsString(prevProps.bounds)\n const boundsString = convertToLatLngBoundsString(this.props.bounds)\n\n if (prevPositionString !== positionString || prevBoundsString !== boundsString) {\n this.overlayView.draw()\n }\n if (prevProps.mapPaneName !== this.props.mapPaneName) {\n this.updatePane()\n }\n }\n\n componentWillUnmount(): void {\n this.overlayView.setMap(null)\n }\n\n render(): React.ReactPortal | React.ReactNode {\n const paneEl = this.state.paneEl\n if (paneEl) {\n return ReactDOM.createPortal(\n \n {React.Children.only(this.props.children)}\n
,\n paneEl\n )\n } else {\n return null\n }\n }\n}\n\nexport default OverlayView\n","import { PureComponent } from 'react'\n\nimport invariant from 'invariant'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\nimport { noop } from '../../utils/noop'\n\nconst eventMap = {\n onDblClick: 'dblclick',\n onClick: 'click',\n}\n\nconst updaterMap = {\n opacity(instance: google.maps.GroundOverlay, opacity: number): void {\n instance.setOpacity(opacity)\n },\n}\n\ninterface GroundOverlayState {\n groundOverlay: google.maps.GroundOverlay | null\n}\n\nexport interface GroundOverlayProps {\n options?: google.maps.GroundOverlayOptions | undefined\n /** The opacity of the overlay, expressed as a number between 0 and 1. Optional. Defaults to 1. */\n opacity?: number | undefined\n /** This event is fired when the DOM dblclick event is fired on the GroundOverlay. */\n onDblClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the DOM click event is fired on the GroundOverlay. */\n onClick?: ((e: google.maps.MapMouseEvent) => void) | undefined\n /** The url of the projected image */\n url: string\n /** The bounds that the image will be scaled to fit */\n bounds: google.maps.LatLngBounds\n /** This callback is called when the groundOverlay instance has loaded. It is called with the groundOverlay instance. */\n onLoad?: ((groundOverlay: google.maps.GroundOverlay) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the groundOverlay instance. */\n onUnmount?: ((groundOverlay: google.maps.GroundOverlay) => void) | undefined\n}\n\nexport class GroundOverlay extends PureComponent {\n public static defaultProps = {\n onLoad: noop,\n }\n\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: GroundOverlayState = {\n groundOverlay: null,\n }\n\n setGroundOverlayCallback = (): void => {\n if (this.state.groundOverlay !== null && this.props.onLoad) {\n this.props.onLoad(this.state.groundOverlay)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!this.props.url || !!this.props.bounds,\n `For GroundOverlay, url and bounds are passed in to constructor and are immutable after instantiated. This is the behavior of Google Maps JavaScript API v3 ( See https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay) Hence, use the corresponding two props provided by \\`react-google-maps-api\\`, url and bounds. In some cases, you'll need the GroundOverlay component to reflect the changes of url and bounds. You can leverage the React's key property to remount the component. Typically, just \\`key={url}\\` would serve your need. See https://github.com/tomchentw/react-google-maps/issues/655`\n )\n\n const groundOverlay = new google.maps.GroundOverlay(this.props.url, this.props.bounds, {\n ...this.props.options,\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: groundOverlay,\n })\n\n this.setState(function setGroundOverlay() {\n return {\n groundOverlay,\n }\n }, this.setGroundOverlayCallback)\n }\n\n componentDidUpdate(prevProps: GroundOverlayProps): void {\n if (this.state.groundOverlay !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.groundOverlay,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.groundOverlay) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.groundOverlay)\n }\n\n this.state.groundOverlay.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default GroundOverlay\n","export function noop(): void { return }\n","import { PureComponent } from 'react'\nimport invariant from 'invariant'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {}\n\nconst updaterMap = {\n data(\n instance: google.maps.visualization.HeatmapLayer,\n data:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.visualization.WeightedLocation[]\n ): void {\n instance.setData(data)\n },\n map(instance: google.maps.visualization.HeatmapLayer, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(\n instance: google.maps.visualization.HeatmapLayer,\n options: google.maps.visualization.HeatmapLayerOptions\n ): void {\n instance.setOptions(options)\n },\n}\n\ninterface HeatmapLayerState {\n heatmapLayer: google.maps.visualization.HeatmapLayer | null\n}\n\nexport interface HeatmapLayerProps {\n // required\n /** The data points to display. Required. */\n data:\n | google.maps.MVCArray\n | google.maps.LatLng[]\n | google.maps.visualization.WeightedLocation[]\n options?: google.maps.visualization.HeatmapLayerOptions\n /** This callback is called when the heatmapLayer instance has loaded. It is called with the heatmapLayer instance. */\n onLoad?: (heatmapLayer: google.maps.visualization.HeatmapLayer) => void\n /** This callback is called when the component unmounts. It is called with the heatmapLayer instance. */\n onUnmount?: (heatmapLayer: google.maps.visualization.HeatmapLayer) => void\n}\n\nexport class HeatmapLayer extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: HeatmapLayerState = {\n heatmapLayer: null,\n }\n\n setHeatmapLayerCallback = (): void => {\n if (this.state.heatmapLayer !== null && this.props.onLoad) {\n this.props.onLoad(this.state.heatmapLayer)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!google.maps.visualization,\n 'Did you include prop libraries={[\"visualization\"]} to ? %s',\n google.maps.visualization\n )\n\n invariant(!!this.props.data, 'data property is required in HeatmapLayer %s', this.props.data)\n\n const heatmapLayer = new google.maps.visualization.HeatmapLayer({\n ...(this.props.options || {}),\n data: this.props.data,\n map: this.context,\n })\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: heatmapLayer,\n })\n\n this.setState(function setHeatmapLayer() {\n return {\n heatmapLayer,\n }\n }, this.setHeatmapLayerCallback)\n }\n\n componentDidUpdate(prevProps: HeatmapLayerProps): void {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.heatmapLayer,\n })\n }\n\n componentWillUnmount(): void {\n if (this.state.heatmapLayer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.heatmapLayer)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.heatmapLayer.setMap(null)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default HeatmapLayer\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onCloseClick: 'closeclick',\n onPanoChanged: 'pano_changed',\n onPositionChanged: 'position_changed',\n onPovChanged: 'pov_changed',\n onResize: 'resize',\n onStatusChanged: 'status_changed',\n onVisibleChanged: 'visible_changed',\n onZoomChanged: 'zoom_changed',\n}\n\nconst updaterMap = {\n register(\n instance: google.maps.StreetViewPanorama,\n provider: (input: string) => google.maps.StreetViewPanoramaData,\n options: google.maps.PanoProviderOptions\n ): void {\n instance.registerPanoProvider(provider, options)\n },\n links(instance: google.maps.StreetViewPanorama, links: google.maps.StreetViewLink[]): void {\n instance.setLinks(links)\n },\n motionTracking(instance: google.maps.StreetViewPanorama, motionTracking: boolean): void {\n instance.setMotionTracking(motionTracking)\n },\n options(\n instance: google.maps.StreetViewPanorama,\n options: google.maps.StreetViewPanoramaOptions\n ): void {\n instance.setOptions(options)\n },\n pano(instance: google.maps.StreetViewPanorama, pano: string): void {\n instance.setPano(pano)\n },\n position(\n instance: google.maps.StreetViewPanorama,\n position: google.maps.LatLng | google.maps.LatLngLiteral\n ): void {\n instance.setPosition(position)\n },\n pov(instance: google.maps.StreetViewPanorama, pov: google.maps.StreetViewPov): void {\n instance.setPov(pov)\n },\n visible(instance: google.maps.StreetViewPanorama, visible: boolean): void {\n instance.setVisible(visible)\n },\n zoom(instance: google.maps.StreetViewPanorama, zoom: number): void {\n instance.setZoom(zoom)\n },\n}\n\ninterface StreetViewPanoramaState {\n streetViewPanorama: google.maps.StreetViewPanorama | null\n}\n\nexport interface StreetViewPanoramaProps {\n options?: google.maps.StreetViewPanoramaOptions | undefined\n /** This event is fired when the close button is clicked. */\n onCloseclick?: ((event: google.maps.MapMouseEvent) => void) | undefined\n /** This event is fired when the panorama's pano id changes. The pano may change as the user navigates through the panorama or the position is manually set. Note that not all position changes trigger a pano_changed. */\n onPanoChanged?: (() => void) | undefined\n /** This event is fired when the panorama's position changes. The position changes as the user navigates through the panorama or the position is set manually. */\n onPositionChanged?: (() => void) | undefined\n /** This event is fired when the panorama's point-of-view changes. The point of view changes as the pitch, zoom, or heading changes. */\n onPovChanged?: (() => void) | undefined\n /** Developers should trigger this event on the panorama when its div changes size: google.maps.event.trigger(panorama, 'resize'). */\n onResize?: (() => void) | undefined\n /** This event is fired after every panorama lookup by id or location, via setPosition() or setPano(). */\n onStatusChanged?: (() => void) | undefined\n /** This event is fired when the panorama's visibility changes. The visibility is changed when the Pegman is dragged onto the map, the close button is clicked, or setVisible() is called. */\n onVisibleChanged?: (() => void) | undefined\n /** This event is fired when the panorama's zoom level changes. */\n onZoomChange?: (() => void) | undefined\n /** This callback is called when the streetViewPanorama instance has loaded. It is called with the streetViewPanorama instance. */\n onLoad?: ((streetViewPanorama: google.maps.StreetViewPanorama) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the streetViewPanorama instance. */\n onUnmount?: ((streetViewPanorama: google.maps.StreetViewPanorama) => void) | undefined\n}\n\nexport class StreetViewPanorama extends PureComponent<\n StreetViewPanoramaProps,\n StreetViewPanoramaState\n> {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: StreetViewPanoramaState = {\n streetViewPanorama: null,\n }\n\n setStreetViewPanoramaCallback = (): void => {\n if (this.state.streetViewPanorama !== null && this.props.onLoad) {\n this.props.onLoad(this.state.streetViewPanorama)\n }\n }\n\n componentDidMount(): void {\n const streetViewPanorama = this.context.getStreetView()\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: streetViewPanorama,\n })\n\n this.setState(() => {\n return {\n streetViewPanorama,\n }\n }, this.setStreetViewPanoramaCallback)\n }\n\n componentDidUpdate(prevProps: StreetViewPanoramaProps): void {\n if (this.state.streetViewPanorama !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.streetViewPanorama,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.streetViewPanorama !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewPanorama)\n }\n\n unregisterEvents(this.registeredEvents)\n\n this.state.streetViewPanorama.setVisible(false)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default StreetViewPanorama\n","import { PureComponent } from 'react'\n\nimport MapContext from '../../map-context'\n\nexport interface StreetViewServiceProps {\n /** This callback is called when the streetViewService instance has loaded. It is called with the streetViewService instance. */\n onLoad?: ((streetViewService: google.maps.StreetViewService | null) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the streetViewService instance. */\n onUnmount?: ((streetViewService: google.maps.StreetViewService | null) => void) | undefined\n}\n\ninterface StreetViewServiceState {\n streetViewService: google.maps.StreetViewService | null\n}\n\nexport class StreetViewService extends PureComponent<\n StreetViewServiceProps,\n StreetViewServiceState\n> {\n static contextType = MapContext\n\n state = {\n streetViewService: null,\n }\n\n setStreetViewServiceCallback = (): void => {\n if (this.state.streetViewService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.streetViewService)\n }\n }\n\n componentDidMount(): void {\n const streetViewService = new google.maps.StreetViewService()\n\n this.setState(function setStreetViewService() {\n return {\n streetViewService,\n }\n }, this.setStreetViewServiceCallback)\n }\n\n componentWillUnmount(): void {\n if (this.state.streetViewService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.streetViewService)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default StreetViewService\n","import * as React from 'react'\nimport invariant from 'invariant'\n\ninterface DirectionsServiceState {\n directionsService: google.maps.DirectionsService | null\n}\n\nexport interface DirectionsServiceProps {\n // required for default functionality\n options: google.maps.DirectionsRequest\n\n // required for default functionality\n callback: (\n // required\n /** The directions response retrieved from the directions server. You can render these using a DirectionsRenderer or parse this object and render it yourself. You must display the warnings and copyrights as noted in the Google Maps Platform Terms of Service. Note that though this result is \"JSON-like,\" it is not strictly JSON, as it indirectly includes LatLng objects */\n result: google.maps.DirectionsResult | null,\n // required\n /** The status returned by the DirectionsService on the completion of a call to route(). Specify these by value, or by using the constant's name. For example, 'OK' or google.maps.DirectionsStatus.OK */\n status: google.maps.DirectionsStatus\n ) => void\n /** This callback is called when the directionsService instance has loaded. It is called with the directionsService instance. */\n onLoad?: ((directionsService: google.maps.DirectionsService) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the directionsService instance. */\n onUnmount?: ((directionsService: google.maps.DirectionsService) => void) | undefined\n}\n\nexport class DirectionsService extends React.PureComponent<\n DirectionsServiceProps,\n DirectionsServiceState\n> {\n state: DirectionsServiceState = {\n directionsService: null,\n }\n\n setDirectionsServiceCallback = (): void => {\n if (this.state.directionsService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.directionsService)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!this.props.options,\n 'DirectionsService expected options object as parameter, but got %s',\n this.props.options\n )\n\n const directionsService = new google.maps.DirectionsService()\n\n this.setState(function setDirectionsService() {\n return {\n directionsService,\n }\n }, this.setDirectionsServiceCallback)\n }\n\n componentDidUpdate(): void {\n if (this.state.directionsService !== null) {\n this.state.directionsService.route(this.props.options, this.props.callback)\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.directionsService !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsService)\n }\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default DirectionsService\n","import { PureComponent } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onDirectionsChanged: 'directions_changed',\n}\n\nconst updaterMap = {\n directions(\n instance: google.maps.DirectionsRenderer,\n directions: google.maps.DirectionsResult\n ): void {\n instance.setDirections(directions)\n },\n map(instance: google.maps.DirectionsRenderer, map: google.maps.Map): void {\n instance.setMap(map)\n },\n options(\n instance: google.maps.DirectionsRenderer,\n options: google.maps.DirectionsRendererOptions\n ): void {\n instance.setOptions(options)\n },\n panel(instance: google.maps.DirectionsRenderer, panel: HTMLElement): void {\n instance.setPanel(panel)\n },\n routeIndex(instance: google.maps.DirectionsRenderer, routeIndex: number): void {\n instance.setRouteIndex(routeIndex)\n },\n}\n\ninterface DirectionsRendererState {\n directionsRenderer: google.maps.DirectionsRenderer | null\n}\n\nexport interface DirectionsRendererProps {\n options?: google.maps.DirectionsRendererOptions | undefined\n /** The directions to display on the map and/or in a
panel, retrieved as a DirectionsResult object from DirectionsService. */\n directions?: google.maps.DirectionsResult | undefined\n /** The
in which to display the directions steps. */\n panel?: HTMLElement | undefined\n /** The index of the route within the DirectionsResult object. The default value is 0. */\n routeIndex?: number | undefined\n /** This event is fired when the rendered directions change, either when a new DirectionsResult is set or when the user finishes dragging a change to the directions path. */\n onDirectionsChanged?: (() => void) | undefined\n /** This callback is called when the directionsRenderer instance has loaded. It is called with the directionsRenderer instance. */\n onLoad?: ((directionsRenderer: google.maps.DirectionsRenderer) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the directionsRenderer instance. */\n onUnmount?: ((directionsRenderer: google.maps.DirectionsRenderer) => void) | undefined\n}\n\nexport class DirectionsRenderer extends PureComponent<\n DirectionsRendererProps,\n DirectionsRendererState\n> {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n state: DirectionsRendererState = {\n directionsRenderer: null,\n }\n\n setDirectionsRendererCallback = (): void => {\n if (this.state.directionsRenderer !== null) {\n this.state.directionsRenderer.setMap(this.context)\n\n if (this.props.onLoad) {\n this.props.onLoad(this.state.directionsRenderer)\n }\n }\n }\n\n componentDidMount(): void {\n const directionsRenderer = new google.maps.DirectionsRenderer(this.props.options)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: directionsRenderer,\n })\n\n this.setState(function setDirectionsRenderer() {\n return {\n directionsRenderer,\n }\n }, this.setDirectionsRendererCallback)\n }\n\n componentDidUpdate(prevProps: DirectionsRendererProps): void {\n if (this.state.directionsRenderer !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.directionsRenderer,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.directionsRenderer !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.directionsRenderer)\n }\n\n unregisterEvents(this.registeredEvents)\n\n if (this.state.directionsRenderer) {\n this.state.directionsRenderer.setMap(null)\n }\n }\n }\n\n render(): JSX.Element {\n return <>\n }\n}\n\nexport default DirectionsRenderer\n","import * as React from 'react'\n\nimport invariant from 'invariant'\n\ninterface DistanceMatrixServiceState {\n distanceMatrixService: google.maps.DistanceMatrixService | null\n}\n\nexport interface DistanceMatrixServiceProps {\n // required for default functionality\n options: google.maps.DistanceMatrixRequest\n\n // required for default functionality\n callback: (\n // required\n /** The response to a DistanceMatrixService request, consisting of the formatted origin and destination addresses, and a sequence of DistanceMatrixResponseRows, one for each corresponding origin address. */\n response: google.maps.DistanceMatrixResponse | null,\n // required\n /** The top-level status about the request in general returned by the DistanceMatrixService upon completion of a distance matrix request. Specify these by value, or by using the constant's name. For example, 'OK' or google.maps.DistanceMatrixStatus.OK. */\n status: google.maps.DistanceMatrixStatus\n ) => void\n /** This callback is called when the distanceMatrixService instance has loaded. It is called with the distanceMatrixService instance. */\n onLoad?: ((distanceMatrixService: google.maps.DistanceMatrixService) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the distanceMatrixService instance. */\n onUnmount?: ((distanceMatrixService: google.maps.DistanceMatrixService) => void) | undefined\n}\n\nexport class DistanceMatrixService extends React.PureComponent<\n DistanceMatrixServiceProps,\n DistanceMatrixServiceState\n> {\n state: DistanceMatrixServiceState = {\n distanceMatrixService: null,\n }\n\n setDistanceMatrixServiceCallback = (): void => {\n if (this.state.distanceMatrixService !== null && this.props.onLoad) {\n this.props.onLoad(this.state.distanceMatrixService)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!this.props.options,\n 'DistanceMatrixService expected options object as parameter, but go %s',\n this.props.options\n )\n\n const distanceMatrixService = new google.maps.DistanceMatrixService()\n\n this.setState(function setDistanceMatrixService() {\n return {\n distanceMatrixService,\n }\n }, this.setDistanceMatrixServiceCallback)\n }\n\n componentDidUpdate(): void {\n if (this.state.distanceMatrixService !== null) {\n this.state.distanceMatrixService.getDistanceMatrix(this.props.options, this.props.callback)\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.distanceMatrixService !== null && this.props.onUnmount) {\n this.props.onUnmount(this.state.distanceMatrixService)\n }\n }\n\n render(): null {\n return null\n }\n}\n\nexport default DistanceMatrixService\n","import { Children, createRef, PureComponent, type RefObject } from 'react'\n\nimport invariant from 'invariant'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nconst eventMap = {\n onPlacesChanged: 'places_changed',\n}\n\nconst updaterMap = {\n bounds(\n instance: google.maps.places.SearchBox,\n bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral\n ): void {\n instance.setBounds(bounds)\n },\n}\n\ninterface StandaloneSearchBoxState {\n searchBox: google.maps.places.SearchBox | null\n}\n\nexport interface StandaloneSearchBoxProps {\n /** The area towards which to bias query predictions. Predictions are biased towards, but not restricted to, queries targeting these bounds. */\n bounds?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | undefined\n options?: google.maps.places.SearchBoxOptions | undefined\n /** This event is fired when the user selects a query, getPlaces should be used to get new places. */\n onPlacesChanged?: (() => void) | undefined\n /** This callback is called when the searchBox instance has loaded. It is called with the searchBox instance. */\n onLoad?: ((searchBox: google.maps.places.SearchBox) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the searchBox instance. */\n onUnmount?: ((searchBox: google.maps.places.SearchBox) => void) | undefined\n}\n\nclass StandaloneSearchBox extends PureComponent<\n StandaloneSearchBoxProps,\n StandaloneSearchBoxState\n> {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n\n containerElement: RefObject = createRef()\n\n state: StandaloneSearchBoxState = {\n searchBox: null,\n }\n\n setSearchBoxCallback = (): void => {\n if (this.state.searchBox !== null && this.props.onLoad) {\n this.props.onLoad(this.state.searchBox)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!google.maps.places,\n 'You need to provide libraries={[\"places\"]} prop to component %s',\n google.maps.places\n )\n\n if (this.containerElement !== null && this.containerElement.current !== null) {\n const input = this.containerElement.current.querySelector('input')\n\n if (input !== null) {\n const searchBox = new google.maps.places.SearchBox(input, this.props.options)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: searchBox,\n })\n\n this.setState(function setSearchBox() {\n return {\n searchBox,\n }\n }, this.setSearchBoxCallback)\n }\n }\n }\n\n componentDidUpdate(prevProps: StandaloneSearchBoxProps): void {\n if (this.state.searchBox !== null) {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.searchBox,\n })\n }\n }\n\n componentWillUnmount(): void {\n if (this.state.searchBox !== null) {\n if (this.props.onUnmount) {\n this.props.onUnmount(this.state.searchBox)\n }\n\n unregisterEvents(this.registeredEvents)\n }\n }\n\n render(): JSX.Element {\n return
{Children.only(this.props.children)}
\n }\n}\n\nexport default StandaloneSearchBox\n","import { Children, createRef, PureComponent, type ReactChild, type RefObject } from 'react'\n\nimport { unregisterEvents, applyUpdatersToPropsAndRegisterEvents } from '../../utils/helper'\n\nimport MapContext from '../../map-context'\n\nimport invariant from 'invariant'\n\nconst eventMap = {\n onPlaceChanged: 'place_changed',\n}\n\nconst updaterMap = {\n bounds(\n instance: google.maps.places.Autocomplete,\n bounds: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral\n ): void {\n instance.setBounds(bounds)\n },\n restrictions(\n instance: google.maps.places.Autocomplete,\n restrictions: google.maps.places.ComponentRestrictions\n ): void {\n instance.setComponentRestrictions(restrictions)\n },\n fields(instance: google.maps.places.Autocomplete, fields: string[]): void {\n instance.setFields(fields)\n },\n options(\n instance: google.maps.places.Autocomplete,\n options: google.maps.places.AutocompleteOptions\n ): void {\n instance.setOptions(options)\n },\n types(instance: google.maps.places.Autocomplete, types: string[]): void {\n instance.setTypes(types)\n },\n}\n\ninterface AutocompleteState {\n autocomplete: google.maps.places.Autocomplete | null\n}\n\nexport interface AutocompleteProps {\n // required\n children: ReactChild\n /** The area in which to search for places. */\n bounds?: google.maps.LatLngBounds | google.maps.LatLngBoundsLiteral | undefined\n /** The component restrictions. Component restrictions are used to restrict predictions to only those within the parent component. For example, the country. */\n restrictions?: google.maps.places.ComponentRestrictions | undefined\n /** Fields to be included for the Place in the details response when the details are successfully retrieved. For a list of fields see PlaceResult. Nested fields can be specified with dot-paths (for example, \"geometry.location\"). */\n fields?: string[] | undefined\n options?: google.maps.places.AutocompleteOptions | undefined\n /** The types of predictions to be returned. For a list of supported types, see the developer's guide. If nothing is specified, all types are returned. In general only a single type is allowed. The exception is that you can safely mix the 'geocode' and 'establishment' types, but note that this will have the same effect as specifying no types. */\n types?: string[] | undefined\n /** This event is fired when a PlaceResult is made available for a Place the user has selected. If the user enters the name of a Place that was not suggested by the control and presses the Enter key, or if a Place Details request fails, the PlaceResult contains the user input in the name property, with no other properties defined. */\n onPlaceChanged?: (() => void) | undefined\n /** This callback is called when the autocomplete instance has loaded. It is called with the autocomplete instance. */\n onLoad?: ((autocomplete: google.maps.places.Autocomplete) => void) | undefined\n /** This callback is called when the component unmounts. It is called with the autocomplete instance. */\n onUnmount?: ((autocomplete: google.maps.places.Autocomplete) => void) | undefined\n className?: string | undefined\n}\n\nexport class Autocomplete extends PureComponent {\n static contextType = MapContext\n\n registeredEvents: google.maps.MapsEventListener[] = []\n containerElement: RefObject = createRef()\n\n state: AutocompleteState = {\n autocomplete: null,\n }\n\n setAutocompleteCallback = (): void => {\n if (this.state.autocomplete !== null && this.props.onLoad) {\n this.props.onLoad(this.state.autocomplete)\n }\n }\n\n componentDidMount(): void {\n invariant(\n !!google.maps.places,\n 'You need to provide libraries={[\"places\"]} prop to component %s',\n google.maps.places\n )\n\n // TODO: why current could be equal null?\n // @ts-ignore\n const input = this.containerElement.current.querySelector('input')\n\n if (input) {\n const autocomplete = new google.maps.places.Autocomplete(input, this.props.options)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps: {},\n nextProps: this.props,\n instance: autocomplete,\n })\n\n this.setState(function setAutocomplete() {\n return {\n autocomplete,\n }\n }, this.setAutocompleteCallback)\n }\n }\n\n componentDidUpdate(prevProps: AutocompleteProps): void {\n unregisterEvents(this.registeredEvents)\n\n this.registeredEvents = applyUpdatersToPropsAndRegisterEvents({\n updaterMap,\n eventMap,\n prevProps,\n nextProps: this.props,\n instance: this.state.autocomplete,\n })\n }\n\n componentWillUnmount(): void {\n if (this.state.autocomplete !== null) {\n unregisterEvents(this.registeredEvents)\n }\n }\n\n render(): JSX.Element {\n return
{Children.only(this.props.children)}
\n }\n}\n\nexport default Autocomplete\n","'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'];","export { CancelledError } from './retryer';\nexport { QueryCache } from './queryCache';\nexport { QueryClient } from './queryClient';\nexport { QueryObserver } from './queryObserver';\nexport { QueriesObserver } from './queriesObserver';\nexport { InfiniteQueryObserver } from './infiniteQueryObserver';\nexport { MutationCache } from './mutationCache';\nexport { MutationObserver } from './mutationObserver';\nexport { setLogger } from './logger';\nexport { notifyManager } from './notifyManager';\nexport { focusManager } from './focusManager';\nexport { onlineManager } from './onlineManager';\nexport { hashQueryKey, isError } from './utils';\nexport { isCancelledError } from './retryer';\nexport { dehydrate, hydrate } from './hydration'; // Types\n\nexport * from './types';","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport Box from '../../primitives/Box';\nimport type { IFormControlProps } from './types';\nimport { useFormControlProvider, FormControlContext } from './useFormControl';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst FormControl = (props: IFormControlProps, ref: any) => {\n const { htmlProps, ...context } = useFormControlProvider(props);\n const resolvedProps = usePropsResolution('FormControl', props, {\n isDisabled: context.isDisabled,\n isReadOnly: context.isReadOnly,\n isInvalid: context.isInvalid,\n // isRequired: context.isRequired,\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default memo(forwardRef(FormControl));\n","import React, { memo, forwardRef } from 'react';\nimport Box from '../../primitives/Box';\nimport Text from '../../primitives/Text';\nimport { useFormControlContext } from './useFormControl';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { IFormControlLabelProps } from './types';\nimport { mergeRefs } from '../../../utils';\nimport { combineContextAndProps } from '../../../utils';\n\nconst FormControlLabel = (\n { children, ...props }: IFormControlLabelProps,\n ref: any\n) => {\n const formControlContext = useFormControlContext();\n const combinedProps = combineContextAndProps(formControlContext, props);\n const _ref = React.useRef(null);\n const { _astrick, ...reslovedProps } = usePropsResolution(\n 'FormControlLabel',\n combinedProps,\n {\n isDisabled: combinedProps.isDisabled,\n isReadOnly: combinedProps.isReadOnly,\n isInvalid: combinedProps.isInvalid,\n // isRequired: combinedProps.isRequired,\n }\n );\n\n const requiredAsterisk = () => (\n \n *\n \n );\n const mergedRef = mergeRefs([_ref, ref]);\n React.useEffect(() => {\n if (_ref.current) {\n // RN web doesn't support htmlFor for Label element yet\n if (props.htmlFor) {\n _ref.current.htmlFor = props.htmlFor;\n } else if (reslovedProps?.nativeID) {\n _ref.current.htmlFor = reslovedProps.nativeID;\n }\n }\n }, [reslovedProps?.nativeID, props.htmlFor]);\n\n return (\n \n {children}\n {reslovedProps?.isRequired && requiredAsterisk()}\n \n );\n};\nexport default memo(forwardRef(FormControlLabel));\n","import React, { memo, forwardRef } from 'react';\nimport Box from '../../primitives/Box';\nimport { HStack } from '../../primitives/Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useFormControlContext } from './useFormControl';\nimport type { IFormControlErrorMessageProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { combineContextAndProps } from '../../../utils';\nimport Text from '../../primitives/Text';\n\nconst FormControlErrorMessage = (\n props: IFormControlErrorMessageProps,\n ref: any\n) => {\n const formControlContext = useFormControlContext();\n const combinedProps = combineContextAndProps(formControlContext, props);\n const {\n leftIcon,\n rightIcon,\n children,\n _text,\n _stack,\n ...resolvedProps\n } = usePropsResolution('FormControlErrorMessage', combinedProps, {\n isDisabled: combinedProps.isDisabled,\n isReadOnly: combinedProps.isReadOnly,\n isInvalid: combinedProps.isInvalid,\n // isRequired: combinedProps.isRequired,\n });\n let { startIcon, endIcon } = resolvedProps;\n\n if (rightIcon) {\n endIcon = rightIcon;\n }\n if (leftIcon) {\n startIcon = leftIcon;\n }\n if (endIcon && React.isValidElement(endIcon)) {\n endIcon = React.Children.map(\n endIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-end-icon-${index}`,\n ..._text,\n ...child.props,\n });\n }\n );\n }\n if (startIcon && React.isValidElement(startIcon)) {\n startIcon = React.Children.map(\n startIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-start-icon-${index}`,\n ..._text,\n ...child.props,\n });\n }\n );\n }\n\n React.useEffect(() => {\n resolvedProps?.setHasFeedbackText(true);\n return () => {\n resolvedProps?.setHasFeedbackText(false);\n };\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return resolvedProps?.isInvalid && children ? (\n \n \n {startIcon}\n {children}\n {endIcon}\n \n \n ) : null;\n};\n\nexport default memo(forwardRef(FormControlErrorMessage));\n","import React, { memo, forwardRef } from 'react';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useFormControlContext } from './useFormControl';\nimport type { IFormControlHelperTextProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { combineContextAndProps } from '../../../utils';\n\nconst FormControlHelperText = (\n props: IFormControlHelperTextProps,\n ref: any\n) => {\n const formControlContext = useFormControlContext();\n const combinedProps = combineContextAndProps(formControlContext, props);\n const resolvedProps = usePropsResolution(\n 'FormControlHelperText',\n combinedProps,\n {\n isDisabled: combinedProps.isDisabled,\n isReadOnly: combinedProps.isReadOnly,\n isInvalid: combinedProps.isInvalid,\n // isRequired: combinedProps.isRequired,\n }\n );\n\n React.useEffect(() => {\n resolvedProps?.setHasHelpText(true);\n return () => {\n resolvedProps?.setHasHelpText(false);\n };\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n );\n};\n\nexport default memo(forwardRef(FormControlHelperText));\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// We must avoid a circular dependency with @react-aria/utils, and this useLayoutEffect is\n// guarded by a check that it only runs on the client side.\n// eslint-disable-next-line rulesdir/useLayoutEffectRule\nimport React, {ReactNode, useContext, useLayoutEffect, useMemo, useState} from 'react';\n\n// To support SSR, the auto incrementing id counter is stored in a context. This allows\n// it to be reset on every request to ensure the client and server are consistent.\n// There is also a prefix string that is used to support async loading components\n// Each async boundary must be wrapped in an SSR provider, which appends to the prefix\n// and resets the current id counter. This ensures that async loaded components have\n// consistent ids regardless of the loading order.\ninterface SSRContextValue {\n prefix: string,\n current: number\n}\n\n// Default context value to use in case there is no SSRProvider. This is fine for\n// client-only apps. In order to support multiple copies of React Aria potentially\n// being on the page at once, the prefix is set to a random number. SSRProvider\n// will reset this to zero for consistency between server and client, so in the\n// SSR case multiple copies of React Aria is not supported.\nconst defaultContext: SSRContextValue = {\n prefix: String(Math.round(Math.random() * 10000000000)),\n current: 0\n};\n\nconst SSRContext = React.createContext(defaultContext);\n\ninterface SSRProviderProps {\n /** Your application here. */\n children: ReactNode\n}\n\n/**\n * When using SSR with React Aria, applications must be wrapped in an SSRProvider.\n * This ensures that auto generated ids are consistent between the client and server.\n */\nexport function SSRProvider(props: SSRProviderProps): JSX.Element {\n let cur = useContext(SSRContext);\n let value: SSRContextValue = useMemo(() => ({\n // If this is the first SSRProvider, start with an empty string prefix, otherwise\n // append and increment the counter.\n prefix: cur === defaultContext ? '' : `${cur.prefix}-${++cur.current}`,\n current: 0\n }), [cur]);\n\n return (\n \n {props.children}\n \n );\n}\n\nlet canUseDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/** @private */\nexport function useSSRSafeId(defaultId?: string): string {\n let ctx = useContext(SSRContext);\n\n // If we are rendering in a non-DOM environment, and there's no SSRProvider,\n // provide a warning to hint to the developer to add one.\n if (ctx === defaultContext && !canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n return useMemo(() => defaultId || `react-aria${ctx.prefix}-${++ctx.current}`, [defaultId]);\n}\n\n/**\n * Returns whether the component is currently being server side rendered or\n * hydrated on the client. Can be used to delay browser-specific rendering\n * until after hydration.\n */\nexport function useIsSSR(): boolean {\n let cur = useContext(SSRContext);\n let isInSSRContext = cur !== defaultContext;\n let [isSSR, setIsSSR] = useState(isInSSRContext);\n\n // If on the client, and the component was initially server rendered,\n // then schedule a layout effect to update the component after hydration.\n if (typeof window !== 'undefined' && isInSSRContext) {\n // This if statement technically breaks the rules of hooks, but is safe\n // because the condition never changes after mounting.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useLayoutEffect(() => {\n setIsSSR(false);\n }, []);\n }\n\n return isSSR;\n}\n","import React from 'react'; // CONTEXT\n\nfunction createValue() {\n var _isReset = false;\n return {\n clearReset: function clearReset() {\n _isReset = false;\n },\n reset: function reset() {\n _isReset = true;\n },\n isReset: function isReset() {\n return _isReset;\n }\n };\n}\n\nvar QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nexport var useQueryErrorResetBoundary = function useQueryErrorResetBoundary() {\n return React.useContext(QueryErrorResetBoundaryContext);\n}; // COMPONENT\n\nexport var QueryErrorResetBoundary = function QueryErrorResetBoundary(_ref) {\n var children = _ref.children;\n var value = React.useMemo(function () {\n return createValue();\n }, []);\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};","import invariant from 'invariant';\nimport ReanimatedEventEmitter from '../../ReanimatedEventEmitter';\nimport { val } from '../val';\nimport AnimatedNode from './AnimatedNode';\n\nconst NODE_MAPPING = new Map();\n\nfunction listener(data) {\n const node = NODE_MAPPING.get(data.id);\n node && node._callback(data.args);\n}\n\nclass AnimatedCall extends AnimatedNode {\n _callback;\n _args;\n\n constructor(args, jsFunction) {\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: Animated.call node args should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes`\n );\n super({ type: 'call', input: args }, args);\n this._callback = jsFunction;\n this._args = args;\n }\n\n toString() {\n return `AnimatedCall, id: ${this.__nodeID}`;\n }\n\n __attach() {\n super.__attach();\n NODE_MAPPING.set(this.__nodeID, this);\n if (NODE_MAPPING.size === 1) {\n ReanimatedEventEmitter.addListener('onReanimatedCall', listener);\n }\n }\n\n __detach() {\n NODE_MAPPING.delete(this.__nodeID);\n if (NODE_MAPPING.size === 0) {\n ReanimatedEventEmitter.removeAllListeners('onReanimatedCall');\n }\n super.__detach();\n }\n\n __onEvaluate() {\n this._callback(this._args.map(val));\n return 0;\n }\n}\n\nexport function createAnimatedCall(args, func) {\n return new AnimatedCall(args, func);\n}\n","import { unstable_batchedUpdates } from 'react-native';\nimport { createMMKV } from './createMMKV';\n\ninterface Listener {\n remove: () => void;\n}\n\n/**\n * Used for configuration of a single MMKV instance.\n */\nexport interface MMKVConfiguration {\n /**\n * The MMKV instance's ID. If you want to use multiple instances, make sure to use different IDs!\n *\n * @example\n * ```ts\n * const userStorage = new MMKV({ id: `user-${userId}-storage` })\n * const globalStorage = new MMKV({ id: 'global-app-storage' })\n * ```\n *\n * @default 'mmkv.default'\n */\n id: string;\n /**\n * The MMKV instance's root path. By default, MMKV stores file inside `$(Documents)/mmkv/`. You can customize MMKV's root directory on MMKV initialization:\n *\n * @example\n * ```ts\n * const temporaryStorage = new MMKV({ path: '/tmp/' })\n * ```\n */\n path?: string;\n /**\n * The MMKV instance's encryption/decryption key. By default, MMKV stores all key-values in plain text on file, relying on iOS's sandbox to make sure the file is encrypted. Should you worry about information leaking, you can choose to encrypt MMKV.\n *\n * Encryption keys can have a maximum length of 16 bytes.\n *\n * @example\n * ```ts\n * const secureStorage = new MMKV({ encryptionKey: 'my-encryption-key!' })\n * ```\n */\n encryptionKey?: string;\n}\n\n/**\n * Represents a single MMKV instance.\n */\ninterface MMKVInterface {\n /**\n * Set a value for the given `key`.\n */\n set: (key: string, value: boolean | string | number) => void;\n /**\n * Get a boolean value for the given `key`.\n *\n * @default false\n */\n getBoolean: (key: string) => boolean;\n /**\n * Get a string value for the given `key`.\n *\n * @default undefined\n */\n getString: (key: string) => string | undefined;\n /**\n * Get a number value for the given `key`.\n *\n * @default 0\n */\n getNumber: (key: string) => number;\n /**\n * Checks whether the given `key` is being stored in this MMKV instance.\n */\n contains: (key: string) => boolean;\n /**\n * Delete the given `key`.\n */\n delete: (key: string) => void;\n /**\n * Get all keys.\n *\n * @default []\n */\n getAllKeys: () => string[];\n /**\n * Delete all keys.\n */\n clearAll: () => void;\n /**\n * Sets (or updates) the encryption-key to encrypt all data in this MMKV instance with.\n *\n * To remove encryption, pass `undefined` as a key.\n *\n * Encryption keys can have a maximum length of 16 bytes.\n */\n recrypt: (key: string | undefined) => void;\n /**\n * Adds a value changed listener. The Listener will be called whenever any value\n * in this storage instance changes (set or delete).\n *\n * To unsubscribe from value changes, call `remove()` on the Listener.\n */\n addOnValueChangedListener: (\n onValueChanged: (key: string) => void\n ) => Listener;\n}\n\nexport type NativeMMKV = Pick<\n MMKVInterface,\n | 'clearAll'\n | 'contains'\n | 'delete'\n | 'getAllKeys'\n | 'getBoolean'\n | 'getNumber'\n | 'getString'\n | 'set'\n | 'recrypt'\n>;\n\nconst onValueChangedListeners = new Map void)[]>();\n\n/**\n * A single MMKV instance.\n */\nexport class MMKV implements MMKVInterface {\n private nativeInstance: NativeMMKV;\n private functionCache: Partial;\n private id: string;\n\n /**\n * Creates a new MMKV instance with the given Configuration.\n * If no custom `id` is supplied, `'mmkv.default'` will be used.\n */\n constructor(configuration: MMKVConfiguration = { id: 'mmkv.default' }) {\n this.id = configuration.id;\n this.nativeInstance = createMMKV(configuration);\n this.functionCache = {};\n }\n\n private get onValueChangedListeners() {\n if (!onValueChangedListeners.has(this.id)) {\n onValueChangedListeners.set(this.id, []);\n }\n return onValueChangedListeners.get(this.id)!;\n }\n\n private getFunctionFromCache(\n functionName: T\n ): NativeMMKV[T] {\n if (this.functionCache[functionName] == null) {\n this.functionCache[functionName] = this.nativeInstance[functionName];\n }\n return this.functionCache[functionName] as NativeMMKV[T];\n }\n\n private onValuesAboutToChange(keys: string[]) {\n if (this.onValueChangedListeners.length === 0) return;\n\n setImmediate(() => {\n unstable_batchedUpdates(() => {\n for (const key of keys) {\n for (const listener of this.onValueChangedListeners) {\n listener(key);\n }\n }\n });\n });\n }\n\n set(key: string, value: boolean | string | number): void {\n this.onValuesAboutToChange([key]);\n\n const func = this.getFunctionFromCache('set');\n return func(key, value);\n }\n getBoolean(key: string): boolean {\n const func = this.getFunctionFromCache('getBoolean');\n return func(key);\n }\n getString(key: string): string | undefined {\n const func = this.getFunctionFromCache('getString');\n return func(key);\n }\n getNumber(key: string): number {\n const func = this.getFunctionFromCache('getNumber');\n return func(key);\n }\n contains(key: string): boolean {\n const func = this.getFunctionFromCache('contains');\n return func(key);\n }\n delete(key: string): void {\n this.onValuesAboutToChange([key]);\n\n const func = this.getFunctionFromCache('delete');\n return func(key);\n }\n getAllKeys(): string[] {\n const func = this.getFunctionFromCache('getAllKeys');\n return func();\n }\n clearAll(): void {\n const keys = this.getAllKeys();\n this.onValuesAboutToChange(keys);\n\n const func = this.getFunctionFromCache('clearAll');\n return func();\n }\n recrypt(key: string | undefined): void {\n const func = this.getFunctionFromCache('recrypt');\n return func(key);\n }\n\n toString(): string {\n return `MMKV (${this.id}): [${this.getAllKeys().join(', ')}]`;\n }\n toJSON(): object {\n return {\n [this.id]: this.getAllKeys(),\n };\n }\n\n addOnValueChangedListener(onValueChanged: (key: string) => void): Listener {\n this.onValueChangedListeners.push(onValueChanged);\n\n return {\n remove: () => {\n const index = this.onValueChangedListeners.indexOf(onValueChanged);\n if (index !== -1) {\n this.onValueChangedListeners.splice(index, 1);\n }\n },\n };\n }\n}\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;","import { defineAnimation } from './util';\nimport { withTiming } from './timing';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n// resolves path to value for nested objects\n// if path cannot be resolved returns undefined\nexport function resolvePath(obj, path) {\n 'worklet';\n const keys = Array.isArray(path) ? path : [path];\n return keys.reduce((acc, current) => {\n if (Array.isArray(acc) && typeof current === 'number') {\n return acc[current];\n }\n else if (typeof acc === 'object' && current in acc) {\n return acc[current];\n }\n return undefined;\n }, obj);\n}\nexport function setPath(obj, path, value) {\n 'worklet';\n const keys = Array.isArray(path) ? path : [path];\n let currObj = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n // creates entry if there isn't one\n currObj = currObj;\n if (!currObj[keys[i]]) {\n // if next key is a number create an array\n if (typeof keys[i + 1] === 'number') {\n currObj[keys[i]] = [];\n }\n else {\n currObj[keys[i]] = {};\n }\n }\n currObj = currObj[keys[i]];\n }\n currObj[keys[keys.length - 1]] =\n value;\n}\nexport function withStyleAnimation(styleAnimations) {\n 'worklet';\n return defineAnimation({}, () => {\n 'worklet';\n const onFrame = (animation, now) => {\n let stillGoing = false;\n const entriesToCheck = [\n { value: animation.styleAnimations, path: [] },\n ];\n while (entriesToCheck.length > 0) {\n const currentEntry = entriesToCheck.pop();\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n }\n else if (typeof currentEntry.value === 'object' &&\n currentEntry.value.onFrame === undefined) {\n // nested object\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n }\n else {\n const currentStyleAnimation = currentEntry.value;\n if (currentStyleAnimation.finished) {\n continue;\n }\n const finished = currentStyleAnimation.onFrame(currentStyleAnimation, now);\n if (finished) {\n currentStyleAnimation.finished = true;\n if (currentStyleAnimation.callback) {\n currentStyleAnimation.callback(true);\n }\n }\n else {\n stillGoing = true;\n }\n if (ColorProperties.includes(currentEntry.path[0])) {\n currentStyleAnimation.current = processColor(currentStyleAnimation.current);\n }\n setPath(animation.current, currentEntry.path, currentStyleAnimation.current);\n }\n }\n return !stillGoing;\n };\n const onStart = (animation, value, now, previousAnimation) => {\n const entriesToCheck = [{ value: styleAnimations, path: [] }];\n while (entriesToCheck.length > 0) {\n const currentEntry = entriesToCheck.pop();\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n }\n else if (typeof currentEntry.value === 'object' &&\n currentEntry.value.onStart === undefined) {\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n }\n else {\n const prevAnimation = resolvePath(previousAnimation === null || previousAnimation === void 0 ? void 0 : previousAnimation.styleAnimations, currentEntry.path);\n let prevVal = resolvePath(value, currentEntry.path);\n if (prevAnimation && !prevVal) {\n prevVal = prevAnimation.current;\n }\n setPath(animation.current, currentEntry.path, prevVal);\n let currentAnimation;\n if (typeof currentEntry.value !== 'object' ||\n !currentEntry.value.onStart) {\n currentAnimation = withTiming(currentEntry.value, { duration: 0 });\n setPath(animation.styleAnimations, currentEntry.path, currentAnimation);\n }\n else {\n currentAnimation = currentEntry.value;\n }\n currentAnimation.onStart(currentAnimation, prevVal, now, prevAnimation);\n }\n }\n };\n const callback = (finished) => {\n if (!finished) {\n const animationsToCheck = [\n styleAnimations,\n ];\n while (animationsToCheck.length > 0) {\n const currentAnimation = animationsToCheck.pop();\n if (Array.isArray(currentAnimation)) {\n for (const element of currentAnimation) {\n animationsToCheck.push(element);\n }\n }\n else if (typeof currentAnimation === 'object' &&\n currentAnimation.onStart === undefined) {\n for (const value of Object.values(currentAnimation)) {\n animationsToCheck.push(value);\n }\n }\n else {\n const currentStyleAnimation = currentAnimation;\n if (!currentStyleAnimation.finished &&\n currentStyleAnimation.callback) {\n currentStyleAnimation.callback(false);\n }\n }\n }\n }\n };\n return {\n isHigherOrder: true,\n onFrame,\n onStart,\n current: {},\n styleAnimations,\n callback,\n };\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 * \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;","import 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\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 * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Creates an array of the own and inherited enumerable symbol properties\n * of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable string keyed properties of `object` that are\n * not omitted.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = baseRest(function(object, props) {\n if (object == null) {\n return {};\n }\n props = arrayMap(baseFlatten(props, 1), toKey);\n return basePick(object, baseDifference(getAllKeysIn(object), props));\n});\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = omit;\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 */\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 };","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 * 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 *\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) 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}","import React from 'react';\nimport Text from '../components/primitives/Text';\n\nexport const wrapStringChild = (children: any, textProps: any) => {\n return React.Children.map(children, (child) => {\n return typeof child === 'string' ||\n typeof child === 'number' ||\n (child?.type === React.Fragment &&\n (typeof child.props?.children === 'string' ||\n typeof child.props?.children === 'number')) ? (\n {child}\n ) : (\n child\n );\n });\n};\n","import React from 'react';\n\nexport const ExitAnimationContext = React.createContext({\n exited: true,\n setExited: (_exited: boolean) => {},\n});\n","import AnimatedValue from '../core/InternalAnimatedValue';\nimport { createAnimatedSet as set } from '../core/AnimatedSet';\nimport { createAnimatedCall as call } from '../core/AnimatedCall';\nimport { createAnimatedAlways as always } from '../core/AnimatedAlways';\nimport { createAnimatedCond as cond } from '../core/AnimatedCond';\n\n/**\n * evaluate given node and notify children\n * @param node - node to be evaluated\n * @param input - nodes (or one node) representing values which states input for node.\n * @param callback - after callback\n */\n\nexport function evaluateOnce(node, input = [], callback) {\n if (!Array.isArray(input)) {\n input = [input];\n }\n const done = new AnimatedValue(0);\n const evalNode = cond(\n done,\n 0,\n call([node, set(done, 1)], () => {\n callback && callback();\n for (let i = 0; i < input.length; i++) {\n input[i].__removeChild(alwaysNode);\n alwaysNode.__detach();\n }\n })\n );\n const alwaysNode = always(evalNode);\n for (let i = 0; i < input.length; i++) {\n input[i].__addChild(alwaysNode);\n alwaysNode.__attach();\n }\n}\n","import JSReanimated from './JSReanimated';\nimport { shouldBeUseWeb } from '../PlatformChecker';\nconst reanimatedJS = new JSReanimated();\nif (shouldBeUseWeb()) {\n global._frameTimestamp = null;\n global._setGlobalConsole = (_val) => {\n // noop\n };\n global._measure = () => {\n console.warn(\"[Reanimated] You can't use `measure` with Chrome Debugger or with web version\");\n return {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n pageX: 0,\n pageY: 0,\n };\n };\n global._scrollTo = () => {\n console.warn(\"[Reanimated] You can't use `scrollTo` with Chrome Debugger or with web version\");\n };\n global._setGestureState = () => {\n console.warn(\"[Reanimated] You can't use `setGestureState` with Chrome Debugger or with web version\");\n };\n}\nexport const _updatePropsJS = (updates, viewRef) => {\n if (viewRef._component) {\n const component = viewRef._component;\n const [rawStyles] = Object.keys(updates).reduce((acc, key) => {\n const value = updates[key];\n const index = typeof value === 'function' ? 1 : 0;\n acc[index][key] = value;\n return acc;\n }, [{}, {}]);\n if (typeof component.setNativeProps === 'function') {\n setNativeProps(component, rawStyles);\n }\n else if (Object.keys(component.props).length > 0) {\n Object.keys(component.props).forEach((key) => {\n if (!rawStyles[key]) {\n return;\n }\n const dashedKey = key.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase());\n component._touchableNode.setAttribute(dashedKey, rawStyles[key]);\n });\n }\n else {\n console.warn('It is not possible to manipulate component');\n }\n }\n};\nconst setNativeProps = (component, style) => {\n const previousStyle = component.previousStyle ? component.previousStyle : {};\n const currentStyle = Object.assign(Object.assign({}, previousStyle), style);\n component.previousStyle = currentStyle;\n component.setNativeProps({ style: currentStyle });\n};\nexport default reanimatedJS;\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { forwardRef } from 'react';\nimport { Animated } from 'react-native';\nimport type {\n ISupportedTransitions,\n ITransitionConfig,\n ITransitionProps,\n} from './types';\n\nconst transformStylesMap = {\n translateY: true,\n translateX: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n rotate: true,\n};\n\nconst defaultStyles = {\n opacity: 1,\n translateY: 0,\n translateX: 0,\n scale: 1,\n scaleX: 1,\n scaleY: 1,\n rotate: '0deg',\n};\n\nconst getAnimatedStyles = (animateValue: any) => (\n initial: ISupportedTransitions,\n to: ISupportedTransitions\n) => {\n const styles: any = {\n transform: [],\n };\n for (let key in initial) {\n if (key === 'transition') {\n continue;\n }\n\n if (key in transformStylesMap) {\n styles.transform?.push({\n [key]: animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n }),\n } as any);\n } else {\n styles[key] = animateValue.interpolate({\n inputRange: [0, 1],\n outputRange: [(initial as any)[key], (to as any)[key]],\n });\n }\n }\n\n return styles;\n};\n\nconst defaultTransitionConfig: ITransitionConfig = {\n type: 'timing',\n useNativeDriver: true,\n duration: 250,\n delay: 0,\n};\n\nexport const Transition = forwardRef(\n (\n {\n children,\n onTransitionComplete,\n visible = false,\n initial,\n animate,\n exit,\n style,\n as,\n ...rest\n }: ITransitionProps,\n ref: any\n ) => {\n const animateValue = React.useRef(new Animated.Value(0)).current;\n\n const Component = React.useMemo(() => {\n if (as) {\n return Animated.createAnimatedComponent(as);\n }\n return Animated.View;\n }, [as]);\n\n const [animationState, setAnimationState] = React.useState('');\n\n const prevVisible = React.useRef(visible);\n\n React.useEffect(() => {\n if (animationState === 'entering' || animationState === 'exiting') {\n const entryTransition = {\n ...defaultTransitionConfig,\n ...animate?.transition,\n };\n const exitTransition = {\n ...defaultTransitionConfig,\n ...exit?.transition,\n };\n\n const startAnimation = animationState === 'entering' ? 1 : 0;\n\n const transition = startAnimation ? entryTransition : exitTransition;\n\n Animated.sequence([\n // @ts-ignore - delay is present in defaultTransitionConfig\n Animated.delay(transition.delay),\n Animated[transition.type ?? 'timing'](animateValue, {\n toValue: startAnimation,\n useNativeDriver: true,\n ...transition,\n }),\n ]).start(() => {\n if (animationState === 'entering') {\n setAnimationState('entered');\n } else if (animationState === 'exiting') {\n setAnimationState('exited');\n }\n });\n // });\n }\n\n if (animationState === 'exited') {\n onTransitionComplete && onTransitionComplete('exited');\n } else if (animationState === 'entered') {\n onTransitionComplete && onTransitionComplete('entered');\n }\n // if (animationState === 'entering') {\n // //\n // }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationState, onTransitionComplete]);\n\n React.useEffect(() => {\n // if (!visible) {\n if (prevVisible.current !== visible && !visible) {\n setAnimationState('exiting');\n }\n\n if (visible) {\n setAnimationState('entering');\n }\n prevVisible.current = visible;\n // }\n }, [visible]);\n\n // If exit animation is present and state is exiting, we replace 'initial' with 'exit' animation\n\n // const initialState = { ...defaultStyles, ...initial };\n const initialState =\n animationState === 'exited' && exit\n ? { ...defaultStyles, ...exit }\n : { ...defaultStyles, ...initial };\n // const initialState = { ...defaultStyles, ...initial };\n\n // initial =\n // animationState === 'exited'\n // ? { ...defaultStyles, ...exit }\n // : { ...defaultStyles, ...initial };\n\n const animateState = { ...defaultStyles, ...animate };\n\n // const [initialState, setInitialState] = React.useState({\n // ...defaultStyles,\n // ...initial,\n // });\n // console.log('Initial state ', initial);\n\n // const [animateState] = React.useState({ ...defaultStyles, ...animate });\n const styles = React.useMemo(() => {\n // console.log('display state here', initial);\n return [\n getAnimatedStyles(animateValue)(\n initialState as ISupportedTransitions,\n animateState as ISupportedTransitions\n ),\n style,\n ];\n }, [animateValue, initial, animate, style]);\n\n return (\n \n {children}\n \n );\n }\n);\n","import React, { memo, forwardRef } from 'react';\nimport { ExitAnimationContext } from '../../primitives/Overlay/ExitAnimationContext';\nimport { Transition } from './Transition';\nimport type { IPresenceTransitionProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PresenceTransition = (\n { visible = false, onTransitionComplete, ...rest }: IPresenceTransitionProps,\n ref: any\n) => {\n // const [animationExited, setAnimationExited] = React.useState(!visible);\n\n const { setExited } = React.useContext(ExitAnimationContext);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(rest)) {\n return null;\n }\n\n return (\n {\n if (state === 'exited') {\n setExited(true);\n } else {\n setExited(false);\n }\n onTransitionComplete && onTransitionComplete(state);\n }}\n {...rest}\n ref={ref}\n />\n );\n};\n\nexport default memo(forwardRef(PresenceTransition));\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoApplication from './ExpoApplication';\n\n// @needsAudit\n/**\n * The human-readable version of the native application that may be displayed in the app store.\n * This is the `Info.plist` value for `CFBundleShortVersionString` on iOS and the version name set\n * by `version` in `app.json` on Android at the time the native app was built.\n * On web, this value is `null`.\n * @example `\"2.11.0\"`\n */\nexport const nativeApplicationVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeApplicationVersion || null\n : null;\n\n// @needsAudit\n/**\n * The internal build version of the native application that the app store may use to distinguish\n * between different binaries. This is the `Info.plist` value for `CFBundleVersion` on iOS (set with\n * `ios.buildNumber` value in `app.json` in a standalone app) and the version code set by\n * `android.versionCode` in `app.json` on Android at the time the native app was built. On web, this\n * value is `null`. The return type on Android and iOS is `string`.\n * @example iOS: `\"2.11.0\"`, Android: `\"114\"`\n */\nexport const nativeBuildVersion: string | null = ExpoApplication\n ? ExpoApplication.nativeBuildVersion || null\n : null;\n\n// @needsAudit\n/**\n * The human-readable name of the application that is displayed with the app's icon on the device's\n * home screen or desktop. On Android and iOS, this value is a `string` unless the name could not be\n * retrieved, in which case this value will be `null`. On web this value is `null`.\n * @example `\"Expo\"`, `\"Yelp\"`, `\"Instagram\"`\n */\nexport const applicationName: string | null = ExpoApplication\n ? ExpoApplication.applicationName || null\n : null;\n\n// @needsAudit\n/**\n * The ID of the application. On Android, this is the application ID. On iOS, this is the bundle ID.\n * On web, this is `null`.\n * @example `\"com.cocoacasts.scribbles\"`, `\"com.apple.Pages\"`\n */\nexport const applicationId: string | null = ExpoApplication\n ? ExpoApplication.applicationId || null\n : null;\n\n// @needsAudit\n/**\n * The value of [`Settings.Secure.ANDROID_ID`](https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID).\n * This is a hexadecimal `string` unique to each combination of app-signing key, user, and device.\n * The value may change if a factory reset is performed on the device or if an APK signing key changes.\n * For more information about how the platform handles `ANDROID_ID` in Android 8.0 (API level 26)\n * and higher, see [Android 8.0 Behavior Changes](https://developer.android.com/about/versions/oreo/android-8.0-changes.html#privacy-all).\n * On iOS and web, this value is `null`.\n * > In versions of the platform lower than Android 8.0 (API level 26), this value remains constant\n * > for the lifetime of the user's device. See the [ANDROID_ID](https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID)\n * > official docs for more information.\n * @example `\"dd96dec43fb81c97\"`\n * @platform android\n */\nexport const androidId: string | null = ExpoApplication ? ExpoApplication.androidId || null : null;\n\n// @needsAudit\n/**\n * Gets the referrer URL of the installed app with the [`Install Referrer API`](https://developer.android.com/google/play/installreferrer)\n * from the Google Play Store. In practice, the referrer URL may not be a complete, absolute URL.\n * @return A `Promise` that fulfills with a `string` of the referrer URL of the installed app.\n *\n * @example\n * ```ts\n * await Application.getInstallReferrerAsync();\n * // \"utm_source=google-play&utm_medium=organic\"\n * ```\n * @platform android\n */\nexport async function getInstallReferrerAsync(): Promise {\n if (!ExpoApplication.getInstallReferrerAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallReferrerAsync');\n }\n return await ExpoApplication.getInstallReferrerAsync();\n}\n\n// @needsAudit\n/**\n * Gets the iOS \"identifier for vendor\" ([IDFV](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor))\n * value, a string ID that uniquely identifies a device to the app’s vendor. This method may\n * sometimes return `nil`, in which case wait and call the method again later. This might happen\n * when the device has been restarted before the user has unlocked the device.\n *\n * The OS will change the vendor identifier if all apps from the current app's vendor have been\n * uninstalled.\n *\n * @return A `Promise` that fulfills with a `string` specifying the app's vendor ID. Apps from the\n * same vendor will return the same ID. See Apple's documentation for more information about the\n * vendor ID's semantics.\n *\n * @example\n * ```ts\n * await Application.getIosIdForVendorAsync();\n * // \"68753A44-4D6F-1226-9C60-0050E4C00067\"\n * ```\n * @platform ios\n */\nexport async function getIosIdForVendorAsync(): Promise {\n if (!ExpoApplication.getIosIdForVendorAsync) {\n throw new UnavailabilityError('expo-application', 'getIosIdForVendorAsync');\n }\n return (await ExpoApplication.getIosIdForVendorAsync()) ?? null;\n}\n\n// @docsMissing\nexport enum ApplicationReleaseType {\n UNKNOWN = 0,\n SIMULATOR = 1,\n ENTERPRISE = 2,\n DEVELOPMENT = 3,\n AD_HOC = 4,\n APP_STORE = 5,\n}\n\n// @needsAudit\n/**\n * Gets the iOS application release type.\n * @return Returns a promise which fulfills with an [`ApplicationReleaseType`](#applicationreleasetype).\n * @platform ios\n */\nexport async function getIosApplicationReleaseTypeAsync(): Promise {\n if (!ExpoApplication.getApplicationReleaseTypeAsync) {\n throw new UnavailabilityError('expo-application', 'getApplicationReleaseTypeAsync');\n }\n return await ExpoApplication.getApplicationReleaseTypeAsync();\n}\n\n// @needsAudit\n/**\n * Gets the current [Apple Push Notification (APN)](https://developer.apple.com/documentation/bundleresources/entitlements/aps-environment?language=objc)\n * service environment.\n * @return Returns a promise fulfilled with the string, either `'development'` or `'production'`,\n * based on the current APN environment.\n * @platform ios\n */\nexport async function getIosPushNotificationServiceEnvironmentAsync(): Promise {\n if (!ExpoApplication.getPushNotificationServiceEnvironmentAsync) {\n throw new UnavailabilityError('expo-application', 'getPushNotificationServiceEnvironmentAsync');\n }\n return await ExpoApplication.getPushNotificationServiceEnvironmentAsync();\n}\n\n// @needsAudit\n/**\n * Gets the time the app was installed onto the device, not counting subsequent updates. If the app\n * is uninstalled and reinstalled, this method returns the time the app was reinstalled.\n * - On iOS, this method uses the [`NSFileCreationDate`](https://developer.apple.com/documentation/foundation/nsfilecreationdate?language=objc)\n * of the app's document root directory.\n * - On Android, this method uses [`PackageInfo.firstInstallTime`](https://developer.android.com/reference/android/content/pm/PackageInfo.html#firstInstallTime).\n * - On web, this method returns `null`.\n *\n * @return Returns a `Promise` that fulfills with a `Date` object that specifies the time the app\n * was installed on the device.\n *\n * @example\n * ```ts\n * await Application.getInstallationTimeAsync();\n * // 2019-07-18T18:08:26.121Z\n * ```\n */\nexport async function getInstallationTimeAsync(): Promise {\n if (!ExpoApplication.getInstallationTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getInstallationTimeAsync');\n }\n const installationTime = await ExpoApplication.getInstallationTimeAsync();\n return new Date(installationTime);\n}\n\n// @needsAudit\n/**\n * Gets the last time the app was updated from the Google Play Store.\n * @return Returns a `Promise` that fulfills with a `Date` object that specifies the last time\n * the app was updated via the Google Play Store).\n *\n * @example\n * ```ts\n * await Application.getLastUpdateTimeAsync();\n * // 2019-07-18T21:20:16.887Z\n * ```\n * @platform android\n */\nexport async function getLastUpdateTimeAsync(): Promise {\n if (!ExpoApplication.getLastUpdateTimeAsync) {\n throw new UnavailabilityError('expo-application', 'getLastUpdateTimeAsync');\n }\n const lastUpdateTime = await ExpoApplication.getLastUpdateTimeAsync();\n return new Date(lastUpdateTime);\n}\n","export default {\n get name(): string {\n return 'ExpoApplication';\n },\n get applicationName(): null {\n return null;\n },\n get bundleId(): null {\n return null;\n },\n get nativeApplicationVersion(): null {\n return null;\n },\n get nativeBuildVersion(): null {\n return null;\n },\n get androidId(): null {\n return null;\n },\n async getInstallationTimeAsync(): Promise {\n return null;\n },\n};\n","/*\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","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\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 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}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { getDefaultState } from './mutation';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var MutationObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationObserver, _Subscribable);\n\n function MutationObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n\n _this.setOptions(options);\n\n _this.bindMethods();\n\n _this.updateResult();\n\n return _this;\n }\n\n var _proto = MutationObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n };\n\n _proto.setOptions = function setOptions(options) {\n this.options = this.client.defaultMutationOptions(options);\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation;\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.removeObserver(this);\n }\n };\n\n _proto.onMutationUpdate = function onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n var notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.reset = function reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n };\n\n _proto.mutate = function mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, _extends({}, this.options, {\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n }));\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n };\n\n _proto.updateResult = function updateResult() {\n var state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n\n var result = _extends({}, state, {\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n });\n\n this.currentResult = result;\n };\n\n _proto.notify = function notify(options) {\n var _this2 = this;\n\n notifyManager.batch(function () {\n // First trigger the mutate callbacks\n if (_this2.mutateOptions) {\n if (options.onSuccess) {\n _this2.mutateOptions.onSuccess == null ? void 0 : _this2.mutateOptions.onSuccess(_this2.currentResult.data, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(_this2.currentResult.data, null, _this2.currentResult.variables, _this2.currentResult.context);\n } else if (options.onError) {\n _this2.mutateOptions.onError == null ? void 0 : _this2.mutateOptions.onError(_this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(undefined, _this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n _this2.listeners.forEach(function (listener) {\n listener(_this2.currentResult);\n });\n }\n });\n };\n\n return MutationObserver;\n}(Subscribable);","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;","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;","/* global _frameTimestamp */\nimport { useEffect, useRef } from 'react';\nimport { startMapper, stopMapper, makeRemote, requestFrame, getTimestamp, makeMutable, } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport { buildWorkletsHash, canApplyOptimalisation, getStyleWithoutAnimations, hasColorProps, isAnimated, parseColors, styleDiff, validateAnimatedStyles, } from './utils';\nimport { makeViewDescriptorsSet, makeViewsRefSet, } from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nfunction prepareAnimation(animatedProp, lastAnimation, lastValue) {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => prepareAnimation(prop, lastAnimation && lastAnimation[index], lastValue && lastValue[index]));\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n }\n else if (lastValue.onFrame !== undefined) {\n if ((lastAnimation === null || lastAnimation === void 0 ? void 0 : lastAnimation.current) !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n }\n else if ((lastValue === null || lastValue === void 0 ? void 0 : lastValue.current) !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n }\n else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n animation.callStart = (timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(getTimestamp());\n animation.callStart = null;\n }\n else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) => prepareAnimation(animatedProp[key], lastAnimation && lastAnimation[key], lastValue && lastValue[key]));\n }\n}\nfunction runAnimations(animation, timestamp, key, result, animationsActive) {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (!runAnimations(entry, timestamp, index, result[key], animationsActive)) {\n allFinished = false;\n }\n });\n return allFinished;\n }\n else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n }\n else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (!runAnimations(animation[k], timestamp, k, result[key], animationsActive)) {\n allFinished = false;\n }\n });\n return allFinished;\n }\n else {\n result[key] = animation;\n return true;\n }\n}\nfunction styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive) {\n 'worklet';\n var _a, _b;\n const animations = (_a = state.animations) !== null && _a !== void 0 ? _a : {};\n const newValues = (_b = updater()) !== null && _b !== void 0 ? _b : {};\n const oldValues = state.last;\n let hasAnimations = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n else {\n delete animations[key];\n }\n }\n if (hasAnimations) {\n const frame = (timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n const updates = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n }\n else {\n allFinished = false;\n }\n }\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n if (!allFinished) {\n requestFrame(frame);\n }\n else {\n state.isAnimationRunning = false;\n }\n };\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n }\n else {\n requestFrame(frame);\n }\n }\n state.last = Object.assign({}, oldValues, newValues);\n const style = getStyleWithoutAnimations(state.last);\n if (style) {\n updateProps(viewDescriptors, style, maybeViewRef);\n }\n }\n else {\n state.isAnimationCancelled = true;\n state.animations = [];\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, newValues);\n if (diff) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n}\nfunction jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, animatedStyle, adapters = []) {\n 'worklet';\n var _a, _b;\n const animations = (_a = state.animations) !== null && _a !== void 0 ? _a : {};\n const newValues = (_b = updater()) !== null && _b !== void 0 ? _b : {};\n const oldValues = state.last;\n // extract animated props\n let hasAnimations = false;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n prepareAnimation(value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n function frame(timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n const updates = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n }\n else {\n allFinished = false;\n }\n });\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(viewDescriptors, updates, maybeViewRef, animatedStyle, adapters);\n }\n if (!allFinished) {\n requestFrame(frame);\n }\n else {\n state.isAnimationRunning = false;\n }\n }\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n if (_frameTimestamp) {\n frame(_frameTimestamp);\n }\n else {\n requestFrame(frame);\n }\n }\n }\n else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n // calculate diff\n const diff = styleDiff(oldValues, newValues);\n state.last = Object.assign({}, oldValues, newValues);\n if (Object.keys(diff).length !== 0) {\n updatePropsJestWrapper(viewDescriptors, diff, maybeViewRef, animatedStyle, adapters);\n }\n}\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(prop, currentKey) {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n }\n else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n }\n else if (currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(`invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`);\n }\n}\nexport function useAnimatedStyle(updater, dependencies, adapters) {\n var _a, _b;\n const viewsRef = makeViewsRefSet();\n const viewDescriptors = makeViewDescriptorsSet();\n const initRef = useRef();\n const inputs = Object.values((_a = updater._closure) !== null && _a !== void 0 ? _a : {});\n const adaptersArray = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue(true);\n const animatedStyle = useRef({});\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n }\n else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n if (!initRef.current) {\n const initialStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote({ last: initialStyle }),\n sharableViewDescriptors: makeMutable([]),\n };\n viewDescriptors.rebuildsharableViewDescriptors(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n initRef.current.sharableViewDescriptors);\n }\n dependencies.push((_b = initRef.current) === null || _b === void 0 ? void 0 : _b.sharableViewDescriptors.value);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, sharableViewDescriptors } = initRef.current;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n useEffect(() => {\n let fun;\n let updaterFn = updater;\n let optimalization = updater.__optimalization;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n if (canApplyOptimalisation(updaterFn) && !shouldBeUseWeb()) {\n if (hasColorProps(updaterFn())) {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n parseColors(diff);\n return diff;\n };\n }\n else {\n updaterFn = () => {\n 'worklet';\n const newValues = updaterFn();\n const oldValues = remoteState.last;\n const diff = styleDiff(oldValues, newValues);\n remoteState.last = Object.assign({}, oldValues, newValues);\n return diff;\n };\n }\n }\n else if (!shouldBeUseWeb()) {\n optimalization = 0;\n updaterFn = () => {\n 'worklet';\n const style = updaterFn();\n parseColors(style);\n return style;\n };\n }\n if (typeof updater.__optimalization !== undefined) {\n updaterFn.__optimalization = optimalization;\n }\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(sharableViewDescriptors, updater, remoteState, maybeViewRef, animationsActive, animatedStyle, adaptersArray);\n };\n }\n else {\n fun = () => {\n 'worklet';\n styleUpdater(sharableViewDescriptors, updaterFn, remoteState, maybeViewRef, animationsActive);\n };\n }\n const mapperId = startMapper(fun, inputs, [], updaterFn, \n // TODO fix this\n sharableViewDescriptors);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n // initRef.current = null;\n // viewsRef = null;\n animationsActive.value = false;\n };\n }, []);\n checkSharedValueUsage(initial.value);\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n }\n else {\n return { viewDescriptors, initial: initial, viewsRef };\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 * \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;","/**\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 */\nimport VirtualizedList from '../../vendor/react-native/VirtualizedList';\nexport default VirtualizedList;","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) 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;","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 *\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) 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;","/**\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;","export default {\n get forceTouchAvailable() {\n return false;\n },\n};\n","import React from 'react';\nimport PlatformConstants from '../PlatformConstants';\nimport createHandler from './createHandler';\nimport {\n BaseGestureHandlerProps,\n baseGestureHandlerProps,\n} from './gestureHandlerCommon';\n\nexport const forceTouchGestureHandlerProps = [\n 'minForce',\n 'maxForce',\n 'feedbackOnActivation',\n] as const;\n\nclass ForceTouchFallback extends React.Component {\n static forceTouchAvailable = false;\n componentDidMount() {\n console.warn(\n 'ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'\n );\n }\n render() {\n return this.props.children;\n }\n}\n\nexport type ForceTouchGestureHandlerEventPayload = {\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n\n /**\n * The pressure of a touch.\n */\n force: number;\n};\n\nexport interface ForceTouchGestureConfig {\n /**\n *\n * A minimal pressure that is required before handler can activate. Should be a\n * value from range `[0.0, 1.0]`. Default is `0.2`.\n */\n minForce?: number;\n\n /**\n * A maximal pressure that could be applied for handler. If the pressure is\n * greater, handler fails. Should be a value from range `[0.0, 1.0]`.\n */\n maxForce?: number;\n\n /**\n * Boolean value defining if haptic feedback has to be performed on\n * activation.\n */\n feedbackOnActivation?: boolean;\n}\n\nexport interface ForceTouchGestureHandlerProps\n extends BaseGestureHandlerProps,\n ForceTouchGestureConfig {}\n\nexport type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {\n forceTouchAvailable: boolean;\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of gestureHandlerCommon.ts file\nexport const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable\n ? createHandler<\n ForceTouchGestureHandlerProps,\n ForceTouchGestureHandlerEventPayload\n >({\n name: 'ForceTouchGestureHandler',\n allowedProps: [\n ...baseGestureHandlerProps,\n ...forceTouchGestureHandlerProps,\n ] as const,\n config: {},\n })\n : ForceTouchFallback;\n\n(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =\n PlatformConstants?.forceTouchAvailable || false;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import AnimatedNode, { getCallID, setCallID } from './AnimatedNode';\nimport { adapt } from './AnimatedBlock';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedCallFunc extends AnimatedNode {\n _previousCallID;\n _what;\n _args;\n _params;\n constructor(what, args, params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n invariant(\n args.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'args' argument should be of type AnimatedNode but got ${args}`\n );\n invariant(\n params.every((el) => el instanceof AnimatedNode),\n `Reanimated: every AnimatedCallFunc 'params' argument should be of type AnimatedNode but got ${params}`\n );\n super(\n {\n type: 'callfunc',\n what,\n args,\n params,\n },\n [...args]\n );\n this._what = what;\n this._args = args;\n this._params = params;\n }\n\n toString() {\n return `AnimatedCallFunc, id: ${this.__nodeID}`;\n }\n\n beginContext() {\n this._previousCallID = getCallID();\n setCallID(getCallID() + '/' + this.__nodeID);\n\n this._params.forEach((param, index) => {\n param.beginContext(this._args[index], this._previousCallID);\n });\n }\n\n endContext() {\n this._params.forEach((param) => {\n param.endContext();\n });\n setCallID(this._previousCallID);\n }\n\n __onEvaluate() {\n this.beginContext();\n const value = val(this._what);\n this.endContext();\n return value;\n }\n}\n\nexport function createAnimatedCallFunc(proc, args, params) {\n return new AnimatedCallFunc(\n proc,\n args.map((p) => adapt(p)),\n params\n );\n}\n","import AnimatedNode from './AnimatedNode';\nimport { createAnimatedCallFunc } from './AnimatedCallFunc';\nimport { createAnimatedParam } from './AnimatedParam';\nimport { val } from '../val';\nimport invariant from 'invariant';\n\nclass AnimatedFunction extends AnimatedNode {\n _what;\n\n constructor(what, ...params) {\n invariant(\n what instanceof AnimatedNode,\n `Reanimated: AnimatedCallFunc 'what' argument should be of type AnimatedNode but got ${what}`\n );\n super(\n {\n type: 'func',\n what,\n },\n [what, ...params]\n );\n this._what = what;\n this.__attach();\n }\n\n __onEvaluate() {\n return val(this._what);\n }\n\n toString() {\n return `AnimatedFunction, id: ${this.__nodeID}`;\n }\n}\n\nexport function createAnimatedFunction(cb) {\n const params = new Array(cb.length);\n for (let i = 0; i < params.length; i++) {\n params[i] = createAnimatedParam();\n }\n // eslint-disable-next-line node/no-callback-literal\n const what = cb(...params);\n const func = new AnimatedFunction(what, ...params);\n return (...args) => {\n if (args.length !== params.length) {\n throw new Error(\n 'Parameter mismatch when calling reanimated function. Expected ' +\n params.length +\n ' parameters, got ' +\n args.length +\n '.'\n );\n }\n return createAnimatedCallFunc(func, args, params);\n };\n}\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\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 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 { 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;","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) 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}","import { useTheme } from './useTheme';\nimport type { ITheme } from '../theme';\n/**\n *\n * @param props\n * @returns resolved fontFamily\n * @description Combination of fontWeight, fontStyle and font family is fully supported on web but on Android we need to pass the exact font family.\n * for e.g. If we load Roboto-Light-Italic.ttf using css, we can use fontFamily: Roboto, fontWeight: 300, fontStyle: italic on web, but same may not work on all the platforms. Other platform needs to set fontFamily: Roboto-Light-Italic in order to work.\n * So this function's purpose is to intake styles like fontFamily: Roboto, fontWeight: 300, fontStyle: Italic and return fontFamily: Roboto-Light-Italic depending upon the fontConfig token in typography theme.\n * This function depends upon fontConfig token in typography for mapping.\n */\nexport function useResolvedFontFamily(props: {\n fontFamily?: keyof ITheme['fonts'];\n fontStyle?: string;\n fontWeight?: keyof ITheme['fontWeights'];\n}) {\n const { fontFamily, fontStyle, fontWeight } = props;\n let newFontFamily = fontFamily;\n let newFontStyle = fontStyle;\n let newFontWeight = fontWeight;\n\n const { fontConfig, fontWeights, fonts } = useTheme();\n if (fontWeight && fontStyle && fontFamily && fontFamily in fonts) {\n // TODO: Fix typing remove any.\n const fontToken: any = fonts[fontFamily];\n if (fontConfig && fontConfig[fontToken]) {\n // If a custom font family is resolved, set fontWeight and fontStyle to undefined.\n // https://github.com/GeekyAnts/NativeBase/issues/3811\n // On Android, If a fontFamily and fontWeight both are passed, it behaves in a weird way and applies system fonts with passed fontWeight. This happens only for some fontWeights e.g. '700' or 'bold'. So, if we find a custom fontFamily, we remove fontWeight and fontStyle\n //@ts-ignore\n newFontWeight = undefined;\n //@ts-ignore\n newFontStyle = undefined;\n\n let fontWeightNumber =\n fontWeight in fontWeights ? fontWeights[fontWeight] : fontWeight;\n let fontVariant = fontConfig[fontToken][fontWeightNumber];\n\n if (typeof fontVariant === 'object') {\n if (fontVariant[fontStyle]) newFontFamily = fontVariant[fontStyle];\n } else {\n newFontFamily = fontVariant;\n }\n } else {\n newFontFamily = fonts[fontFamily];\n }\n }\n\n return {\n fontFamily: newFontFamily,\n fontWeight: newFontWeight,\n fontStyle: newFontStyle,\n };\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","export function shouldThrowError(suspense, _useErrorBoundary, params) {\n // Allow useErrorBoundary function to override throwing behavior on a per-error basis\n if (typeof _useErrorBoundary === 'function') {\n return _useErrorBoundary.apply(void 0, params);\n } // Allow useErrorBoundary to override suspense's throwing behavior\n\n\n if (typeof _useErrorBoundary === 'boolean') return _useErrorBoundary; // If suspense is enabled default to throwing errors\n\n return !!suspense;\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 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 };","/**\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;","export default class MutableValue {\n constructor(value, setter) {\n this._animation = null;\n this._listeners = [];\n this._id = MutableValue.MUTABLE_ID++;\n this._value = value;\n this._setter = setter;\n }\n get value() {\n return this._value;\n }\n set value(nextValue) {\n this._setter(nextValue);\n }\n // this changes the value finally and is supposed to be called from this._setter\n _setValue(newValue) {\n this._value = newValue;\n this._triggerListener();\n }\n addListener(listener) {\n this._listeners.push(listener);\n }\n _triggerListener() {\n for (let i = 0, len = this._listeners.length; i < len; ++i) {\n this._listeners[i]();\n }\n }\n}\nMutableValue.MUTABLE_ID = 1;\n","import { NativeModules } from 'react-native';\nexport class NativeReanimated {\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule === null || ReanimatedModule === void 0 ? void 0 : ReanimatedModule.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n }\n installCoreFunctions(valueSetter) {\n return this.InnerNativeModule.installCoreFunctions(valueSetter);\n }\n makeShareable(value) {\n return this.InnerNativeModule.makeShareable(value);\n }\n makeMutable(value) {\n return this.InnerNativeModule.makeMutable(value);\n }\n makeRemote(object = {}) {\n return this.InnerNativeModule.makeRemote(object);\n }\n registerSensor(sensorType, interval, sensorData) {\n return this.InnerNativeModule.registerSensor(sensorType, interval, sensorData);\n }\n unregisterSensor(sensorId) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n startMapper(mapper, inputs = [], outputs = [], updater, viewDescriptors) {\n return this.InnerNativeModule.startMapper(mapper, inputs, outputs, updater, viewDescriptors);\n }\n stopMapper(mapperId) {\n return this.InnerNativeModule.stopMapper(mapperId);\n }\n registerEventHandler(eventHash, eventHandler) {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n unregisterEventHandler(id) {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n getViewProp(viewTag, propName, callback) {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n enableLayoutAnimations(flag) {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n configureProps(uiProps, nativeProps) {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n}\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;","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;","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/**\n * Fuse.js v6.5.3 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2021 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n totalWeight += obj.weight;\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n }\n\n return { path, id, weight, src }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n // console.log(key)\n let value = this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (!isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=([^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '6.5.3';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","import React, { forwardRef, memo } from 'react';\nimport Box from '../../primitives/Box';\nimport type { ISlideProps } from './types';\nimport PresenceTransition from './PresenceTransition';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { Overlay } from '../../primitives/Overlay';\nimport { usePropsResolution } from '../../../hooks/';\n\nconst holderStyle: any = {\n top: {\n top: 0,\n right: 0,\n left: 0,\n },\n right: {\n right: 0,\n top: 0,\n bottom: 0,\n },\n bottom: {\n bottom: 0,\n right: 0,\n left: 0,\n },\n left: {\n left: 0,\n bottom: 0,\n top: 0,\n },\n};\n\nexport const Slide = memo(\n forwardRef(({ children, ...props }: ISlideProps, ref: any) => {\n const {\n in: visible,\n placement,\n overlay,\n duration,\n _overlay,\n ...resolvedProps\n } = usePropsResolution('Slide', props);\n const [containerOpacity, setContainerOpacity] = React.useState(0);\n const [size, setSize] = React.useState(0);\n const provideSize = (layoutSize: any) => {\n if (placement === 'right' || placement === 'left')\n setSize(layoutSize.width);\n else setSize(layoutSize.height);\n setContainerOpacity(1);\n };\n\n const transition = { duration };\n\n const animationStyle: any = {\n top: {\n initial: {\n translateY: -size,\n },\n animate: {\n translateY: 0,\n transition,\n },\n },\n bottom: {\n initial: {\n translateY: size,\n },\n animate: {\n translateY: 0,\n transition,\n },\n exit: {\n translateY: size,\n transition,\n },\n },\n left: {\n initial: {\n translateX: -size,\n },\n animate: {\n translateX: 0,\n transition,\n },\n },\n right: {\n initial: {\n translateX: size,\n },\n animate: {\n translateX: 0,\n transition,\n },\n },\n };\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n const slideComponent = (\n \n provideSize(e.nativeEvent.layout)}\n >\n {children}\n \n \n );\n\n if (overlay) {\n return (\n <>\n {slideComponent}\n \n );\n } else {\n return slideComponent;\n }\n })\n);\n\nexport default Slide;\n","import React from 'react';\nimport PresenceTransition from '../Transitions/PresenceTransition';\nimport type { IFadeProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { usePropsResolution } from '../../../hooks/';\n\nconst Fade = ({ children, ...props }: IFadeProps, ref?: any) => {\n const { in: animationState, ...resolvedProps } = usePropsResolution(\n 'Fade',\n props\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n {children}\n \n );\n};\n\nexport default React.memo(React.forwardRef(Fade));\n","import React, { forwardRef, memo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Backdrop from '../Backdrop';\nimport { Slide } from '../Transitions';\nimport { FocusScope } from '@react-native-aria/focus';\nimport { useControllableState, usePropsResolution } from '../../../hooks';\nimport { ModalContext } from './Context';\nimport Box from '../../primitives/Box';\nimport type { IModalProps } from './types';\nimport { Fade } from '../../composites/Transitions';\nimport { useKeyboardBottomInset } from '../../../utils';\nimport { Overlay } from '../../primitives/Overlay';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Modal = (\n {\n children,\n isOpen,\n onClose,\n defaultIsOpen,\n initialFocusRef,\n finalFocusRef,\n avoidKeyboard,\n closeOnOverlayClick = true,\n isKeyboardDismissable = true,\n overlayVisible = true,\n backdropVisible = true,\n animationPreset,\n ...rest\n }: IModalProps,\n ref: any\n) => {\n const bottomInset = useKeyboardBottomInset();\n const {\n contentSize,\n _backdrop,\n _backdropFade,\n _fade,\n _slide,\n ...resolvedProps\n } = usePropsResolution('Modal', rest);\n\n const [visible, setVisible] = useControllableState({\n value: isOpen,\n defaultValue: defaultIsOpen,\n onChange: (val) => {\n if (!val) onClose && onClose();\n },\n });\n\n const handleClose = React.useCallback(() => setVisible(false), [setVisible]);\n\n const child = (\n \n {children}\n \n );\n\n const contextValue = React.useMemo(() => {\n return {\n handleClose,\n contentSize,\n initialFocusRef,\n finalFocusRef,\n visible,\n };\n }, [handleClose, contentSize, initialFocusRef, finalFocusRef, visible]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(rest)) {\n return null;\n }\n // console.log('visible here', visible);\n return (\n \n \n \n {overlayVisible && backdropVisible && (\n {\n closeOnOverlayClick && handleClose();\n }}\n {..._backdrop}\n />\n )}\n \n {animationPreset === 'slide' ? (\n \n \n {child}\n \n \n ) : (\n \n \n {child}\n \n \n )}\n \n \n );\n};\n\nexport default memo(forwardRef(Modal));\n","import * as React from 'react';\nimport { Keyboard, Platform, KeyboardEvent } from 'react-native';\n\nexport const useKeyboardBottomInset = () => {\n const [bottom, setBottom] = React.useState(0);\n const subscriptions = React.useRef([]);\n\n React.useEffect(() => {\n function onKeyboardChange(e: KeyboardEvent) {\n if (\n e.startCoordinates &&\n e.endCoordinates.screenY < e.startCoordinates.screenY\n )\n setBottom(e.endCoordinates.height / 2);\n else setBottom(0);\n }\n\n if (Platform.OS === 'ios') {\n subscriptions.current = [\n Keyboard.addListener('keyboardWillChangeFrame', onKeyboardChange),\n ];\n } else {\n subscriptions.current = [\n Keyboard.addListener('keyboardDidHide', onKeyboardChange),\n Keyboard.addListener('keyboardDidShow', onKeyboardChange),\n ];\n }\n return () => {\n subscriptions.current.forEach((subscription) => {\n subscription.remove();\n });\n };\n }, [setBottom, subscriptions]);\n\n return bottom;\n};\n","import React, { memo, forwardRef } from 'react';\nimport Box, { IBoxProps } from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport { ModalContext } from './Context';\nimport { Platform } from 'react-native';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst ModalContent = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('ModalContent', props);\n const {\n contentSize,\n initialFocusRef,\n finalFocusRef,\n handleClose,\n visible,\n } = React.useContext(ModalContext);\n React.useEffect(() => {\n const finalRefVal = finalFocusRef ? finalFocusRef.current : null;\n if (visible) {\n if (initialFocusRef && initialFocusRef.current) {\n //@ts-ignore\n initialFocusRef.current.focus();\n }\n } else {\n if (finalRefVal) {\n //@ts-ignore\n finalRefVal.focus();\n }\n }\n }, [initialFocusRef, finalFocusRef, visible]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n );\n};\n\nexport default memo(forwardRef(ModalContent));\n","import React, { memo, forwardRef } from 'react';\nimport Box, { IBoxProps } from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { ScrollView, IScrollViewProps } from '../../basic/ScrollView';\n\nconst ModalBody = (\n { children, ...props }: IBoxProps & { _scrollview?: IScrollViewProps },\n ref?: any\n) => {\n const { _scrollview, ...resolvedProps } = usePropsResolution(\n 'ModalBody',\n props\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default memo(forwardRef(ModalBody));\n","import React, { memo, forwardRef } from 'react';\nimport { ModalContext } from './Context';\nimport { usePropsResolution } from '../../../hooks';\nimport { Pressable } from '../../primitives/Pressable';\nimport { CloseIcon } from '../../primitives/Icon/Icons';\nimport type { IButtonProps } from '../../primitives/Button';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport {\n useHover,\n useFocus,\n useIsPressed,\n} from '../../primitives/Pressable/Pressable';\nimport { composeEventHandlers } from '../../../utils';\nimport { useFocusRing } from '@react-native-aria/focus';\n\nconst ModalCloseButton = (props: IButtonProps, ref?: any) => {\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n _icon,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n ...resolvedProps\n } = usePropsResolution('ModalCloseButton', props, {\n isHovered,\n isPressed,\n isFocused,\n isFocusVisible,\n });\n const { handleClose } = React.useContext(ModalContext);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default memo(forwardRef(ModalCloseButton));\n","import React, { memo, forwardRef } from 'react';\nimport Box, { IBoxProps } from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst ModalFooter = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('ModalFooter', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(ModalFooter));\n","import React, { memo, forwardRef } from 'react';\nimport Box, { IBoxProps } from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst ModalHeader = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('ModalHeader', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(ModalHeader));\n","import React from 'react';\nimport { default as Box } from '../components/primitives/Box';\nimport type { SpaceType as ThemeSpaceType } from '../components/types';\nimport { ResponsiveQueryContext } from './useResponsiveQuery/ResponsiveQueryProvider';\n\ntype SpaceType =\n | 'gutter'\n | '2xs'\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl'\n | '2xl'\n | ThemeSpaceType;\n\n// Thanks @gregberge for code and @nandorojo for suggestion.\n// Original source: https://github.com/gregberge/react-flatten-children\ntype ReactChildArray = ReturnType;\nfunction flattenChildren(children: React.ReactNode): ReactChildArray {\n const childrenArray = React.Children.toArray(children);\n return childrenArray.reduce((flatChildren: ReactChildArray, child) => {\n if ((child as React.ReactElement).type === React.Fragment) {\n return flatChildren.concat(\n flattenChildren((child as React.ReactElement).props.children)\n );\n }\n flatChildren.push(child);\n return flatChildren;\n }, []);\n}\n\nconst getSpacedChildren = (\n children: JSX.Element[] | JSX.Element,\n space: undefined | SpaceType,\n axis: 'X' | 'Y',\n reverse: string,\n divider: JSX.Element | undefined\n): any => {\n let childrenArray = React.Children.toArray(flattenChildren(children));\n childrenArray =\n reverse === 'reverse' ? [...childrenArray].reverse() : childrenArray;\n\n const orientation = axis === 'X' ? 'vertical' : 'horizontal';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n // If there's a divider, we wrap it with a Box and apply vertical and horizontal margins else we add a spacer Box with height or width\n if (divider) {\n const spacingProp: object = {\n ...(axis === 'X' ? { mx: space } : { my: space }),\n };\n\n divider = React.cloneElement(divider, {\n orientation,\n ...spacingProp,\n });\n\n childrenArray = childrenArray.map((child: any, index: number) => {\n return (\n \n {child}\n {index < childrenArray.length - 1 && divider}\n \n );\n });\n } else {\n const spacingProp: object = {\n ...(axis === 'X' ? { width: space } : { height: space }),\n };\n childrenArray = childrenArray.map((child: any, index: number) => {\n return (\n \n {child}\n {disableCSSMediaQueries ? (\n index < childrenArray.length - 1 && \n ) : (\n <>\n )}\n \n );\n });\n }\n\n return childrenArray;\n};\n\nexport default getSpacedChildren;\n","import React, { memo, forwardRef } from 'react';\nimport { default as Box, InterfaceBoxProps } from '../Box';\nimport { getSpacedChildren } from '../../../utils';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { CustomProps, ResponsiveValue, SpaceType } from '../../types';\nimport { ResponsiveQueryContext } from '../../../utils/useResponsiveQuery/ResponsiveQueryProvider';\n\nexport interface InterfaceStackProps extends InterfaceBoxProps {\n /**\n * The divider element to use between elements.\n */\n divider?: JSX.Element;\n /**\n * The space between each stack item. Accepts Responsive values\n */\n space?: ResponsiveValue<\n 'gutter' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | SpaceType\n >;\n /**\n * Determines whether to reverse the direction of Stack Items.\n */\n reversed?: boolean;\n /**\n * The direction of the Stack Items.\n * @default column\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n /**\n * If true, the Stack will be in hovered state.\n */\n isHovered?: boolean;\n /**\n * If true, the Stack will be focused.\n */\n isFocused?: boolean;\n /**\n * If true, the Stack will be disabled.\n */\n isDisabled?: boolean;\n /**\n * If true, the Stack will be invalid.\n */\n isInvalid?: boolean;\n /**\n * If true, prevents the value of the children from being edited. Used with FormControls.\n */\n isReadOnly?: boolean;\n}\n\nexport type IStackProps = InterfaceStackProps & CustomProps<'Stack'>;\n\nconst Stack = ({ space, ...props }: IStackProps, ref?: any) => {\n const dir = props.direction;\n const {\n children,\n direction,\n reversed,\n divider,\n size,\n ...resolvedProps\n }: any = usePropsResolution(\n 'Stack',\n { ...props, size: space },\n {\n isDisabled: props.isDisabled,\n isHovered: props.isHovered,\n isFocused: props.isFocused,\n isInvalid: props.isInvalid,\n isReadOnly: props.isReadOnly,\n },\n { resolveResponsively: ['space', 'direction'] }\n );\n\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries = responsiveQueryContext.disableCSSMediaQueries;\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {getSpacedChildren(\n children,\n size,\n direction === 'row' ? 'X' : 'Y',\n reversed ? 'reverse' : 'normal',\n divider\n )}\n \n );\n};\n\nexport default memo(forwardRef(Stack));\n","import React from 'react';\nimport { G, Path } from '../nbSvg';\n\nexport const questionOutlineIconPath = (\n \n \n \n \n);\n","import React, { memo, forwardRef } from 'react';\nimport { useToken, usePropsResolution } from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { Svg, G } from './nbSvg';\nimport type { IIconProps } from './types';\nimport { questionOutlineIconPath } from './Icons/questionIconPath';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst SVG = makeStyledComponent(Svg);\n\nconst SVGIcon = ({ children, ...props }: IIconProps, ref: any) => {\n const {\n focusable,\n stroke,\n color,\n size,\n ...resolvedProps\n } = usePropsResolution('Icon', props);\n const strokeHex = useToken('colors', stroke || '');\n const colorHex = useToken('colors', color || '');\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n {React.Children.count(children) > 0 ? (\n \n {React.Children.map(children, (child, i) => (\n \n ))}\n \n ) : (\n questionOutlineIconPath\n )}\n \n );\n};\nconst ChildPath = ({ element, fill, stroke: pathStroke }: any) => {\n const pathStrokeColor = useToken('colors', pathStroke || '');\n const fillColor = useToken('colors', fill || '');\n\n if (!element) {\n return null;\n }\n\n return React.cloneElement(element, {\n fill: fillColor ? fillColor : 'currentColor',\n stroke: pathStrokeColor,\n });\n};\nexport default memo(forwardRef(SVGIcon));\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;","import React, { memo, forwardRef } from 'react';\nimport StackMain, { InterfaceStackProps } from './Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { CustomProps, ResponsiveValue } from '../../types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nexport interface InterfaceVStackProps extends InterfaceStackProps {\n /**\n * The direction of the Stack Items.\n * @default column\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n}\n\nexport type IVStackProps = InterfaceVStackProps & CustomProps<'VStack'>;\n\nconst VStack = (props: IVStackProps, ref?: any) => {\n const resolvedProps = usePropsResolution('VStack', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(VStack));\n","import React, { memo, forwardRef } from 'react';\nimport StackMain, { InterfaceStackProps } from './Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { CustomProps, ResponsiveValue } from '../../types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nexport interface InterfaceHStackProps extends InterfaceStackProps {\n /**\n * The direction of the Stack Items.\n * @default row\n */\n direction?: ResponsiveValue<\n 'column' | 'row' | 'column-reverse' | 'row-reverse'\n >;\n}\n\nexport type IHStackProps = InterfaceHStackProps & CustomProps<'HStack'>;\nconst HStack = (props: IHStackProps, ref?: any) => {\n const resolvedProps = usePropsResolution('HStack', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(HStack));\n","export const DefaultLayout = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\nexport const DefaultEntering = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.targetOriginX,\n originY: values.targetOriginY,\n width: values.targetWidth,\n height: values.targetHeight,\n },\n animations: {},\n };\n};\nexport const DefaultExiting = (values) => {\n 'worklet';\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {},\n };\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\n };\n} // Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\n\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\n\nexport function dehydrate(client, options) {\n var _options, _options2;\n\n options = options || {};\n var mutations = [];\n var queries = [];\n\n if (((_options = options) == null ? void 0 : _options.dehydrateMutations) !== false) {\n var shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(function (mutation) {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (((_options2 = options) == null ? void 0 : _options2.dehydrateQueries) !== false) {\n var shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(function (query) {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations: mutations,\n queries: queries\n };\n}\nexport function hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n var mutationCache = client.getMutationCache();\n var queryCache = client.getQueryCache();\n var mutations = dehydratedState.mutations || [];\n var queries = dehydratedState.queries || [];\n mutations.forEach(function (dehydratedMutation) {\n var _options$defaultOptio;\n\n mutationCache.build(client, _extends({}, options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations, {\n mutationKey: dehydratedMutation.mutationKey\n }), dehydratedMutation.state);\n });\n queries.forEach(function (dehydratedQuery) {\n var _options$defaultOptio2;\n\n var query = queryCache.get(dehydratedQuery.queryHash); // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < dehydratedQuery.state.dataUpdatedAt) {\n query.setState(dehydratedQuery.state);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, _extends({}, options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries, {\n queryKey: dehydratedQuery.queryKey,\n queryHash: dehydratedQuery.queryHash\n }), dehydratedQuery.state);\n });\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;","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\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","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar jotai = require('jotai');\nvar react = require('react');\n\nvar RESET = Symbol();\n\nfunction atomWithReset(initialValue) {\n var anAtom = jotai.atom(initialValue, function (get, set, update) {\n if (update === RESET) {\n set(anAtom, initialValue);\n } else {\n set(anAtom, typeof update === 'function' ? update(get(anAtom)) : update);\n }\n });\n return anAtom;\n}\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _extends() {\n _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 };\n\n return _extends.apply(this, arguments);\n}\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\nfunction _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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar WRITE_ATOM = 'w';\nvar RESTORE_ATOMS = 'h';\n\nfunction useResetAtom(anAtom, scope) {\n var ScopeContext = jotai.SECRET_INTERNAL_getScopeContext(scope);\n var store = react.useContext(ScopeContext).s;\n var setAtom = react.useCallback(function () {\n return store[WRITE_ATOM](anAtom, RESET);\n }, [store, anAtom]);\n return setAtom;\n}\n\nfunction useReducerAtom(anAtom, reducer, scope) {\n var _useAtom = jotai.useAtom(anAtom, scope),\n state = _useAtom[0],\n setState = _useAtom[1];\n\n var dispatch = react.useCallback(function (action) {\n setState(function (prev) {\n return reducer(prev, action);\n });\n }, [setState, reducer]);\n return [state, dispatch];\n}\n\nfunction atomWithReducer(initialValue, reducer) {\n var anAtom = jotai.atom(initialValue, function (get, set, action) {\n return set(anAtom, reducer(get(anAtom), action));\n });\n return anAtom;\n}\n\nfunction atomFamily(initializeAtom, areEqual) {\n var shouldRemove = null;\n var atoms = new Map();\n\n var createAtom = function createAtom(param) {\n var item;\n\n if (areEqual === undefined) {\n item = atoms.get(param);\n } else {\n for (var _iterator = _createForOfIteratorHelperLoose(atoms), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n\n if (areEqual(key, param)) {\n item = value;\n break;\n }\n }\n }\n\n if (item !== undefined) {\n if (shouldRemove != null && shouldRemove(item[1], param)) {\n atoms.delete(param);\n } else {\n return item[0];\n }\n }\n\n var newAtom = initializeAtom(param);\n atoms.set(param, [newAtom, Date.now()]);\n return newAtom;\n };\n\n createAtom.remove = function (param) {\n if (areEqual === undefined) {\n atoms.delete(param);\n } else {\n for (var _iterator2 = _createForOfIteratorHelperLoose(atoms), _step2; !(_step2 = _iterator2()).done;) {\n var _step2$value = _step2.value,\n key = _step2$value[0];\n\n if (areEqual(key, param)) {\n atoms.delete(key);\n break;\n }\n }\n }\n };\n\n createAtom.setShouldRemove = function (fn) {\n shouldRemove = fn;\n if (!shouldRemove) return;\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(atoms), _step3; !(_step3 = _iterator3()).done;) {\n var _step3$value = _step3.value,\n key = _step3$value[0],\n value = _step3$value[1];\n\n if (shouldRemove(value[1], key)) {\n atoms.delete(key);\n }\n }\n };\n\n return createAtom;\n}\n\nvar getWeakCacheItem = function getWeakCacheItem(cache, deps) {\n do {\n var _deps = deps,\n dep = _deps[0],\n rest = _deps.slice(1);\n\n var entry = cache.get(dep);\n\n if (!entry) {\n return;\n }\n\n if (!rest.length) {\n return entry[1];\n }\n\n cache = entry[0];\n deps = rest;\n } while (deps.length);\n};\n\nvar setWeakCacheItem = function setWeakCacheItem(cache, deps, item) {\n do {\n var _deps2 = deps,\n dep = _deps2[0],\n rest = _deps2.slice(1);\n\n var entry = cache.get(dep);\n\n if (!entry) {\n entry = [new WeakMap()];\n cache.set(dep, entry);\n }\n\n if (!rest.length) {\n entry[1] = item;\n return;\n }\n\n cache = entry[0];\n deps = rest;\n } while (deps.length);\n};\n\nvar createMemoizeAtom = function createMemoizeAtom() {\n var cache = new WeakMap();\n\n var memoizeAtom = function memoizeAtom(createAtom, deps) {\n var cachedAtom = getWeakCacheItem(cache, deps);\n\n if (cachedAtom) {\n return cachedAtom;\n }\n\n var createdAtom = createAtom();\n setWeakCacheItem(cache, deps, createdAtom);\n return createdAtom;\n };\n\n return memoizeAtom;\n};\n\nvar memoizeAtom$4 = createMemoizeAtom();\nfunction selectAtom(anAtom, selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = Object.is;\n }\n\n return memoizeAtom$4(function () {\n var refAtom = jotai.atom(function () {\n return {};\n });\n var derivedAtom = jotai.atom(function (get) {\n var slice = selector(get(anAtom));\n var ref = get(refAtom);\n\n if ('prev' in ref && equalityFn(ref.prev, slice)) {\n return ref.prev;\n }\n\n ref.prev = slice;\n return slice;\n });\n return derivedAtom;\n }, [anAtom, selector, equalityFn]);\n}\n\nfunction useAtomCallback(callback, scope) {\n var anAtom = react.useMemo(function () {\n return jotai.atom(null, function (get, set, _ref) {\n var arg = _ref[0],\n resolve = _ref[1],\n reject = _ref[2];\n\n try {\n resolve(callback(get, set, arg));\n } catch (e) {\n reject(e);\n }\n });\n }, [callback]);\n var invoke = jotai.useSetAtom(anAtom, scope);\n return react.useCallback(function (arg) {\n return new Promise(function (resolve, reject) {\n invoke([arg, resolve, reject]);\n });\n }, [invoke]);\n}\n\nvar memoizeAtom$3 = createMemoizeAtom();\n\nvar deepFreeze = function deepFreeze(obj) {\n if (typeof obj !== 'object' || obj === null) return;\n Object.freeze(obj);\n var propNames = Object.getOwnPropertyNames(obj);\n\n for (var _iterator = _createForOfIteratorHelperLoose(propNames), _step; !(_step = _iterator()).done;) {\n var name = _step.value;\n var value = obj[name];\n deepFreeze(value);\n }\n\n return obj;\n};\n\nfunction freezeAtom(anAtom) {\n return memoizeAtom$3(function () {\n var frozenAtom = jotai.atom(function (get) {\n return deepFreeze(get(anAtom));\n }, function (_get, set, arg) {\n return set(anAtom, arg);\n });\n return frozenAtom;\n }, [anAtom]);\n}\nfunction freezeAtomCreator(createAtom) {\n return function () {\n var anAtom = createAtom.apply(void 0, arguments);\n var origRead = anAtom.read;\n\n anAtom.read = function (get) {\n return deepFreeze(origRead(get));\n };\n\n return anAtom;\n };\n}\n\nvar memoizeAtom$2 = createMemoizeAtom();\n\nvar isWritable = function isWritable(atom) {\n return !!atom.write;\n};\n\nvar isFunction = function isFunction(x) {\n return typeof x === 'function';\n};\n\nfunction splitAtom(arrAtom, keyExtractor) {\n return memoizeAtom$2(function () {\n var mappingCache = new WeakMap();\n\n var getMapping = function getMapping(arr, prev) {\n var mapping = mappingCache.get(arr);\n\n if (mapping) {\n return mapping;\n }\n\n var prevMapping = prev && mappingCache.get(prev);\n var atomList = [];\n var keyList = [];\n arr.forEach(function (item, index) {\n var key = keyExtractor ? keyExtractor(item) : index;\n keyList[index] = key;\n var cachedAtom = prevMapping && prevMapping.atomList[prevMapping.keyList.indexOf(key)];\n\n if (cachedAtom) {\n atomList[index] = cachedAtom;\n return;\n }\n\n var itemRefAtom = jotai.atom(function () {\n return {};\n });\n\n var read = function read(get) {\n var itemRef = get(itemRefAtom);\n var ref = get(refAtom);\n var arr = get(arrAtom);\n var mapping = getMapping(arr, ref.prev);\n var index = mapping.keyList.indexOf(key);\n\n if (index < 0 || index >= arr.length) {\n if ('prev' in itemRef) {\n return itemRef.prev;\n }\n\n throw new Error('splitAtom: index out of bounds for read');\n }\n\n itemRef.prev = arr[index];\n return arr[index];\n };\n\n var write = function write(get, set, update) {\n var ref = get(refAtom);\n var arr = get(arrAtom);\n var mapping = getMapping(arr, ref.prev);\n var index = mapping.keyList.indexOf(key);\n\n if (index < 0 || index >= arr.length) {\n throw new Error('splitAtom: index out of bounds for write');\n }\n\n var nextItem = isFunction(update) ? update(arr[index]) : update;\n set(arrAtom, [].concat(arr.slice(0, index), [nextItem], arr.slice(index + 1)));\n };\n\n atomList[index] = isWritable(arrAtom) ? jotai.atom(read, write) : jotai.atom(read);\n });\n\n if (prevMapping && prevMapping.keyList.length === keyList.length && prevMapping.keyList.every(function (x, i) {\n return x === keyList[i];\n })) {\n mapping = prevMapping;\n } else {\n mapping = {\n atomList: atomList,\n keyList: keyList\n };\n }\n\n mappingCache.set(arr, mapping);\n return mapping;\n };\n\n var refAtom = jotai.atom(function () {\n return {};\n });\n\n var read = function read(get) {\n var ref = get(refAtom);\n var arr = get(arrAtom);\n var mapping = getMapping(arr, ref.prev);\n ref.prev = arr;\n return mapping.atomList;\n };\n\n var write = function write(get, set, atomToRemove) {\n var index = get(splittedAtom).indexOf(atomToRemove);\n\n if (index >= 0) {\n var arr = get(arrAtom);\n set(arrAtom, [].concat(arr.slice(0, index), arr.slice(index + 1)));\n }\n };\n\n var splittedAtom = isWritable(arrAtom) ? jotai.atom(read, write) : jotai.atom(read);\n return splittedAtom;\n }, keyExtractor ? [arrAtom, keyExtractor] : [arrAtom]);\n}\n\nfunction atomWithDefault(getDefault) {\n var EMPTY = Symbol();\n var overwrittenAtom = jotai.atom(EMPTY);\n var anAtom = jotai.atom(function (get) {\n var overwritten = get(overwrittenAtom);\n\n if (overwritten !== EMPTY) {\n return overwritten;\n }\n\n return getDefault(get);\n }, function (get, set, update) {\n if (update === RESET) {\n return set(overwrittenAtom, EMPTY);\n }\n\n return set(overwrittenAtom, typeof update === 'function' ? update(get(anAtom)) : update);\n });\n return anAtom;\n}\n\nvar memoizeAtom$1 = createMemoizeAtom();\nfunction waitForAll(atoms) {\n var createAtom = function createAtom() {\n var unwrappedAtoms = unwrapAtoms(atoms);\n var derivedAtom = jotai.atom(function (get) {\n var promises = [];\n var values = unwrappedAtoms.map(function (anAtom, index) {\n try {\n return get(anAtom);\n } catch (e) {\n if (e instanceof Promise) {\n promises[index] = e;\n } else {\n throw e;\n }\n }\n });\n\n if (promises.length) {\n throw Promise.all(promises);\n }\n\n return wrapResults(atoms, values);\n });\n return derivedAtom;\n };\n\n if (Array.isArray(atoms)) {\n return memoizeAtom$1(createAtom, atoms);\n }\n\n return createAtom();\n}\n\nvar unwrapAtoms = function unwrapAtoms(atoms) {\n return Array.isArray(atoms) ? atoms : Object.getOwnPropertyNames(atoms).map(function (key) {\n return atoms[key];\n });\n};\n\nvar wrapResults = function wrapResults(atoms, results) {\n return Array.isArray(atoms) ? results : Object.getOwnPropertyNames(atoms).reduce(function (out, key, idx) {\n var _extends2;\n\n return _extends({}, out, (_extends2 = {}, _extends2[key] = results[idx], _extends2));\n }, {});\n};\n\nfunction createJSONStorage(getStringStorage) {\n return {\n getItem: function getItem(key) {\n var value = getStringStorage().getItem(key);\n\n if (value instanceof Promise) {\n return value.then(function (v) {\n return JSON.parse(v || '');\n });\n }\n\n return JSON.parse(value || '');\n },\n setItem: function setItem(key, newValue) {\n return getStringStorage().setItem(key, JSON.stringify(newValue));\n },\n removeItem: function removeItem(key) {\n return getStringStorage().removeItem(key);\n }\n };\n}\nvar defaultStorage = createJSONStorage(function () {\n return localStorage;\n});\n\ndefaultStorage.subscribe = function (key, callback) {\n var storageEventCallback = function storageEventCallback(e) {\n if (e.key === key && e.newValue) {\n callback(JSON.parse(e.newValue));\n }\n };\n\n window.addEventListener('storage', storageEventCallback);\n return function () {\n window.removeEventListener('storage', storageEventCallback);\n };\n};\n\nfunction atomWithStorage(key, initialValue, storage) {\n if (storage === void 0) {\n storage = defaultStorage;\n }\n\n var getInitialValue = function getInitialValue() {\n try {\n var _value = storage.getItem(key);\n\n if (_value instanceof Promise) {\n return _value.catch(function () {\n return initialValue;\n });\n }\n\n return _value;\n } catch (_unused) {\n return initialValue;\n }\n };\n\n var baseAtom = jotai.atom(storage.delayInit ? initialValue : getInitialValue());\n\n baseAtom.onMount = function (setAtom) {\n var unsub;\n\n if (storage.subscribe) {\n unsub = storage.subscribe(key, setAtom);\n }\n\n if (storage.delayInit) {\n var _value2 = getInitialValue();\n\n if (_value2 instanceof Promise) {\n _value2.then(setAtom);\n } else {\n setAtom(_value2);\n }\n }\n\n return unsub;\n };\n\n var anAtom = jotai.atom(function (get) {\n return get(baseAtom);\n }, function (get, set, update) {\n if (update === RESET) {\n set(baseAtom, initialValue);\n return storage.removeItem(key);\n }\n\n var newValue = typeof update === 'function' ? update(get(baseAtom)) : update;\n set(baseAtom, newValue);\n return storage.setItem(key, newValue);\n });\n return anAtom;\n}\nfunction atomWithHash(key, initialValue, options) {\n var serialize = (options == null ? void 0 : options.serialize) || JSON.stringify;\n var deserialize = (options == null ? void 0 : options.deserialize) || JSON.parse;\n\n var _subscribe = (options == null ? void 0 : options.subscribe) || function (callback) {\n window.addEventListener('hashchange', callback);\n return function () {\n window.removeEventListener('hashchange', callback);\n };\n };\n\n var hashStorage = _extends({\n getItem: function getItem(key) {\n var searchParams = new URLSearchParams(location.hash.slice(1));\n var storedValue = searchParams.get(key);\n\n if (storedValue === null) {\n throw new Error('no value stored');\n }\n\n return deserialize(storedValue);\n },\n setItem: function setItem(key, newValue) {\n var searchParams = new URLSearchParams(location.hash.slice(1));\n searchParams.set(key, serialize(newValue));\n\n if (options != null && options.replaceState) {\n history.replaceState(null, '', '#' + searchParams.toString());\n } else {\n location.hash = searchParams.toString();\n }\n },\n removeItem: function removeItem(key) {\n var searchParams = new URLSearchParams(location.hash.slice(1));\n searchParams.delete(key);\n\n if (options != null && options.replaceState) {\n history.replaceState(null, '', '#' + searchParams.toString());\n } else {\n location.hash = searchParams.toString();\n }\n }\n }, (options == null ? void 0 : options.delayInit) && {\n delayInit: true\n }, {\n subscribe: function subscribe(key, setValue) {\n var callback = function callback() {\n var searchParams = new URLSearchParams(location.hash.slice(1));\n var str = searchParams.get(key);\n\n if (str !== null) {\n setValue(deserialize(str));\n } else {\n setValue(initialValue);\n }\n };\n\n return _subscribe(callback);\n }\n });\n\n return atomWithStorage(key, initialValue, hashStorage);\n}\n\nfunction atomWithObservable(createObservable) {\n var observableResultAtom = jotai.atom(function (get) {\n var _observable$Symbol$ob, _observable;\n\n var settlePromise = null;\n var observable = createObservable(get);\n var itself = (_observable$Symbol$ob = (_observable = observable)[Symbol.observable]) == null ? void 0 : _observable$Symbol$ob.call(_observable);\n\n if (itself) {\n observable = itself;\n }\n\n var dataAtom = jotai.atom(new Promise(function (resolve, reject) {\n settlePromise = function settlePromise(data, err) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n };\n }));\n\n var setData = function setData() {\n throw new Error('setting data without mount');\n };\n\n var dataListener = function dataListener(data) {\n if (settlePromise) {\n settlePromise(data);\n settlePromise = null;\n\n if (subscription && !setData) {\n subscription.unsubscribe();\n subscription = null;\n }\n } else {\n setData(data);\n }\n };\n\n var errorListener = function errorListener(error) {\n if (settlePromise) {\n settlePromise(null, error);\n settlePromise = null;\n\n if (subscription && !setData) {\n subscription.unsubscribe();\n subscription = null;\n }\n } else {\n setData(Promise.reject(error));\n }\n };\n\n var subscription = null;\n subscription = observable.subscribe(dataListener, errorListener);\n\n if (!settlePromise) {\n subscription.unsubscribe();\n subscription = null;\n }\n\n dataAtom.onMount = function (update) {\n setData = update;\n\n if (!subscription) {\n subscription = observable.subscribe(dataListener, errorListener);\n }\n\n return function () {\n var _subscription;\n\n (_subscription = subscription) == null ? void 0 : _subscription.unsubscribe();\n subscription = null;\n };\n };\n\n return {\n dataAtom: dataAtom,\n observable: observable\n };\n });\n var observableAtom = jotai.atom(function (get) {\n var _get = get(observableResultAtom),\n dataAtom = _get.dataAtom;\n\n return get(dataAtom);\n }, function (get, _set, data) {\n var _get2 = get(observableResultAtom),\n observable = _get2.observable;\n\n if ('next' in observable) {\n observable.next(data);\n } else {\n throw new Error('observable is not subject');\n }\n });\n return observableAtom;\n}\n\nvar hydratedMap = new WeakMap();\nfunction useHydrateAtoms(values, scope) {\n var ScopeContext = jotai.SECRET_INTERNAL_getScopeContext(scope);\n var scopeContainer = react.useContext(ScopeContext);\n var store = scopeContainer.s;\n var hydratedSet = getHydratedSet(scopeContainer);\n var tuplesToRestore = [];\n\n for (var _iterator = _createForOfIteratorHelperLoose(values), _step; !(_step = _iterator()).done;) {\n var tuple = _step.value;\n var atom = tuple[0];\n\n if (!hydratedSet.has(atom)) {\n hydratedSet.add(atom);\n tuplesToRestore.push(tuple);\n }\n }\n\n if (tuplesToRestore.length) {\n store[RESTORE_ATOMS](tuplesToRestore);\n }\n}\n\nfunction getHydratedSet(scopeContainer) {\n var hydratedSet = hydratedMap.get(scopeContainer);\n\n if (!hydratedSet) {\n hydratedSet = new WeakSet();\n hydratedMap.set(scopeContainer, hydratedSet);\n }\n\n return hydratedSet;\n}\n\nvar memoizeAtom = createMemoizeAtom();\nvar LOADING = {\n state: 'loading'\n};\nfunction loadable(anAtom) {\n return memoizeAtom(function () {\n var loadableAtomCache = new WeakMap();\n var catchAtom = jotai.atom(function (get) {\n var promise;\n\n try {\n var data = get(anAtom);\n\n var _loadableAtom = jotai.atom({\n state: 'hasData',\n data: data\n });\n\n return _loadableAtom;\n } catch (error) {\n if (error instanceof Promise) {\n promise = error;\n } else {\n var _loadableAtom2 = jotai.atom({\n state: 'hasError',\n error: error\n });\n\n return _loadableAtom2;\n }\n }\n\n var cached = loadableAtomCache.get(promise);\n\n if (cached) {\n return cached;\n }\n\n var loadableAtom = jotai.atom(LOADING, function () {\n var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(get, set) {\n var _data;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return get(anAtom, {\n unstable_promise: true\n });\n\n case 3:\n _data = _context.sent;\n set(loadableAtom, {\n state: 'hasData',\n data: _data\n });\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n set(loadableAtom, {\n state: 'hasError',\n error: _context.t0\n });\n\n case 10:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 7]]);\n }));\n\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }());\n\n loadableAtom.onMount = function (init) {\n init();\n };\n\n loadableAtomCache.set(promise, loadableAtom);\n return loadableAtom;\n });\n var derivedAtom = jotai.atom(function (get) {\n var loadableAtom = get(catchAtom);\n return get(loadableAtom);\n });\n return derivedAtom;\n }, [anAtom]);\n}\n\nObject.defineProperty(exports, 'useAtomValue', {\n enumerable: true,\n get: function () { return jotai.useAtomValue; }\n});\nObject.defineProperty(exports, 'useUpdateAtom', {\n enumerable: true,\n get: function () { return jotai.useSetAtom; }\n});\nexports.RESET = RESET;\nexports.atomFamily = atomFamily;\nexports.atomWithDefault = atomWithDefault;\nexports.atomWithHash = atomWithHash;\nexports.atomWithObservable = atomWithObservable;\nexports.atomWithReducer = atomWithReducer;\nexports.atomWithReset = atomWithReset;\nexports.atomWithStorage = atomWithStorage;\nexports.createJSONStorage = createJSONStorage;\nexports.freezeAtom = freezeAtom;\nexports.freezeAtomCreator = freezeAtomCreator;\nexports.loadable = loadable;\nexports.selectAtom = selectAtom;\nexports.splitAtom = splitAtom;\nexports.useAtomCallback = useAtomCallback;\nexports.useHydrateAtoms = useHydrateAtoms;\nexports.useReducerAtom = useReducerAtom;\nexports.useResetAtom = useResetAtom;\nexports.waitForAll = waitForAll;\n","import React from 'react';\n\nfunction createContext(\n rootComponentName: string\n) {\n const Context = React.createContext(null as any);\n\n function Provider(props: ContextValueType & { children: React.ReactNode }) {\n const { children, ...providerProps } = props;\n // Only re-memoize when prop values change\n const value = React.useMemo(\n () => providerProps,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(providerProps)\n ) as ContextValueType;\n return {children};\n }\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context === null) {\n throw new Error(\n `\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``\n );\n }\n return context;\n }\n\n Provider.displayName = rootComponentName + 'Provider';\n return [Provider, useContext] as const;\n}\n\nexport { createContext };\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;","import type {\n GetResponsiveStylesParams,\n GetResponsiveStylesReturnType,\n} from './types';\nimport { Dimensions, ScaledSize, StyleSheet } from 'react-native';\nimport React from 'react';\n\nexport const getResponsiveStylesImpl = (width: number) => (\n queries: GetResponsiveStylesParams\n): GetResponsiveStylesReturnType => {\n if (typeof width === 'number') {\n let styles = queries.initial\n ? [\n StyleSheet.create({ initial: StyleSheet.flatten(queries.initial) })\n .initial,\n ]\n : [];\n\n if (queries.query) {\n queries.query.forEach((queryRule) => {\n if (queryRule.style) {\n const flattenQueryStyle = StyleSheet.flatten(queryRule.style);\n\n if (\n typeof queryRule.maxWidth === 'number' &&\n typeof queryRule.minWidth === 'number'\n ) {\n if (width >= queryRule.minWidth && width <= queryRule.maxWidth) {\n styles.push(\n StyleSheet.create({ rangeStyle: flattenQueryStyle }).rangeStyle\n );\n }\n } else if (typeof queryRule.minWidth === 'number') {\n if (width >= queryRule.minWidth) {\n styles.push(\n StyleSheet.create({ minWidthStyle: flattenQueryStyle })\n .minWidthStyle\n );\n }\n } else if (typeof queryRule.maxWidth === 'number') {\n if (width <= queryRule.maxWidth) {\n styles.push(\n StyleSheet.create({ maxWidthStyle: flattenQueryStyle })\n .maxWidthStyle\n );\n }\n }\n }\n });\n return { styles };\n }\n }\n\n return {};\n};\n\n// The below implementation is taken from React Native's source and added a flag to conditionally attach/remove listeners\nexport const useDimensionsWithEnable = ({ enable }: { enable?: boolean }) => {\n const [dimensions, setDimensions] = React.useState(() =>\n Dimensions.get('window')\n );\n\n React.useEffect(() => {\n if (enable) {\n function handleChange({ window }: { window: ScaledSize }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // 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 handleChange({ window: Dimensions.get('window') });\n\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }\n return () => {};\n }, [dimensions, enable]);\n return dimensions;\n};\n","/* eslint-disable */\n//@ts-nocheck\n// This hash function is taken from react native web\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 */\nfunction murmurhash2_32_gc(str: string, seed: number) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k =\n (str.charCodeAt(i) & 0xff) |\n ((str.charCodeAt(++i) & 0xff) << 8) |\n ((str.charCodeAt(++i) & 0xff) << 16) |\n ((str.charCodeAt(++i) & 0xff) << 24);\n k =\n (k & 0xffff) * 0x5bd1e995 + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n k ^= k >>> 24;\n k =\n (k & 0xffff) * 0x5bd1e995 + ((((k >>> 16) * 0x5bd1e995) & 0xffff) << 16);\n h =\n ((h & 0xffff) * 0x5bd1e995 +\n ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16)) ^\n 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 =\n (h & 0xffff) * 0x5bd1e995 +\n ((((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\nconst hash = function hash(str: string) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;\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 { 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;","import merge from 'lodash.merge';\n\nconst SPECIFICITY_1000 = 1000;\nconst SPECIFICITY_110 = 110;\nconst SPECIFICITY_100 = 100;\nconst SPECIFICITY_70 = 70;\nconst SPECIFICITY_60 = 60;\nconst SPECIFICITY_55 = 55;\nconst SPECIFICITY_50 = 50;\nconst SPECIFICITY_40 = 40;\nconst SPECIFICITY_30 = 30;\n// SPECIFICITY_20 is being user for defferentiating between User Props and Theme Props. So any specificity less than SPECIFICITY_20 will be ovridable by user props.\nconst SPECIFICITY_20 = 20;\nconst SPECIFICITY_10 = 10;\nconst specificityPrecedence = [\n SPECIFICITY_1000,\n SPECIFICITY_110,\n SPECIFICITY_100,\n SPECIFICITY_70,\n SPECIFICITY_60,\n SPECIFICITY_55,\n SPECIFICITY_50,\n SPECIFICITY_40,\n SPECIFICITY_30,\n SPECIFICITY_20,\n SPECIFICITY_10,\n];\nconst INITIAL_PROP_SPECIFICITY = {\n [SPECIFICITY_1000]: 0,\n [SPECIFICITY_110]: 0,\n [SPECIFICITY_100]: 0,\n [SPECIFICITY_70]: 0,\n [SPECIFICITY_60]: 0,\n [SPECIFICITY_50]: 0,\n [SPECIFICITY_55]: 0,\n [SPECIFICITY_40]: 0,\n [SPECIFICITY_30]: 0,\n [SPECIFICITY_20]: 0,\n [SPECIFICITY_10]: 0,\n};\n\nconst pseudoPropsMap = {\n _web: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _ios: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n _android: { dependentOn: 'platform', priority: SPECIFICITY_10 },\n\n _light: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n _dark: { dependentOn: 'colormode', priority: SPECIFICITY_10 },\n\n // TODO: have to add more interactionProps and stateProps\n _indeterminate: {\n dependentOn: 'state',\n respondTo: 'isIndeterminate',\n priority: SPECIFICITY_30,\n },\n _checked: {\n dependentOn: 'state',\n respondTo: 'isChecked',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _readOnly: {\n dependentOn: 'state',\n respondTo: 'isReadOnly',\n priority: SPECIFICITY_30,\n },\n // Add new pseudeo props in between -------\n _invalid: {\n dependentOn: 'state',\n respondTo: 'isInvalid',\n priority: SPECIFICITY_40,\n },\n _focus: {\n dependentOn: 'state',\n respondTo: 'isFocused',\n priority: SPECIFICITY_50,\n },\n _focusVisible: {\n dependentOn: 'state',\n respondTo: 'isFocusVisible',\n priority: SPECIFICITY_55,\n },\n _hover: {\n dependentOn: 'state',\n respondTo: 'isHovered',\n priority: SPECIFICITY_60,\n },\n _pressed: {\n dependentOn: 'state',\n respondTo: 'isPressed',\n priority: SPECIFICITY_70,\n },\n _disabled: {\n dependentOn: 'state',\n respondTo: 'isDisabled',\n priority: SPECIFICITY_100,\n },\n _loading: {\n dependentOn: 'state',\n respondTo: 'isLoading',\n priority: SPECIFICITY_110,\n },\n _important: {\n dependentOn: null,\n priority: SPECIFICITY_1000,\n },\n} as const;\n\ntype IPseudoPropsMap = typeof pseudoPropsMap;\ntype ExtractState = {\n // @ts-ignore\n [P in keyof T as T[P]['respondTo']]?: boolean;\n};\nexport type IStateProps = ExtractState;\n\nexport const compareSpecificity = (\n exisiting: any,\n upcoming: any,\n ignorebaseTheme?: boolean\n // property?: any\n) => {\n if (!exisiting) return true;\n if (!upcoming) return false;\n const condition = ignorebaseTheme\n ? specificityPrecedence.length - 1\n : specificityPrecedence.length;\n for (let index = 0; index < condition; index++) {\n if (\n exisiting[specificityPrecedence[index]] >\n upcoming[specificityPrecedence[index]]\n ) {\n return false;\n } else if (\n exisiting[specificityPrecedence[index]] <\n upcoming[specificityPrecedence[index]]\n ) {\n return true;\n }\n }\n return true;\n};\n\nconst shouldResolvePseudoProp = ({\n property,\n state,\n platform,\n colormode,\n}: {\n property: keyof IPseudoPropsMap;\n state: IStateProps;\n platform: any;\n colormode: any;\n}) => {\n if (pseudoPropsMap[property].dependentOn === 'platform') {\n return property === `_${platform}`;\n } else if (pseudoPropsMap[property].dependentOn === 'colormode') {\n return property === `_${colormode}`;\n } else if (pseudoPropsMap[property].dependentOn === 'state') {\n // @ts-ignore\n return state[pseudoPropsMap[property].respondTo];\n } else if (pseudoPropsMap[property].dependentOn === null) {\n return true;\n } else {\n return false;\n }\n};\n\nconst simplifyProps = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificity,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n flattenProps: any = {},\n specificityMap: any = {},\n priority: number\n) => {\n const mergePsuedoProps = (property: string, propertySpecity: object) => {\n if (compareSpecificity(specificityMap[property], propertySpecity, false)) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with higher specificity'\n );\n }\n specificityMap[property] = propertySpecity;\n // merging internal props (like, _text, _stack ...)\n flattenProps[property] = merge(\n {},\n flattenProps[property],\n props[property]\n );\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as internal prop with lower specificity'\n );\n }\n flattenProps[property] = merge(\n {},\n props[property],\n flattenProps[property]\n );\n }\n };\n for (const property in props) {\n // NOTE: the order is important here. Keep in mind while specificity breakpoints.\n const propertySpecity = currentSpecificity\n ? { ...currentSpecificity }\n : {\n ...INITIAL_PROP_SPECIFICITY,\n [SPECIFICITY_20]: priority,\n };\n\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] ||\n ['_dark', '_light', '_web', '_ios', '_android', '_important'].includes(\n property\n )\n ) {\n // @ts-ignore\n if (shouldResolvePseudoProp({ property, state, platform, colormode })) {\n // NOTE: Handling (state driven) props like _important, _web, _ios, _android, _dark, _light, _disabled, _focus, _focusVisible, _hover, _pressed, _readOnly, _invalid, .... Only when they are true.\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'recursively resolving'\n );\n }\n // @ts-ignore\n propertySpecity[pseudoPropsMap[property].priority]++;\n simplifyProps(\n {\n props: props[property],\n colormode,\n platform,\n state,\n currentSpecificity: propertySpecity,\n previouslyFlattenProps: previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n }\n // @ts-ignore\n } else if (pseudoPropsMap[property] === undefined) {\n if (property.startsWith('_')) {\n // NOTE: Handling (internal) props like _text, _stack, ....\n mergePsuedoProps(property, propertySpecity);\n } else {\n if (\n compareSpecificity(specificityMap[property], propertySpecity, false)\n ) {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(\n `%c ${property}`,\n 'color: #818cf8;',\n 'updated as simple prop'\n );\n }\n specificityMap[property] = propertySpecity;\n // replacing simple props (like, p, m, bg, color, ...)\n flattenProps[property] = props[property];\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'ignored');\n }\n }\n }\n } else {\n // Can delete unused props\n if (!cascadePseudoProps) {\n delete flattenProps[property];\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'deleted');\n }\n } else {\n if (process.env.NODE_ENV === 'development' && props.debug) {\n /* eslint-disable-next-line */\n console.log(`%c ${property}`, 'color: #818cf8;', 'cascaded');\n }\n mergePsuedoProps(property, propertySpecity);\n }\n }\n }\n};\n\nexport const propsFlattener = (\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n }: any,\n priority: number\n) => {\n const flattenProps: any = {};\n\n for (const property in props) {\n if (\n // @ts-ignore\n state[pseudoPropsMap[property]?.respondTo] === undefined &&\n property.startsWith('_')\n ) {\n flattenProps[property] = previouslyFlattenProps[property];\n }\n }\n\n const specificityMap = currentSpecificityMap || {};\n\n simplifyProps(\n {\n props,\n colormode,\n platform,\n state,\n currentSpecificityMap,\n previouslyFlattenProps,\n cascadePseudoProps,\n },\n flattenProps,\n specificityMap,\n priority\n );\n\n return [flattenProps, specificityMap];\n};\n","import { useColorMode } from './../core/color-mode';\nimport { useTheme } from './useTheme';\n\n/**\n *\n * @returns object containing `colorMode` information and `theme` object\n */\nexport function useNativeBase() {\n const colorModeResult = useColorMode();\n const theme = useTheme();\n return { ...colorModeResult, theme };\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 */\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;","/**\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) 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}","import { useRef } from 'react';\nimport { makeMutable } from './core';\nimport { shouldBeUseWeb } from './PlatformChecker';\nconst scheduleUpdates = shouldBeUseWeb() ? requestAnimationFrame : setImmediate;\nexport function makeViewDescriptorsSet() {\n const ref = useRef(null);\n if (ref.current === null) {\n const data = {\n batchToRemove: new Set(),\n tags: new Set(),\n waitForInsertSync: false,\n waitForRemoveSync: false,\n sharableViewDescriptors: makeMutable([]),\n items: [],\n add: (item) => {\n if (data.tags.has(item.tag)) {\n return;\n }\n data.tags.add(item.tag);\n data.items.push(item);\n if (!data.waitForInsertSync) {\n data.waitForInsertSync = true;\n scheduleUpdates(() => {\n data.sharableViewDescriptors.value = data.items;\n data.waitForInsertSync = false;\n });\n }\n },\n remove: (viewTag) => {\n data.batchToRemove.add(viewTag);\n if (!data.waitForRemoveSync) {\n data.waitForRemoveSync = true;\n scheduleUpdates(() => {\n const items = [];\n for (const item of data.items) {\n if (data.batchToRemove.has(item.tag)) {\n data.tags.delete(item.tag);\n }\n else {\n items.push(item);\n }\n }\n data.items = items;\n data.sharableViewDescriptors.value = items;\n data.batchToRemove = new Set();\n data.waitForRemoveSync = false;\n });\n }\n },\n rebuildsharableViewDescriptors: (sharableViewDescriptors) => {\n data.sharableViewDescriptors = sharableViewDescriptors;\n },\n };\n ref.current = data;\n }\n return ref.current;\n}\nexport function makeViewsRefSet() {\n const ref = useRef(null);\n if (ref.current === null) {\n const data = {\n items: new Set(),\n add: (item) => {\n if (data.items.has(item))\n return;\n data.items.add(item);\n },\n remove: (item) => {\n data.items.delete(item);\n },\n };\n ref.current = data;\n }\n return ref.current;\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 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) 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;","import { Reanimated } from './reanimatedWrapper';\nimport { State } from '../../State';\n\nexport interface GestureStateManagerType {\n begin: () => void;\n activate: () => void;\n fail: () => void;\n end: () => void;\n}\n\nexport const GestureStateManager = {\n create(handlerTag: number): GestureStateManagerType {\n 'worklet';\n return {\n begin: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.BEGAN);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n activate: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.ACTIVE);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n fail: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.FAILED);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n\n end: () => {\n 'worklet';\n if (Reanimated) {\n Reanimated.setGestureState(handlerTag, State.END);\n } else {\n console.warn(\n 'react-native-reanimated is required in order to use synchronous state management'\n );\n }\n },\n };\n },\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 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}","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;","import { getStyleAndFilteredProps, propConfig } from '../theme/styled-system';\nimport { useTheme } from './useTheme';\nimport React from 'react';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { useResponsiveQuery } from '../utils/useResponsiveQuery';\n//@ts-ignore\nimport stableHash from 'stable-hash';\n\nconst getStyledSystemPropsAndRestProps = (props: any) => {\n const styledSystemProps: any = {};\n const restProps: any = {};\n\n for (let key in props) {\n if (key in propConfig) {\n styledSystemProps[key] = props[key];\n } else {\n restProps[key] = props[key];\n }\n }\n\n return { styledSystemProps, restProps };\n};\n\nexport const useStyledSystemPropsResolver = ({\n style: propStyle,\n debug,\n ...props\n}: any) => {\n const theme = useTheme();\n const { currentBreakpoint, config } = useNativeBaseConfig(\n 'makeStyledComponent'\n );\n const strictMode = config.strictMode;\n\n const { getResponsiveStyles } = useResponsiveQuery();\n\n const { styledSystemProps, restProps } = getStyledSystemPropsAndRestProps(\n props\n );\n\n const { style, dataSet } = React.useMemo(() => {\n const { styleSheet, dataSet } = getStyleAndFilteredProps({\n styledSystemProps,\n theme,\n debug,\n currentBreakpoint,\n strictMode,\n getResponsiveStyles,\n });\n if (propStyle) {\n return { style: [styleSheet.box, propStyle], dataSet };\n } else {\n return { style: styleSheet.box, dataSet };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // eslint-disable-next-line react-hooks/exhaustive-deps\n stableHash(styledSystemProps),\n theme,\n debug,\n currentBreakpoint,\n strictMode,\n propStyle,\n getResponsiveStyles,\n props,\n ]);\n if (process.env.NODE_ENV === 'development' && debug) {\n /* eslint-disable-next-line */\n console.log('style,resprops', currentBreakpoint);\n }\n\n restProps.dataSet = dataSet;\n\n return [style, restProps];\n};\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\";\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;","\"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}","// Side effects\nimport './setBatchUpdatesFn';\nimport './setLogger';\nexport { QueryClientProvider, useQueryClient } from './QueryClientProvider';\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nexport { useIsFetching } from './useIsFetching';\nexport { useIsMutating } from './useIsMutating';\nexport { useMutation } from './useMutation';\nexport { useQuery } from './useQuery';\nexport { useQueries } from './useQueries';\nexport { useInfiniteQuery } from './useInfiniteQuery';\nexport { useHydrate, Hydrate } from './Hydrate'; // Types\n\nexport * from './types';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { noop, parseMutationArgs } from '../core/utils';\nimport { MutationObserver } from '../core/mutationObserver';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils'; // HOOK\n\nexport function useMutation(arg1, arg2, arg3) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var options = parseMutationArgs(arg1, arg2, arg3);\n var queryClient = useQueryClient();\n var obsRef = React.useRef();\n\n if (!obsRef.current) {\n obsRef.current = new MutationObserver(queryClient, options);\n } else {\n obsRef.current.setOptions(options);\n }\n\n var currentResult = obsRef.current.getCurrentResult();\n React.useEffect(function () {\n mountedRef.current = true;\n var unsubscribe = obsRef.current.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n }));\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, []);\n var mutate = React.useCallback(function (variables, mutateOptions) {\n obsRef.current.mutate(variables, mutateOptions).catch(noop);\n }, []);\n\n if (currentResult.error && shouldThrowError(undefined, obsRef.current.options.useErrorBoundary, [currentResult.error])) {\n throw currentResult.error;\n }\n\n return _extends({}, currentResult, {\n mutate: mutate,\n mutateAsync: currentResult.mutate\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.previousSelectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return _shouldFetchOnReconnect(this.currentQuery, this.options);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return _shouldFetchOnWindowFocus(this.currentQuery, this.options);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n var _this$previousSelect;\n\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === ((_this$previousSelect = this.previousSelect) == null ? void 0 : _this$previousSelect.fn) && !this.previousSelectError) {\n data = this.previousSelect.result;\n } else {\n try {\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.previousSelect = {\n fn: options.select,\n result: data\n };\n this.previousSelectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n error = selectError;\n this.previousSelectError = selectError;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.previousSelectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n error = selectError;\n this.previousSelectError = selectError;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldRefetchOnMount(query, options) {\n return options.enabled !== false && query.state.dataUpdatedAt > 0 && (options.refetchOnMount === 'always' || options.refetchOnMount !== false && isStale(query, options));\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || shouldRefetchOnMount(query, options);\n}\n\nfunction _shouldFetchOnReconnect(query, options) {\n return options.enabled !== false && (options.refetchOnReconnect === 'always' || options.refetchOnReconnect !== false && isStale(query, options));\n}\n\nfunction _shouldFetchOnWindowFocus(query, options) {\n return options.enabled !== false && (options.refetchOnWindowFocus === 'always' || options.refetchOnWindowFocus !== false && isStale(query, options));\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","/* global _stopObservingProgress, _startObservingProgress */\nimport { runOnUI } from '../core';\nimport { withStyleAnimation } from '../animation/styleAnimation';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\nrunOnUI(() => {\n 'worklet';\n const configs = {};\n const enteringAnimationForTag = {};\n global.LayoutAnimationRepository = {\n configs,\n registerConfig(tag, config) {\n configs[tag] = config;\n enteringAnimationForTag[tag] = null;\n },\n removeConfig(tag) {\n delete configs[tag];\n delete enteringAnimationForTag[tag];\n },\n startAnimationForTag(tag, type, yogaValues) {\n if (configs[tag] == null) {\n return; // :(\n }\n const style = configs[tag][type](yogaValues);\n let currentAnimation = style.animations;\n if (type === 'entering') {\n enteringAnimationForTag[tag] = style;\n }\n else if (type === 'layout' && enteringAnimationForTag[tag] !== null) {\n const entryAniamtion = enteringAnimationForTag[tag].animations;\n const layoutAnimation = style.animations;\n currentAnimation = {};\n for (const key in entryAniamtion) {\n currentAnimation[key] = entryAniamtion[key];\n }\n for (const key in layoutAnimation) {\n currentAnimation[key] = layoutAnimation[key];\n }\n }\n const sv = configs[tag].sv;\n _stopObservingProgress(tag, false);\n _startObservingProgress(tag, sv);\n const backupColor = {};\n for (const key in style.initialValues) {\n if (ColorProperties.includes(key)) {\n const value = style.initialValues[key];\n backupColor[key] = value;\n style.initialValues[key] = processColor(value);\n }\n }\n sv.value = Object.assign({}, sv._value, style.initialValues);\n _stopObservingProgress(tag, false);\n const animation = withStyleAnimation(currentAnimation);\n animation.callback = (finished) => {\n if (finished) {\n _stopObservingProgress(tag, finished);\n }\n style.callback && style.callback(finished);\n };\n if (backupColor) {\n configs[tag].sv._value = Object.assign(Object.assign({}, configs[tag].sv.value), backupColor);\n }\n configs[tag].sv.value = animation;\n _startObservingProgress(tag, sv);\n },\n };\n})();\n","import NativeModulesProxy from './NativeModulesProxy';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var ExpoModules:\n | undefined\n | {\n [key: string]: any;\n };\n}\n\n/**\n * Imports the native module registered with given name. In the first place it tries to load\n * the module installed through the JSI host object and then falls back to the bridge proxy module.\n * Notice that the modules loaded from the proxy may not support some features like synchronous functions.\n *\n * @param moduleName Name of the requested native module.\n * @returns Object representing the native module.\n * @throws Error when there is no native module with given name.\n */\nexport function requireNativeModule(moduleName: string): ModuleType {\n const nativeModule: ModuleType =\n global.ExpoModules?.[moduleName] ?? NativeModulesProxy[moduleName];\n\n if (!nativeModule) {\n throw new Error(`Cannot find native module '${moduleName}'`);\n }\n return nativeModule;\n}\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","import React, { useEffect, useRef } from 'react';\nimport {\n GestureType,\n HandlerCallbacks,\n BaseGesture,\n GestureRef,\n CALLBACK_TYPE,\n} from './gesture';\nimport { Reanimated, SharedValue } from './reanimatedWrapper';\nimport { registerHandler, unregisterHandler } from '../handlersRegistry';\nimport RNGestureHandlerModule from '../../RNGestureHandlerModule';\nimport {\n baseGestureHandlerWithMonitorProps,\n filterConfig,\n findNodeHandle,\n GestureTouchEvent,\n GestureUpdateEvent,\n GestureStateChangeEvent,\n} from '../gestureHandlerCommon';\nimport {\n GestureStateManager,\n GestureStateManagerType,\n} from './gestureStateManager';\nimport { flingGestureHandlerProps } from '../FlingGestureHandler';\nimport { forceTouchGestureHandlerProps } from '../ForceTouchGestureHandler';\nimport { longPressGestureHandlerProps } from '../LongPressGestureHandler';\nimport {\n panGestureHandlerProps,\n panGestureHandlerCustomNativeProps,\n} from '../PanGestureHandler';\nimport { tapGestureHandlerProps } from '../TapGestureHandler';\nimport { State } from '../../State';\nimport { EventType } from '../../EventType';\nimport { ComposedGesture } from './gestureComposition';\n\nconst ALLOWED_PROPS = [\n ...baseGestureHandlerWithMonitorProps,\n ...tapGestureHandlerProps,\n ...panGestureHandlerProps,\n ...panGestureHandlerCustomNativeProps,\n ...longPressGestureHandlerProps,\n ...forceTouchGestureHandlerProps,\n ...flingGestureHandlerProps,\n];\n\nexport type GestureConfigReference = {\n config: GestureType[];\n animatedEventHandler: unknown;\n animatedHandlers: SharedValue<\n HandlerCallbacks>[] | null\n > | null;\n firstExecution: boolean;\n useAnimated: boolean;\n};\n\nfunction convertToHandlerTag(ref: GestureRef): number {\n if (typeof ref === 'number') {\n return ref;\n } else if (ref instanceof BaseGesture) {\n return ref.handlerTag;\n } else {\n // @ts-ignore in this case it should be a ref either to gesture object or\n // a gesture handler component, in both cases handlerTag property exists\n return ref.current?.handlerTag ?? -1;\n }\n}\n\nfunction extractValidHandlerTags(interactionGroup: GestureRef[] | undefined) {\n return (\n interactionGroup?.map(convertToHandlerTag)?.filter((tag) => tag > 0) ?? []\n );\n}\n\nfunction dropHandlers(preparedGesture: GestureConfigReference) {\n for (const handler of preparedGesture.config) {\n RNGestureHandlerModule.dropGestureHandler(handler.handlerTag);\n\n unregisterHandler(handler.handlerTag);\n }\n}\n\ninterface AttachHandlersConfig {\n preparedGesture: GestureConfigReference;\n gestureConfig: ComposedGesture | GestureType | undefined;\n gesture: GestureType[];\n viewTag: number;\n useAnimated: boolean;\n}\n\nfunction attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n useAnimated,\n}: AttachHandlersConfig) {\n if (!preparedGesture.firstExecution) {\n gestureConfig?.initialize();\n } else {\n preparedGesture.firstExecution = false;\n }\n\n // use setImmediate to extract handlerTags, because all refs should be initialized\n // when it's ran\n setImmediate(() => {\n gestureConfig?.prepare();\n });\n\n for (const handler of gesture) {\n RNGestureHandlerModule.createGestureHandler(\n handler.handlerName,\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS)\n );\n\n registerHandler(handler.handlerTag, handler);\n\n // use setImmediate to extract handlerTags, because all refs should be initialized\n // when it's ran\n setImmediate(() => {\n let requireToFail: number[] = [];\n if (handler.config.requireToFail) {\n requireToFail = extractValidHandlerTags(handler.config.requireToFail);\n }\n\n let simultaneousWith: number[] = [];\n if (handler.config.simultaneousWith) {\n simultaneousWith = extractValidHandlerTags(\n handler.config.simultaneousWith\n );\n }\n\n RNGestureHandlerModule.updateGestureHandler(\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS, {\n simultaneousHandlers: simultaneousWith,\n waitFor: requireToFail,\n })\n );\n });\n }\n preparedGesture.config = gesture;\n\n for (const gesture of preparedGesture.config) {\n RNGestureHandlerModule.attachGestureHandler(\n gesture.handlerTag,\n viewTag,\n !useAnimated // send direct events when using animatedGesture, device events otherwise\n );\n }\n\n if (preparedGesture.animatedHandlers) {\n preparedGesture.animatedHandlers.value = (gesture.map(\n (g) => g.handlers\n ) as unknown) as HandlerCallbacks>[];\n }\n}\n\nfunction updateHandlers(\n preparedGesture: GestureConfigReference,\n gestureConfig: ComposedGesture | GestureType | undefined,\n gesture: GestureType[]\n) {\n gestureConfig?.prepare();\n\n for (let i = 0; i < gesture.length; i++) {\n const handler = preparedGesture.config[i];\n\n gesture[i].handlerTag = handler.handlerTag;\n gesture[i].handlers.handlerTag = handler.handlerTag;\n }\n\n // use setImmediate to extract handlerTags, because when it's ran, all refs should be updated\n // and handlerTags in BaseGesture references should be updated in the loop above (we need to wait\n // in case of external relations)\n setImmediate(() => {\n for (let i = 0; i < gesture.length; i++) {\n const handler = preparedGesture.config[i];\n\n handler.config = gesture[i].config;\n handler.handlers = gesture[i].handlers;\n handler.handlers.handlerTag = handler.handlerTag;\n\n const requireToFail = extractValidHandlerTags(\n handler.config.requireToFail\n );\n\n const simultaneousWith = extractValidHandlerTags(\n handler.config.simultaneousWith\n );\n\n RNGestureHandlerModule.updateGestureHandler(\n handler.handlerTag,\n filterConfig(handler.config, ALLOWED_PROPS, {\n simultaneousHandlers: simultaneousWith,\n waitFor: requireToFail,\n })\n );\n\n registerHandler(handler.handlerTag, handler);\n }\n\n if (preparedGesture.animatedHandlers) {\n preparedGesture.animatedHandlers.value = (preparedGesture.config.map(\n (g) => g.handlers\n ) as unknown) as HandlerCallbacks>[];\n }\n });\n}\n\nfunction needsToReattach(\n preparedGesture: GestureConfigReference,\n gesture: GestureType[]\n) {\n if (gesture.length !== preparedGesture.config.length) {\n return true;\n }\n for (let i = 0; i < gesture.length; i++) {\n if (gesture[i].handlerName !== preparedGesture.config[i].handlerName) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction useAnimatedGesture(preparedGesture: GestureConfigReference) {\n if (!Reanimated) {\n return;\n }\n\n function isStateChangeEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n ): event is GestureStateChangeEvent {\n 'worklet';\n // @ts-ignore Yes, the oldState prop is missing on GestureTouchEvent, that's the point\n return event.oldState != null;\n }\n\n function isTouchEvent(\n event: GestureUpdateEvent | GestureStateChangeEvent | GestureTouchEvent\n ): event is GestureTouchEvent {\n 'worklet';\n return event.eventType != null;\n }\n\n function getHandler(\n type: CALLBACK_TYPE,\n gesture: HandlerCallbacks>\n ) {\n 'worklet';\n switch (type) {\n case CALLBACK_TYPE.BEGAN:\n return gesture.onBegin;\n case CALLBACK_TYPE.START:\n return gesture.onStart;\n case CALLBACK_TYPE.UPDATE:\n return gesture.onUpdate;\n case CALLBACK_TYPE.CHANGE:\n return gesture.onChange;\n case CALLBACK_TYPE.END:\n return gesture.onEnd;\n case CALLBACK_TYPE.FINALIZE:\n return gesture.onFinalize;\n case CALLBACK_TYPE.TOUCHES_DOWN:\n return gesture.onTouchesDown;\n case CALLBACK_TYPE.TOUCHES_MOVE:\n return gesture.onTouchesMove;\n case CALLBACK_TYPE.TOUCHES_UP:\n return gesture.onTouchesUp;\n case CALLBACK_TYPE.TOUCHES_CANCELLED:\n return gesture.onTouchesCancelled;\n }\n }\n\n function touchEventTypeToCallbackType(eventType: EventType): CALLBACK_TYPE {\n 'worklet';\n switch (eventType) {\n case EventType.TOUCHES_DOWN:\n return CALLBACK_TYPE.TOUCHES_DOWN;\n case EventType.TOUCHES_MOVE:\n return CALLBACK_TYPE.TOUCHES_MOVE;\n case EventType.TOUCHES_UP:\n return CALLBACK_TYPE.TOUCHES_UP;\n case EventType.TOUCHES_CANCELLED:\n return CALLBACK_TYPE.TOUCHES_CANCELLED;\n }\n return CALLBACK_TYPE.UNDEFINED;\n }\n\n function runWorklet(\n type: CALLBACK_TYPE,\n gesture: HandlerCallbacks>,\n event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent,\n ...args: any[]\n ) {\n 'worklet';\n const handler = getHandler(type, gesture);\n if (gesture.isWorklet[type]) {\n // @ts-ignore Logic below makes sure the correct event is send to the\n // correct handler.\n handler?.(event, ...args);\n } else if (handler) {\n console.warn('Animated gesture callback must be a worklet');\n }\n }\n\n // Hooks are called conditionally, but the condition is whether the\n // react-native-reanimated is installed, which shouldn't change while running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const sharedHandlersCallbacks = Reanimated.useSharedValue<\n HandlerCallbacks>[] | null\n >(null);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const lastUpdateEvent = Reanimated.useSharedValue<\n (GestureUpdateEvent | undefined)[]\n >([]);\n\n // not every gesture needs a state controller, init them lazily\n const stateControllers: GestureStateManagerType[] = [];\n\n const callback = (\n event: GestureStateChangeEvent | GestureUpdateEvent | GestureTouchEvent\n ) => {\n 'worklet';\n\n const currentCallback = sharedHandlersCallbacks.value;\n if (!currentCallback) {\n return;\n }\n\n for (let i = 0; i < currentCallback.length; i++) {\n const gesture = currentCallback[i];\n\n if (event.handlerTag === gesture.handlerTag) {\n if (isStateChangeEvent(event)) {\n if (\n event.oldState === State.UNDETERMINED &&\n event.state === State.BEGAN\n ) {\n runWorklet(CALLBACK_TYPE.BEGAN, gesture, event);\n } else if (\n (event.oldState === State.BEGAN ||\n event.oldState === State.UNDETERMINED) &&\n event.state === State.ACTIVE\n ) {\n runWorklet(CALLBACK_TYPE.START, gesture, event);\n lastUpdateEvent.value[gesture.handlerTag] = undefined;\n } else if (\n event.oldState !== event.state &&\n event.state === State.END\n ) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, true);\n }\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, true);\n } else if (\n (event.state === State.FAILED || event.state === State.CANCELLED) &&\n event.state !== event.oldState\n ) {\n if (event.oldState === State.ACTIVE) {\n runWorklet(CALLBACK_TYPE.END, gesture, event, false);\n }\n runWorklet(CALLBACK_TYPE.FINALIZE, gesture, event, false);\n }\n } else if (isTouchEvent(event)) {\n if (!stateControllers[i]) {\n stateControllers[i] = GestureStateManager.create(event.handlerTag);\n }\n\n if (event.eventType !== EventType.UNDETERMINED) {\n runWorklet(\n touchEventTypeToCallbackType(event.eventType),\n gesture,\n event,\n stateControllers[i]\n );\n }\n } else {\n runWorklet(CALLBACK_TYPE.UPDATE, gesture, event);\n\n if (gesture.onChange && gesture.changeEventCalculator) {\n runWorklet(\n CALLBACK_TYPE.CHANGE,\n gesture,\n gesture.changeEventCalculator?.(\n event,\n lastUpdateEvent.value[gesture.handlerTag]\n )\n );\n\n lastUpdateEvent.value[gesture.handlerTag] = event;\n }\n }\n }\n }\n };\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const event = Reanimated.useEvent(\n callback,\n ['onGestureHandlerStateChange', 'onGestureHandlerEvent'],\n true\n );\n\n preparedGesture.animatedEventHandler = event;\n preparedGesture.animatedHandlers = sharedHandlersCallbacks;\n}\n\ninterface GestureDetectorProps {\n gesture?: ComposedGesture | GestureType;\n}\nexport const GestureDetector: React.FunctionComponent = (\n props\n) => {\n const gestureConfig = props.gesture;\n const gesture = gestureConfig?.toGestureArray?.() ?? [];\n const useAnimated =\n gesture.find((gesture) =>\n gesture.handlers.isWorklet.reduce((prev, current) => prev || current)\n ) != null;\n const viewRef = useRef(null);\n const firstRenderRef = useRef(true);\n\n const preparedGesture = React.useRef({\n config: gesture,\n animatedEventHandler: null,\n animatedHandlers: null,\n firstExecution: true,\n useAnimated: useAnimated,\n }).current;\n\n if (useAnimated !== preparedGesture.useAnimated) {\n throw new Error(\n 'You cannot change whether you are using gesture or animatedGesture while the app is running'\n );\n }\n\n if (preparedGesture.firstExecution) {\n gestureConfig?.initialize?.();\n }\n\n if (useAnimated) {\n // Whether animatedGesture or gesture is used shouldn't change\n // during while an app is running\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useAnimatedGesture(preparedGesture);\n }\n\n useEffect(() => {\n firstRenderRef.current = true;\n const viewTag = findNodeHandle(viewRef.current) as number;\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n useAnimated,\n });\n\n return () => {\n dropHandlers(preparedGesture);\n };\n }, []);\n\n useEffect(() => {\n if (!firstRenderRef.current) {\n const viewTag = findNodeHandle(viewRef.current) as number;\n\n if (needsToReattach(preparedGesture, gesture)) {\n dropHandlers(preparedGesture);\n attachHandlers({\n preparedGesture,\n gestureConfig,\n gesture,\n viewTag,\n useAnimated,\n });\n } else {\n updateHandlers(preparedGesture, gestureConfig, gesture);\n }\n } else {\n firstRenderRef.current = false;\n }\n }, [props]);\n\n if (useAnimated) {\n return (\n \n {props.children}\n \n );\n } else {\n return {props.children};\n }\n};\n\nclass Wrap extends React.Component<{ onGestureHandlerEvent?: unknown }> {\n render() {\n // I don't think that fighting with types over such a simple function is worth it\n // The only thing it does is add 'collapsable: false' to the child component\n // to make sure it is in the native view hierarchy so the detector can find\n // correct viewTag to attach to.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const child: any = React.Children.only(this.props.children);\n\n return React.cloneElement(\n child,\n { collapsable: false },\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n child.props.children\n );\n }\n}\n\nconst AnimatedWrap = Reanimated?.default?.createAnimatedComponent(Wrap) ?? Wrap;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","/**\n * React Router DOM v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { useRef, useState, useLayoutEffect, createElement, forwardRef, useCallback, useMemo } from 'react';\nimport { createBrowserHistory, createHashHistory } from 'history';\nimport { Router, useHref, createPath, useLocation, useResolvedPath, useNavigate } from 'react-router';\nexport { MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, createPath, createRoutesFromChildren, generatePath, matchPath, matchRoutes, parsePath, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes } from 'react-router';\n\nfunction _extends() {\n _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 };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _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\nconst _excluded = [\"onClick\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"children\"];\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n} ////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref) {\n let {\n basename,\n children,\n window\n } = _ref;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref2) {\n let {\n basename,\n children,\n window\n } = _ref2;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref3) {\n let {\n basename,\n children,\n history\n } = _ref3;\n const [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = /*#__PURE__*/forwardRef(function LinkWithRef(_ref4, ref) {\n let {\n onClick,\n reloadDocument,\n replace = false,\n state,\n target,\n to\n } = _ref4,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded);\n\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target\n });\n\n function handleClick(event) {\n if (onClick) onClick(event);\n\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n createElement(\"a\", _extends({}, rest, {\n href: href,\n onClick: handleClick,\n ref: ref,\n target: target\n }))\n );\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/forwardRef(function NavLinkWithRef(_ref5, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children\n } = _ref5,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded2);\n\n let location = useLocation();\n let path = useResolvedPath(to);\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(toPathname.length) === \"/\";\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n\n if (typeof classNameProp === \"function\") {\n className = classNameProp({\n isActive\n });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null].filter(Boolean).join(\" \");\n }\n\n let style = typeof styleProp === \"function\" ? styleProp({\n isActive\n }) : styleProp;\n return /*#__PURE__*/createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to\n }), typeof children === \"function\" ? children({\n isActive\n }) : children);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n} ////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\n\n\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n return useCallback(event => {\n if (event.button === 0 && ( // Ignore everything but left clicks\n !target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault(); // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n\n let replace = !!replaceProp || createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\n\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params\\n\\n\" + \"If you're unsure how to load polyfills, we recommend you check out \" + \"https://polyfill.io/v3/ which provides some recommendations about how \" + \"to load polyfills only for users that need them, instead of for every \" + \"user.\") : void 0;\n let defaultSearchParamsRef = useRef(createSearchParams(defaultInit));\n let location = useLocation();\n let searchParams = useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n let navigate = useNavigate();\n let setSearchParams = useCallback((nextInit, navigateOptions) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n }, [navigate]);\n return [searchParams, setSearchParams];\n}\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink, createSearchParams, HistoryRouter as unstable_HistoryRouter, useLinkClickHandler, useSearchParams };\n//# sourceMappingURL=index.js.map\n","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule EmitterSubscription\r\n * @typechecks\r\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar EventSubscription = require(\"./EventSubscription.js\");\n/**\r\n * EmitterSubscription represents a subscription with listener and context data.\r\n */\n\n\nvar EmitterSubscription = /*#__PURE__*/function (_EventSubscription) {\n _inheritsLoose(EmitterSubscription, _EventSubscription);\n\n /**\r\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\r\n * this subscription\r\n * @param {function} listener - Function to invoke when the specified event is\r\n * emitted\r\n * @param {*} context - Optional context object to use when invoking the\r\n * listener\r\n */\n function EmitterSubscription(subscriber, listener, context) {\n var _this;\n\n _this = _EventSubscription.call(this, subscriber) || this;\n _this.listener = listener;\n _this.context = context;\n return _this;\n }\n\n return EmitterSubscription;\n}(EventSubscription);\n\nmodule.exports = EmitterSubscription;","import Constants from 'expo-constants';\n\n/**\n * The types of update-related events.\n */\nexport enum UpdateEventType {\n /**\n * A new update has finished downloading to local storage. If you would like to start using this\n * update at any point before the user closes and restarts the app on their own, you can call\n * [`Updates.reloadAsync()`](#reloadasync) to launch this new update.\n */\n UPDATE_AVAILABLE = 'updateAvailable',\n /**\n * No updates are available, and the most up-to-date update is already running.\n */\n NO_UPDATE_AVAILABLE = 'noUpdateAvailable',\n /**\n * An error occurred trying to fetch the latest update.\n */\n ERROR = 'error',\n}\n\n// @docsMissing\n// TODO(eric): move source of truth for manifest type to this module\n/**\n * @hidden\n */\nexport type ClassicManifest = typeof Constants.manifest;\n\n// @docsMissing\n/**\n * @hidden\n */\nexport type Manifest = ClassicManifest | typeof Constants.manifest2;\n// modern manifest type is intentionally not exported, since the plan is to call it just \"Manifest\"\n// in the future\n\n/**\n * The result of checking for a new update.\n */\nexport type UpdateCheckResult = {\n /**\n * `true` if an update is available, `false` if the app is already running the latest available\n * update.\n */\n isAvailable: boolean;\n /**\n * If `isAvailable` is `true`, the manifest of the available update, and `undefined` otherwise.\n */\n manifest?: Manifest;\n};\n\n/**\n * The result of fetching a new update.\n */\nexport type UpdateFetchResult = {\n /**\n * `true` if the fetched bundle is new (that is, a different version than what's currently\n * running), `false` otherwise.\n */\n isNew: boolean;\n /**\n * If `isNew` is `true`, the manifest of the newly downloaded update, and `undefined` otherwise.\n */\n manifest?: Manifest;\n};\n\n/**\n * An object that is passed into each event listener when an auto-update check occurs.\n */\nexport type UpdateEvent = {\n /**\n * Type of the event.\n */\n type: UpdateEventType;\n /**\n * If `type` is `Updates.UpdateEventType.UPDATE_AVAILABLE`, the manifest of the newly downloaded\n * update, and `undefined` otherwise.\n */\n manifest?: Manifest;\n /**\n * If `type` is `Updates.UpdateEventType.ERROR`, the error message, and `undefined` otherwise.\n */\n message?: string;\n};\n\n// @docsMissing\n/**\n * @hidden\n */\nexport type LocalAssets = Record;\n","import { Platform } from 'expo-modules-core';\n\nexport default {\n get name(): string {\n return 'ExpoUpdates';\n },\n async reload(): Promise {\n if (!Platform.isDOMAvailable) return;\n window.location.reload(true);\n },\n};\n","import {\n RCTDeviceEventEmitter,\n CodedError,\n NativeModulesProxy,\n UnavailabilityError,\n} from 'expo-modules-core';\nimport { EventEmitter, EventSubscription } from 'fbemitter';\n\nimport ExpoUpdates from './ExpoUpdates';\nimport {\n LocalAssets,\n Manifest,\n UpdateCheckResult,\n UpdateEvent,\n UpdateFetchResult,\n} from './Updates.types';\n\nexport * from './Updates.types';\n\n/**\n * The UUID that uniquely identifies the currently running update if `expo-updates` is enabled. The\n * UUID is represented in its canonical string form (`xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`) and\n * will always use lowercase letters. In development mode, or any other environment in which\n * `expo-updates` is disabled, this value is `null`.\n */\nexport const updateId: string | null =\n ExpoUpdates.updateId && typeof ExpoUpdates.updateId === 'string'\n ? ExpoUpdates.updateId.toLowerCase()\n : null;\n\n/**\n * The name of the release channel currently configured in this standalone or bare app when using\n * classic updates. When using Expo Updates, the value of this field is always `\"default\"`.\n */\nexport const releaseChannel: string = ExpoUpdates.releaseChannel ?? 'default';\n\n/**\n * The channel name of the current build, if configured for use with EAS Update. Null otherwise.\n */\nexport const channel: string | null = ExpoUpdates.channel ?? null;\n\n/**\n * The runtime version of the current build.\n */\nexport const runtimeVersion: string | null = ExpoUpdates.runtimeVersion ?? null;\n\n// @docsMissing\n/**\n * @hidden\n */\nexport const localAssets: LocalAssets = ExpoUpdates.localAssets ?? {};\n\n/**\n * `expo-updates` does its very best to always launch monotonically newer versions of your app so\n * you don't need to worry about backwards compatibility when you put out an update. In very rare\n * cases, it's possible that `expo-updates` may need to fall back to the update that's embedded in\n * the app binary, even after newer updates have been downloaded and run (an \"emergency launch\").\n * This boolean will be `true` if the app is launching under this fallback mechanism and `false`\n * otherwise. If you are concerned about backwards compatibility of future updates to your app, you\n * can use this constant to provide special behavior for this rare case.\n */\nexport const isEmergencyLaunch: boolean = ExpoUpdates.isEmergencyLaunch || false;\n\n// @docsMissing\n/**\n * @hidden\n */\nexport const isUsingEmbeddedAssets: boolean = ExpoUpdates.isUsingEmbeddedAssets || false;\n\n/**\n * If `expo-updates` is enabled, this is the\n * [manifest](/guides/how-expo-works#expo-development-server) object for the update that's currently\n * running.\n *\n * In development mode, or any other environment in which `expo-updates` is disabled, this object is\n * empty.\n */\nexport const manifest: Partial =\n (ExpoUpdates.manifestString ? JSON.parse(ExpoUpdates.manifestString) : ExpoUpdates.manifest) ??\n {};\n\n/**\n * If `expo-updates` is enabled, this is a `Date` object representing the creation time of the update that's currently running (whether it was embedded or downloaded at runtime).\n *\n * In development mode, or any other environment in which `expo-updates` is disabled, this value is\n * null.\n */\nexport const createdAt: Date | null = ExpoUpdates.commitTime\n ? new Date(ExpoUpdates.commitTime)\n : null;\n\nconst isUsingDeveloperTool = !!(manifest as any).developer?.tool;\nconst isUsingExpoDevelopmentClient = NativeModulesProxy.ExponentConstants?.appOwnership === 'expo';\nconst manualUpdatesInstructions = isUsingExpoDevelopmentClient\n ? 'To test manual updates, publish your project using `expo publish` and open the published ' +\n 'version in this development client.'\n : 'To test manual updates, make a release build with `npm run ios --configuration Release` or ' +\n '`npm run android --variant Release`.';\n\n/**\n * Instructs the app to reload using the most recently downloaded version. This is useful for\n * triggering a newly downloaded update to launch without the user needing to manually restart the\n * app.\n *\n * It is not recommended to place any meaningful logic after a call to `await\n * Updates.reloadAsync()`. This is because the promise is resolved after verifying that the app can\n * be reloaded, and immediately before posting an asynchronous task to the main thread to actually\n * reload the app. It is unsafe to make any assumptions about whether any more JS code will be\n * executed after the `Updates.reloadAsync` method call resolves, since that depends on the OS and\n * the state of the native module and main threads.\n *\n * This method cannot be used in development mode, and the returned promise will be rejected if you\n * try to do so.\n *\n * @return A promise that fulfills right before the reload instruction is sent to the JS runtime, or\n * rejects if it cannot find a reference to the JS runtime. If the promise is rejected in production\n * mode, it most likely means you have installed the module incorrectly. Double check you've\n * followed the installation instructions. In particular, on iOS ensure that you set the `bridge`\n * property on `EXUpdatesAppController` with a pointer to the `RCTBridge` you want to reload, and on\n * Android ensure you either call `UpdatesController.initialize` with the instance of\n * `ReactApplication` you want to reload, or call `UpdatesController.setReactNativeHost` with the\n * proper instance of `ReactNativeHost`.\n */\nexport async function reloadAsync(): Promise {\n if (!ExpoUpdates.reload) {\n throw new UnavailabilityError('Updates', 'reloadAsync');\n }\n if (__DEV__ && !isUsingExpoDevelopmentClient) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot use the Updates module in development mode in a production app. ${manualUpdatesInstructions}`\n );\n }\n await ExpoUpdates.reload();\n}\n\n/**\n * Checks the server to see if a newly deployed update to your project is available. Does not\n * actually download the update. This method cannot be used in development mode, and the returned\n * promise will be rejected if you try to do so.\n *\n * Checking for an update uses a device's bandwidth and battery life like any network call.\n * Additionally, updates served by Expo may be rate limited. A good rule of thumb to check for\n * updates judiciously is to check when the user launches or foregrounds the app. Avoid polling for\n * updates in a frequent loop.\n *\n * @return A promise that fulfills with an [`UpdateCheckResult`](#updatecheckresult) object.\n *\n * The promise rejects if the app is in development mode, or if there is an unexpected error or\n * timeout communicating with the server.\n */\nexport async function checkForUpdateAsync(): Promise {\n if (!ExpoUpdates.checkForUpdateAsync) {\n throw new UnavailabilityError('Updates', 'checkForUpdateAsync');\n }\n if (__DEV__ || isUsingDeveloperTool) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot check for updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.checkForUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\n/**\n * Downloads the most recently deployed update to your project from server to the device's local\n * storage. This method cannot be used in development mode, and the returned promise will be\n * rejected if you try to do so.\n *\n * @return A promise that fulfills with an [`UpdateFetchResult`](#updatefetchresult) object.\n *\n * The promise rejects if the app is in development mode, or if there is an unexpected error or\n * timeout communicating with the server.\n */\nexport async function fetchUpdateAsync(): Promise {\n if (!ExpoUpdates.fetchUpdateAsync) {\n throw new UnavailabilityError('Updates', 'fetchUpdateAsync');\n }\n if (__DEV__ || isUsingDeveloperTool) {\n throw new CodedError(\n 'ERR_UPDATES_DISABLED',\n `You cannot fetch updates in development mode. ${manualUpdatesInstructions}`\n );\n }\n\n const result = await ExpoUpdates.fetchUpdateAsync();\n if (result.manifestString) {\n result.manifest = JSON.parse(result.manifestString);\n delete result.manifestString;\n }\n\n return result;\n}\n\n/**\n * @hidden\n */\nexport function clearUpdateCacheExperimentalAsync(_sdkVersion?: string) {\n console.warn(\n \"This method is no longer necessary. `expo-updates` now automatically deletes your app's old bundle files!\"\n );\n}\n\nlet _emitter: EventEmitter | null;\n\nfunction _getEmitter(): EventEmitter {\n if (!_emitter) {\n _emitter = new EventEmitter();\n RCTDeviceEventEmitter.addListener('Expo.nativeUpdatesEvent', _emitEvent);\n }\n return _emitter;\n}\n\nfunction _emitEvent(params): void {\n let newParams = params;\n if (typeof params === 'string') {\n newParams = JSON.parse(params);\n }\n if (newParams.manifestString) {\n newParams.manifest = JSON.parse(newParams.manifestString);\n delete newParams.manifestString;\n }\n\n if (!_emitter) {\n throw new Error(`EventEmitter must be initialized to use from its listener`);\n }\n _emitter.emit('Expo.updatesEvent', newParams);\n}\n\n/**\n * Adds a callback to be invoked when updates-related events occur (such as upon the initial app\n * load) due to auto-update settings chosen at build-time.\n *\n * @param listener A function that will be invoked with an [`UpdateEvent`](#updateevent) instance\n * and should not return any value.\n * @return An `EventSubscription` object on which you can call `remove()` to unsubscribe the\n * listener.\n */\nexport function addListener(listener: (event: UpdateEvent) => void): EventSubscription {\n const emitter = _getEmitter();\n return emitter.addListener('Expo.updatesEvent', listener);\n}\n","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import { QueryObserver } from '../core';\nimport { parseQueryArgs } from '../core/utils';\nimport { useBaseQuery } from './useBaseQuery'; // HOOK\n\nexport function useQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n return useBaseQuery(parsedOptions, QueryObserver);\n}","import React from 'react';\nimport { notifyManager } from '../core/notifyManager';\nimport { useQueryErrorResetBoundary } from './QueryErrorResetBoundary';\nimport { useQueryClient } from './QueryClientProvider';\nimport { shouldThrowError } from './utils';\nexport function useBaseQuery(options, Observer) {\n var mountedRef = React.useRef(false);\n\n var _React$useState = React.useState(0),\n forceUpdate = _React$useState[1];\n\n var queryClient = useQueryClient();\n var errorResetBoundary = useQueryErrorResetBoundary();\n var defaultedOptions = queryClient.defaultQueryObserverOptions(options); // Make sure results are optimistically set in fetching state before subscribing or updating options\n\n defaultedOptions.optimisticResults = true; // Include callbacks in batch renders\n\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(defaultedOptions.onError);\n }\n\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(defaultedOptions.onSuccess);\n }\n\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(defaultedOptions.onSettled);\n }\n\n if (defaultedOptions.suspense) {\n // Always set stale time when using suspense to prevent\n // fetching again when directly mounting after suspending\n if (typeof defaultedOptions.staleTime !== 'number') {\n defaultedOptions.staleTime = 1000;\n } // Set cache time to 1 if the option has been set to 0\n // when using suspense to prevent infinite loop of fetches\n\n\n if (defaultedOptions.cacheTime === 0) {\n defaultedOptions.cacheTime = 1;\n }\n }\n\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n // Prevent retrying failed query if the error boundary has not been reset yet\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n\n var _React$useState2 = React.useState(function () {\n return new Observer(queryClient, defaultedOptions);\n }),\n observer = _React$useState2[0];\n\n var result = observer.getOptimisticResult(defaultedOptions);\n React.useEffect(function () {\n mountedRef.current = true;\n errorResetBoundary.clearReset();\n var unsubscribe = observer.subscribe(notifyManager.batchCalls(function () {\n if (mountedRef.current) {\n forceUpdate(function (x) {\n return x + 1;\n });\n }\n })); // Update result to make sure we did not miss any query updates\n // between creating the observer and subscribing to it.\n\n observer.updateResult();\n return function () {\n mountedRef.current = false;\n unsubscribe();\n };\n }, [errorResetBoundary, observer]);\n React.useEffect(function () {\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n observer.setOptions(defaultedOptions, {\n listeners: false\n });\n }, [defaultedOptions, observer]); // Handle suspense\n\n if (defaultedOptions.suspense && result.isLoading) {\n throw observer.fetchOptimistic(defaultedOptions).then(function (_ref) {\n var data = _ref.data;\n defaultedOptions.onSuccess == null ? void 0 : defaultedOptions.onSuccess(data);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(data, null);\n }).catch(function (error) {\n errorResetBoundary.clearReset();\n defaultedOptions.onError == null ? void 0 : defaultedOptions.onError(error);\n defaultedOptions.onSettled == null ? void 0 : defaultedOptions.onSettled(undefined, error);\n });\n } // Handle error boundary\n\n\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.suspense, defaultedOptions.useErrorBoundary, [result.error, observer.getCurrentQuery()])) {\n throw result.error;\n } // Handle result property usage tracking\n\n\n if (defaultedOptions.notifyOnChangeProps === 'tracked') {\n result = observer.trackResult(result, defaultedOptions);\n }\n\n return result;\n}","/* global localStorage */\nimport type { MMKVConfiguration, NativeMMKV } from 'react-native-mmkv';\n\nconst canUseDOM =\n typeof window !== 'undefined' && window.document?.createElement != null;\n\nexport const createMMKV = (config: MMKVConfiguration): NativeMMKV => {\n if (config.id !== 'mmkv.default') {\n throw new Error(\"MMKV: 'id' is not supported on Web!\");\n }\n if (config.encryptionKey != null) {\n throw new Error(\"MMKV: 'encryptionKey' is not supported on Web!\");\n }\n if (config.path != null) {\n throw new Error(\"MMKV: 'path' is not supported on Web!\");\n }\n\n const storage = () => {\n if (!canUseDOM) {\n throw new Error(\n 'Tried to access storage on the server. Did you forget to call this in useEffect?'\n );\n }\n const domStorage =\n global?.localStorage ?? window?.localStorage ?? localStorage;\n if (domStorage == null) {\n throw new Error(`Could not find 'localStorage' instance!`);\n }\n return domStorage;\n };\n\n return {\n clearAll: () => storage().clear(),\n delete: (key) => storage().removeItem(key),\n set: (key, value) => storage().setItem(key, value.toString()),\n getString: (key) => storage().getItem(key) ?? undefined,\n getNumber: (key) => Number(storage().getItem(key) ?? 0),\n getBoolean: (key) => Boolean(storage().getItem(key) ?? false),\n getAllKeys: () => Object.keys(storage()),\n contains: (key) => storage().getItem(key) != null,\n recrypt: () => {\n throw new Error('`recrypt(..)` is not supported on Web!');\n },\n };\n};\n","function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n}\n\nmodule.exports = _objectDestructuringEmpty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Creates an array of the own and inherited enumerable symbol properties\n * of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\n/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n return object == null ? {} : basePickBy(object, getAllKeysIn(object), baseIteratee(predicate));\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = omitBy;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = baseRest(function(object, props) {\n return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey));\n});\n\nmodule.exports = pick;\n","import Color from 'tinycolor2';\nimport { useToken } from './useToken';\nimport { useAccessibleColors } from '../core/color-mode/hooks';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\n\nexport function useContrastText(bg: string, color?: string) {\n const [\n contrastThreshold,\n trueDarkText,\n trueLightText,\n trueBg,\n trueColor,\n ] = useToken('colors', [\n 'contrastThreshold',\n 'darkText',\n 'lightText',\n bg,\n color ?? '',\n ]);\n\n const suppressColorAccessibilityWarning = useNativeBaseConfig(\n 'NativeBaseConfigProvider'\n ).config.suppressColorAccessibilityWarning;\n\n const [accessibleColors] = useAccessibleColors();\n\n if (useNativeBaseConfig('NativeBaseConfigProvider').disableContrastText) {\n return trueColor;\n }\n if (typeof bg !== 'string') {\n return;\n }\n\n const [bgThemeColorVariant, bgShade] = bg.split('.');\n\n const textColor =\n !accessibleColors &&\n bgThemeColorVariant &&\n themeColorsThresholdShades[bgThemeColorVariant]\n ? getContrastThemeColor(bgThemeColorVariant, bgShade)\n : getAccessibleContrastColor(\n contrastThreshold,\n trueDarkText,\n trueLightText,\n trueBg,\n trueColor,\n bg,\n color,\n suppressColorAccessibilityWarning\n );\n\n return textColor;\n}\n\nfunction getContrastThemeColor(bgThemeColorVariant: string, bgShade: string) {\n const shadeThreshold = themeColorsThresholdShades[bgThemeColorVariant];\n if (\n bgShade &&\n shadeThreshold &&\n ((bgShade >= shadeThreshold && bgThemeColorVariant !== 'dark') ||\n (bgThemeColorVariant === 'dark' && bgShade < shadeThreshold))\n ) {\n return 'lightText';\n }\n return 'darkText';\n}\nfunction getAccessibleContrastColor(\n contrastThreshold: number,\n trueDarkText: string,\n trueLightText: string,\n trueBg: string,\n trueColor: string,\n bg: string,\n color?: string,\n suppressColorAccessibilityWarning?: boolean\n) {\n if (typeof trueBg !== 'string') {\n trueBg = bg;\n }\n let trueContrastColor;\n let contrastColorToken;\n const darkTextConstrast = getContrastRatio(trueBg, trueDarkText);\n const lightTextConstrast = getContrastRatio(trueBg, trueLightText);\n\n if (\n darkTextConstrast >= contrastThreshold ||\n darkTextConstrast > lightTextConstrast\n ) {\n trueContrastColor = trueDarkText;\n contrastColorToken = 'darkText';\n } else {\n trueContrastColor = trueLightText;\n contrastColorToken = 'lightText';\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(\n trueBg,\n trueColor ? trueColor : trueContrastColor\n );\n if (contrast < 3 && !suppressColorAccessibilityWarning) {\n console.warn(\n [\n `NativeBase: The contrast ratio of ${contrast}:1 for ${\n color ? color : contrastColorToken\n } on ${bg}`,\n 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.',\n 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast',\n ].join('\\n')\n );\n }\n }\n return contrastColorToken;\n}\nfunction getContrastRatio(foreground: string, background: string) {\n const lumA = Color(foreground).getLuminance();\n const lumB = Color(background).getLuminance();\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\nconst themeColorsThresholdShades: any = {\n rose: 500,\n pink: 500,\n fuchsia: 800,\n purple: 700,\n violet: 600,\n indigo: 500,\n blue: 400,\n lightBlue: 400,\n cyan: 300,\n teal: 300,\n emerald: 300,\n tertiary: 300,\n green: 400,\n lime: 600,\n yellow: 800,\n amber: 500,\n orange: 500,\n red: 500,\n warmGray: 500,\n trueGray: 500,\n gray: 500,\n coolGray: 500,\n blueGray: 500,\n dark: 500,\n danger: 500,\n error: 500,\n success: 400,\n warning: 500,\n muted: 500,\n primary: 500,\n info: 400,\n secondary: 500,\n light: 500,\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 warning from 'fbjs/lib/warning';\nvar invalidShortforms = {\n background: true,\n borderBottom: true,\n borderLeft: true,\n borderRight: true,\n borderTop: true,\n font: true,\n grid: true,\n outline: true,\n textDecoration: true\n};\n\nfunction error(message) {\n warning(false, message);\n}\n\nexport default function validate(key, styles) {\n var obj = styles[key];\n\n for (var k in obj) {\n var prop = k.trim();\n var value = obj[prop];\n var isInvalid = false;\n\n if (value === null) {\n continue;\n }\n\n if (typeof value === 'string' && value.indexOf('!important') > -1) {\n error(\"Invalid style declaration \\\"\" + prop + \":\" + value + \"\\\". Values cannot include \\\"!important\\\"\");\n isInvalid = true;\n } else {\n var suggestion = '';\n\n if (prop === 'animation' || prop === 'animationName') {\n suggestion = 'Did you mean \"animationKeyframes\"?'; // } else if (prop === 'boxShadow') {\n // suggestion = 'Did you mean \"shadow{Color,Offset,Opacity,Radius}\"?';\n\n isInvalid = true;\n } else if (prop === 'direction') {\n suggestion = 'Did you mean \"writingDirection\"?';\n isInvalid = true;\n } else if (prop === 'verticalAlign') {\n suggestion = 'Did you mean \"textAlignVertical\"?';\n isInvalid = true;\n } else if (invalidShortforms[prop]) {\n suggestion = 'Please use long-form properties.';\n isInvalid = true;\n }\n\n if (suggestion !== '') {\n error(\"Invalid style property of \\\"\" + prop + \"\\\". \" + suggestion);\n }\n }\n\n if (isInvalid) {\n delete obj[k];\n }\n }\n}","import { useMemo } from 'react';\n//@ts-ignore\nimport hash from 'stable-hash';\n\nexport function useStableMemo(factory: () => T, deps: any[]) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(factory, [hash(deps)]);\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}","/* 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 { useEffect, useState } from 'react';\nimport { useTheme } from '../hooks/useTheme';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { isResponsiveAnyProp } from '../theme/tools';\n\nexport function useResponsiveSSRProps(incomingProps: any) {\n const [modified, setModified] = useState(false);\n const theme = useTheme();\n\n const responsivePropsExists = isResponsiveAnyProp(incomingProps, theme);\n const isSSR = useNativeBaseConfig('useBreakpointResolvedProps').isSSR;\n\n let modifiedProps = incomingProps;\n if (responsivePropsExists && isSSR && !modified) {\n modifiedProps = { ...modifiedProps, key: Math.random() };\n }\n useEffect((): any => {\n if (responsivePropsExists && isSSR) {\n setModified(true);\n }\n }, [responsivePropsExists, isSSR]);\n\n return modifiedProps;\n}\n","import React from 'react';\nimport type { ResponsiveValue } from '../components/types';\nimport { useNativeBaseConfig } from '../core/NativeBaseContext';\nimport { resolveValueWithBreakpoint } from './useThemeProps/utils';\nimport { useTheme } from './../hooks/useTheme';\n\ntype IProps = {\n [key: string]: ResponsiveValue;\n};\n\ntype INewProps = {\n [key: string]: number | string;\n};\n\nexport const useBreakpointResolvedProps = (props: IProps) => {\n const currentBreakpoint = useNativeBaseConfig('useBreakpointResolvedProps')\n .currentBreakpoint;\n const theme = useTheme();\n const newProps: INewProps = React.useMemo(() => {\n let newProps: INewProps = {};\n for (let key in props) {\n const rawValue = props[key];\n const value = resolveValueWithBreakpoint(\n rawValue,\n theme.breakpoints,\n currentBreakpoint,\n key\n );\n newProps[key] = value;\n }\n return newProps;\n }, [props, currentBreakpoint, theme.breakpoints]);\n\n return newProps;\n};\n","/* eslint-env browser */\n\nimport * as React from 'react';\nimport { View } from 'react-native';\nimport type { 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 function NativeSafeAreaProvider({\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 | undefined = 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 as string;\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","/**\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 * @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) 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) 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;","/**\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;","/**\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;","/**\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;","import MapperRegistry from './MapperRegistry';\nimport Mapper from './Mapper';\nimport MutableValue from './MutableValue';\nimport { NativeReanimated } from '../NativeReanimated/NativeReanimated';\nimport { isJest } from '../PlatformChecker';\nexport default class JSReanimated extends NativeReanimated {\n constructor() {\n super(false);\n this._valueSetter = undefined;\n this._renderRequested = false;\n this._mapperRegistry = new MapperRegistry(this);\n this._frames = [];\n if (isJest()) {\n this.timeProvider = { now: () => global.ReanimatedDataMock.now() };\n }\n else {\n this.timeProvider = { now: () => window.performance.now() };\n }\n }\n pushFrame(frame) {\n this._frames.push(frame);\n this.maybeRequestRender();\n }\n getTimestamp() {\n return this.timeProvider.now();\n }\n maybeRequestRender() {\n if (!this._renderRequested) {\n this._renderRequested = true;\n requestAnimationFrame((_timestampMs) => {\n this._renderRequested = false;\n this._onRender(this.getTimestamp());\n });\n }\n }\n _onRender(timestampMs) {\n this._mapperRegistry.execute();\n const frames = [...this._frames];\n this._frames = [];\n for (let i = 0, len = frames.length; i < len; ++i) {\n frames[i](timestampMs);\n }\n if (this._mapperRegistry.needRunOnRender) {\n this._mapperRegistry.execute();\n }\n }\n installCoreFunctions(valueSetter) {\n this._valueSetter = valueSetter;\n }\n makeShareable(value) {\n return value;\n }\n makeMutable(value) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return new MutableValue(value, this._valueSetter);\n }\n makeRemote(object = {}) {\n return object;\n }\n startMapper(mapper, inputs = [], outputs = []) {\n const instance = new Mapper(this, mapper, inputs, outputs);\n const mapperId = this._mapperRegistry.startMapper(instance);\n this.maybeRequestRender();\n return mapperId;\n }\n stopMapper(mapperId) {\n this._mapperRegistry.stopMapper(mapperId);\n }\n registerEventHandler(_, __) {\n // noop\n return '';\n }\n unregisterEventHandler(_) {\n // noop\n }\n enableLayoutAnimations() {\n console.warn('[Reanimated] enableLayoutAnimations is not available for WEB yet');\n }\n registerSensor() {\n console.warn('[Reanimated] useAnimatedSensor is not available on web yet.');\n return -1;\n }\n unregisterSensor() {\n // noop\n }\n jestResetModule() {\n if (isJest()) {\n /**\n * If someone used timers to stop animation before the end,\n * then _renderRequested was set as true\n * and any new update from another test wasn't applied.\n */\n this._renderRequested = false;\n }\n else {\n throw Error('This method can be only use in Jest testing.');\n }\n }\n}\n","export default class MapperRegistry {\n constructor(module) {\n this.sortedMappers = [];\n this.mappers = new Map();\n this.updatedSinceLastExecute = false;\n this._module = module;\n }\n startMapper(mapper) {\n this.mappers.set(mapper.id, mapper);\n this.updatedSinceLastExecute = true;\n return mapper.id;\n }\n stopMapper(id) {\n this.mappers.delete(id);\n this.updatedSinceLastExecute = true;\n }\n execute() {\n if (this.updatedSinceLastExecute) {\n this.updateOrder();\n this.updatedSinceLastExecute = false;\n }\n for (let i = 0, len = this.sortedMappers.length; i < len; ++i) {\n const mapper = this.sortedMappers[i];\n if (mapper.dirty) {\n mapper.execute();\n }\n }\n }\n updateOrder() {\n const nodes = [...this.mappers.values()].map((mapper) => new Node(mapper));\n const mappersById = {};\n this.mappers.forEach((mapper) => {\n mappersById[mapper.id] = mapper;\n });\n // create a graph from array of nodes\n for (let i = 0, nodesLen = nodes.length; i < nodesLen; ++i) {\n const node = nodes[i];\n if (node.mapper.outputs.length === 0) {\n continue;\n }\n for (let j = 0; j < nodesLen; ++j) {\n const restNode = nodes[j];\n if (i === j || restNode.mapper.inputs.length === 0) {\n continue;\n }\n for (let outi = 0, outputsLen = node.mapper.outputs.length; outi < outputsLen; ++outi) {\n for (let resti = 0, restLen = restNode.mapper.inputs.length; resti < restLen; ++resti) {\n if (node.mapper.outputs[outi]._id ===\n restNode.mapper.inputs[resti]._id) {\n node.children.push(restNode);\n }\n }\n }\n }\n }\n const post = {};\n let postCounter = 1;\n const dfs = (node) => {\n const index = nodes.indexOf(node);\n if (index === -1) {\n // this node has already been handled\n return;\n }\n ++postCounter;\n nodes.splice(index, 1);\n if (node.children.length === 0 && nodes.length > 0) {\n post[node.mapper.id] = postCounter++;\n dfs(nodes[0]);\n return;\n }\n for (let i = 0, len = node.children.length; i < len; ++i) {\n dfs(node.children[i]);\n }\n post[node.mapper.id] = postCounter++;\n };\n while (nodes.length)\n dfs(nodes[0]);\n const postArray = Object.keys(post).map((key) => {\n const num = parseInt(key);\n return [num, post[num]];\n });\n postArray.sort((a, b) => {\n return b[1] - a[1];\n });\n // clear sorted mappers\n this.sortedMappers = [];\n for (let i = 0, len = postArray.length; i < len; ++i) {\n const [id] = postArray[i];\n this.sortedMappers.push(mappersById[id]);\n }\n }\n get needRunOnRender() {\n return this.updatedSinceLastExecute;\n }\n}\nclass Node {\n constructor(mapper, children = []) {\n this.mapper = mapper;\n this.children = children;\n }\n}\n","import MutableValue from './MutableValue';\nexport default class Mapper {\n constructor(module, mapper, inputs = [], outputs = []) {\n this.dirty = true;\n this.id = Mapper.MAPPER_ID++;\n this.inputs = this.extractMutablesFromArray(inputs);\n this.outputs = this.extractMutablesFromArray(outputs);\n this.mapper = mapper;\n const markDirty = () => {\n this.dirty = true;\n module.maybeRequestRender();\n };\n this.inputs.forEach((input) => {\n input.addListener(markDirty);\n });\n }\n execute() {\n this.dirty = false;\n this.mapper();\n }\n extractMutablesFromArray(array) {\n const res = [];\n function extractMutables(value) {\n if (value == null) {\n // return;\n }\n else if (value instanceof MutableValue) {\n res.push(value);\n }\n else if (Array.isArray(value)) {\n value.forEach((v) => extractMutables(v));\n }\n else if (typeof value === 'object') {\n Object.keys(value).forEach((key) => {\n extractMutables(value[key]);\n });\n }\n }\n extractMutables(array);\n return res;\n }\n}\nMapper.MAPPER_ID = 1;\n","/**\n * imported from react-native\n */\nfunction setAndForwardRef({ getForwardedRef, setLocalRef, }) {\n return function forwardRef(ref) {\n const forwardedRef = getForwardedRef();\n setLocalRef(ref);\n // Forward to user ref prop (if one has been specified)\n if (typeof forwardedRef === 'function') {\n // Handle function-based refs. String-based refs are handled as functions.\n forwardedRef(ref);\n }\n else if (typeof forwardedRef === 'object' && forwardedRef != null) {\n // Handle createRef-based refs\n forwardedRef.current = ref;\n }\n };\n}\nexport default setAndForwardRef;\n","\"use strict\";\n// RNRender is not used for web. An export is still defined to eliminate warnings from bundlers such as esbuild.\nmodule.exports = null;\n","/* 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","/* Font Face Observer v2.1.0 - © Bram Stein. License: BSD-3-Clause */(function(){function l(a,b){document.addEventListener?a.addEventListener(\"scroll\",b,!1):a.attachEvent(\"scroll\",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener(\"DOMContentLoaded\",function c(){document.removeEventListener(\"DOMContentLoaded\",c);a()}):document.attachEvent(\"onreadystatechange\",function k(){if(\"interactive\"==document.readyState||\"complete\"==document.readyState)document.detachEvent(\"onreadystatechange\",k),a()})};function t(a){this.a=document.createElement(\"div\");this.a.setAttribute(\"aria-hidden\",\"true\");this.a.appendChild(document.createTextNode(a));this.b=document.createElement(\"span\");this.c=document.createElement(\"span\");this.h=document.createElement(\"span\");this.f=document.createElement(\"span\");this.g=-1;this.b.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.c.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";\nthis.f.style.cssText=\"max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;\";this.h.style.cssText=\"display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;\";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)}\nfunction u(a,b){a.a.style.cssText=\"max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:\"+b+\";\"}function z(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+\"px\";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function A(a,b){function c(){var a=k;z(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);z(a)};function B(a,b){var c=b||{};this.family=a;this.style=c.style||\"normal\";this.weight=c.weight||\"normal\";this.stretch=c.stretch||\"normal\"}var C=null,D=null,E=null,F=null;function G(){if(null===D)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))(?:\\.([0-9]+))/.exec(window.navigator.userAgent);D=!!a&&603>parseInt(a[1],10)}else D=!1;return D}function J(){null===F&&(F=!!document.fonts);return F}\nfunction K(){if(null===E){var a=document.createElement(\"div\");try{a.style.font=\"condensed 100px sans-serif\"}catch(b){}E=\"\"!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:\"\",\"100px\",b].join(\" \")}\nB.prototype.load=function(a,b){var c=this,k=a||\"BESbswy\",r=0,n=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=n?b(Error(\"\"+n+\"ms timeout exceeded\")):document.fonts.load(L(c,'\"'+c.family+'\"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},b)}e()}),N=new Promise(function(a,c){r=setTimeout(function(){c(Error(\"\"+n+\"ms timeout exceeded\"))},n)});Promise.race([N,M]).then(function(){clearTimeout(r);a(c)},\nb)}else m(function(){function v(){var b;if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===C&&(b=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent),C=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=C&&(f==w&&g==w&&h==w||f==x&&g==x&&h==x||f==y&&g==y&&h==y)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(r),a(c))}function I(){if((new Date).getTime()-H>=n)d.parentNode&&d.parentNode.removeChild(d),b(Error(\"\"+\nn+\"ms timeout exceeded\"));else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,g=p.a.offsetWidth,h=q.a.offsetWidth,v();r=setTimeout(I,50)}}var e=new t(k),p=new t(k),q=new t(k),f=-1,g=-1,h=-1,w=-1,x=-1,y=-1,d=document.createElement(\"div\");d.dir=\"ltr\";u(e,L(c,\"sans-serif\"));u(p,L(c,\"serif\"));u(q,L(c,\"monospace\"));d.appendChild(e.a);d.appendChild(p.a);d.appendChild(q.a);document.body.appendChild(d);w=e.a.offsetWidth;x=p.a.offsetWidth;y=q.a.offsetWidth;I();A(e,function(a){f=a;v()});u(e,\nL(c,'\"'+c.family+'\",sans-serif'));A(p,function(a){g=a;v()});u(p,L(c,'\"'+c.family+'\",serif'));A(q,function(a){h=a;v()});u(q,L(c,'\"'+c.family+'\",monospace'))})})};\"object\"===typeof module?module.exports=B:(window.FontFaceObserver=B,window.FontFaceObserver.prototype.load=B.prototype.load);}());\n","module.exports = __webpack_public_path__ + \"./fonts/MaterialCommunityIcons.ttf\";","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, DOMProps, LabelableProps} from '@react-types/shared';\nimport {ElementType, LabelHTMLAttributes} from 'react';\nimport {useId, useLabels} from '@react-aria/utils';\n\nexport interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingProps {\n /**\n * The HTML element used to render the label, e.g. 'label', or 'span'.\n * @default 'label'\n */\n labelElementType?: ElementType\n}\n\nexport interface LabelAria {\n /** Props to apply to the label container element. */\n labelProps: LabelHTMLAttributes,\n /** Props to apply to the field container element being labeled. */\n fieldProps: AriaLabelingProps & DOMProps\n}\n\n/**\n * Provides the accessibility implementation for labels and their associated elements.\n * Labels provide context for user inputs.\n * @param props - The props for labels and fields.\n */\nexport function useLabel(props: LabelAriaProps): LabelAria {\n let {\n id,\n label,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n labelElementType = 'label'\n } = props;\n\n id = useId(id);\n let labelId = useId();\n let labelProps = {};\n if (label) {\n ariaLabelledby = ariaLabelledby ? `${ariaLabelledby} ${labelId}` : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n let fieldProps = useLabels({\n id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n\n return {\n labelProps,\n fieldProps\n };\n}\n","/*\n * Copyright 2021 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {HelpTextProps, Validation} from '@react-types/shared';\nimport {HTMLAttributes} from 'react';\nimport {LabelAria, LabelAriaProps, useLabel} from './useLabel';\nimport {mergeProps, useSlotId} from '@react-aria/utils';\n\ninterface AriaFieldProps extends LabelAriaProps, HelpTextProps, Omit {}\n\nexport interface FieldAria extends LabelAria {\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes\n}\n\n/**\n * Provides the accessibility implementation for input fields.\n * Fields accept user input, gain context from their label, and may display a description or error message.\n * @param props - Props for the Field.\n */\nexport function useField(props: AriaFieldProps): FieldAria {\n let {description, errorMessage, validationState} = props;\n let {labelProps, fieldProps} = useLabel(props);\n\n let descriptionId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n let errorMessageId = useSlotId([Boolean(description), Boolean(errorMessage), validationState]);\n\n fieldProps = mergeProps(fieldProps, {\n 'aria-describedby': [\n descriptionId,\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA. See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId,\n props['aria-describedby']\n ].filter(Boolean).join(' ') || undefined\n });\n\n return {\n labelProps,\n fieldProps,\n descriptionProps: {\n id: descriptionId\n },\n errorMessageProps: {\n id: errorMessageId\n }\n };\n}\n","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n */\r\n\r\nvar fbemitter = {\r\n EventEmitter: require('./lib/BaseEventEmitter'),\r\n EmitterSubscription : require('./lib/EmitterSubscription')\r\n};\r\n\r\nmodule.exports = fbemitter;\r\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_localizedFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};return function(t,o,n){var r=o.prototype,i=r.format;n.en.formats=e,r.format=function(t){void 0===t&&(t=\"YYYY-MM-DDTHH:mm:ssZ\");var o=this.$locale().formats,n=function(t,o){return t.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var i=r&&r.toUpperCase();return n||o[r]||e[r]||o[i].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,o){return t||o.slice(1)}))}))}(t,void 0===o?{}:o);return i.call(this,n)}}}));","function _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nfunction _empty() {}\n\nfunction _invokeIgnored(body) {\n var result = body();\n\n if (result && result.then) {\n return result.then(_empty);\n }\n}\n\nexport var createAsyncStoragePersistor = function createAsyncStoragePersistor(_ref) {\n var storage = _ref.storage,\n _ref$key = _ref.key,\n key = _ref$key === void 0 ? \"REACT_QUERY_OFFLINE_CACHE\" : _ref$key,\n _ref$throttleTime = _ref.throttleTime,\n throttleTime = _ref$throttleTime === void 0 ? 1000 : _ref$throttleTime,\n _ref$serialize = _ref.serialize,\n serialize = _ref$serialize === void 0 ? JSON.stringify : _ref$serialize,\n _ref$deserialize = _ref.deserialize,\n deserialize = _ref$deserialize === void 0 ? JSON.parse : _ref$deserialize;\n return {\n persistClient: asyncThrottle(function (persistedClient) {\n return storage.setItem(key, serialize(persistedClient));\n }, {\n interval: throttleTime\n }),\n restoreClient: _async(function () {\n return _await(storage.getItem(key), function (cacheString) {\n if (!cacheString) {\n return;\n }\n\n return deserialize(cacheString);\n });\n }),\n removeClient: function removeClient() {\n return storage.removeItem(key);\n }\n };\n};\n\nfunction asyncThrottle(func, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$interval = _ref2.interval,\n interval = _ref2$interval === void 0 ? 1000 : _ref2$interval,\n _ref2$limit = _ref2.limit,\n limit = _ref2$limit === void 0 ? 1 : _ref2$limit;\n\n if (typeof func !== 'function') throw new Error('argument is not function.');\n var running = {\n current: false\n };\n var lastTime = 0;\n var timeout;\n var queue = [];\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _async(function () {\n if (running.current) {\n lastTime = Date.now();\n\n if (queue.length > limit) {\n queue.shift();\n }\n\n queue.push(args);\n clearTimeout(timeout);\n }\n\n return _invokeIgnored(function () {\n if (Date.now() - lastTime > interval) {\n running.current = true;\n return _await(func.apply(void 0, args), function () {\n lastTime = Date.now();\n running.current = false;\n });\n } else {\n if (queue.length > 0) {\n var lastArgs = queue[queue.length - 1];\n timeout = setTimeout(_async(function () {\n return _invokeIgnored(function () {\n if (!running.current) {\n running.current = true;\n return _await(func.apply(void 0, lastArgs), function () {\n running.current = false;\n });\n }\n });\n }), interval);\n }\n }\n });\n })();\n };\n}","import { getLogger } from '../core/logger';\nimport { dehydrate, hydrate } from 'react-query';\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }\n\n if (result && result.then) {\n return result.then(void 0, recover);\n }\n\n return result;\n}\n\nfunction _continue(value, then) {\n return value && value.then ? value.then(then) : then(value);\n}\n\nfunction _empty() {}\n\nfunction _invokeIgnored(body) {\n var result = body();\n\n if (result && result.then) {\n return result.then(_empty);\n }\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nexport var persistQueryClient = _async(function (_ref) {\n var queryClient = _ref.queryClient,\n persistor = _ref.persistor,\n _ref$maxAge = _ref.maxAge,\n maxAge = _ref$maxAge === void 0 ? 1000 * 60 * 60 * 24 : _ref$maxAge,\n _ref$buster = _ref.buster,\n buster = _ref$buster === void 0 ? '' : _ref$buster,\n hydrateOptions = _ref.hydrateOptions,\n dehydrateOptions = _ref.dehydrateOptions;\n return _invokeIgnored(function () {\n if (typeof window !== 'undefined') {\n // Subscribe to changes\n var saveClient = function saveClient() {\n var persistClient = {\n buster: buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n persistor.persistClient(persistClient);\n }; // Attempt restore\n\n\n return _continue(_catch(function () {\n return _await(persistor.restoreClient(), function (persistedClient) {\n if (persistedClient) {\n if (persistedClient.timestamp) {\n var expired = Date.now() - persistedClient.timestamp > maxAge;\n var busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persistor.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persistor.removeClient();\n }\n }\n });\n }, function (err) {\n getLogger().error(err);\n getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n persistor.removeClient();\n }), function () {\n // Subscribe to changes in the query cache to trigger the save\n queryClient.getQueryCache().subscribe(saveClient);\n });\n }\n });\n});","// These styles need to be nested in a transform array\nconst TRANSFORM_STYLE_PROPERTIES = [\n 'perspective',\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'scale',\n 'scaleX',\n 'scaleY',\n 'skewX',\n 'skewY',\n 'translateX',\n 'translateY',\n];\n\n// Transforms { translateX: 1 } to { transform: [{ translateX: 1 }]}\nexport default function wrapStyleTransforms(style) {\n const wrapped = {};\n Object.keys(style).forEach(key => {\n if (TRANSFORM_STYLE_PROPERTIES.indexOf(key) !== -1) {\n if (!wrapped.transform) {\n wrapped.transform = [];\n }\n wrapped.transform.push({\n [key]: style[key],\n });\n } else {\n wrapped[key] = style[key];\n }\n });\n return wrapped;\n}\n","import { StyleSheet } from 'react-native';\n\nexport default function flattenStyle(style) {\n const flatStyle = Object.assign({}, StyleSheet.flatten(style));\n if (flatStyle.transform) {\n flatStyle.transform.forEach(transform => {\n const key = Object.keys(transform)[0];\n flatStyle[key] = transform[key];\n });\n delete flatStyle.transform;\n }\n return flatStyle;\n}\n","/* eslint-disable no-plusplus */\n\nconst DIRECTIONAL_FALLBACKS = {\n Top: ['Vertical', ''],\n Bottom: ['Vertical', ''],\n Vertical: [''],\n Left: ['Horizontal', ''],\n Right: ['Horizontal', ''],\n Horizontal: [''],\n};\n\nconst DIRECTIONAL_SUFFICES = Object.keys(DIRECTIONAL_FALLBACKS);\n\nexport default function getDefaultStyleValue(key, flatStyle) {\n if (key === 'backgroundColor') {\n return 'rgba(0,0,0,0)';\n }\n if (key === 'color' || key.indexOf('Color') !== -1) {\n return 'rgba(0,0,0,1)';\n }\n if (key.indexOf('rotate') === 0 || key.indexOf('skew') === 0) {\n return '0deg';\n }\n if (key === 'opacity' || key.indexOf('scale') === 0) {\n return 1;\n }\n if (key === 'fontSize') {\n return 14;\n }\n if (key.indexOf('margin') === 0 || key.indexOf('padding') === 0) {\n for (let suffix, i = 0; i < DIRECTIONAL_SUFFICES.length; i++) {\n suffix = DIRECTIONAL_SUFFICES[i];\n if (key.substr(-suffix.length) === suffix) {\n const prefix = key.substr(0, key.length - suffix.length);\n const fallbacks = DIRECTIONAL_FALLBACKS[suffix];\n for (let fallback, j = 0; j < fallbacks.length; j++) {\n fallback = prefix + fallbacks[j];\n if (fallback in flatStyle) {\n return flatStyle[fallback];\n }\n }\n break;\n }\n }\n }\n return 0;\n}\n","import flattenStyle from './flattenStyle';\nimport getDefaultStyleValue from './getDefaultStyleValue';\n\n// Returns a flattened version of style with only `keys` values.\nexport default function getStyleValues(keys, style) {\n const values = {};\n const flatStyle = flattenStyle(style);\n\n (typeof keys === 'string' ? [keys] : keys).forEach(key => {\n values[key] =\n key in flatStyle ? flatStyle[key] : getDefaultStyleValue(key, flatStyle);\n });\n return values;\n}\n","import flattenStyle from './flattenStyle';\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction notNull(value) {\n return value !== null;\n}\n\nfunction parsePosition(value) {\n if (value === 'from') {\n return 0;\n }\n if (value === 'to') {\n return 1;\n }\n const parsed = parseFloat(value, 10);\n if (Number.isNaN(parsed) || parsed < 0 || parsed > 1) {\n return null;\n }\n return parsed;\n}\n\nconst cache = {};\n\nexport default function createAnimation(definition) {\n const cacheKey = JSON.stringify(definition);\n if (cache[cacheKey]) {\n return cache[cacheKey];\n }\n\n const positions = Object.keys(definition)\n .map(parsePosition)\n .filter(notNull);\n positions.sort(compareNumbers);\n\n if (positions.length < 2) {\n throw new Error('Animation definitions must have at least two values.');\n }\n\n const compiled = {};\n if (definition.easing) {\n compiled.easing = definition.easing;\n }\n if (definition.style) {\n compiled.style = definition.style;\n }\n\n for (let i = 0; i < positions.length; i += 1) {\n const position = positions[i];\n let keyframe = definition[position];\n if (!keyframe) {\n if (position === 0) {\n keyframe = definition.from;\n } else if (position === 1) {\n keyframe = definition.to;\n }\n }\n if (!keyframe) {\n throw new Error('Missing animation keyframe, this should not happen');\n }\n\n keyframe = flattenStyle(keyframe);\n Object.keys(keyframe).forEach(key => {\n if (!(key in compiled)) {\n compiled[key] = {\n inputRange: [],\n outputRange: [],\n };\n }\n compiled[key].inputRange.push(position);\n compiled[key].outputRange.push(keyframe[key]);\n });\n }\n\n cache[cacheKey] = compiled;\n\n return compiled;\n}\n","import createAnimation from './createAnimation';\n\nconst animationRegistry = {};\n\nexport function registerAnimation(animationName, animation) {\n animationRegistry[animationName] = animation;\n}\n\nexport function getAnimationByName(animationName) {\n return animationRegistry[animationName];\n}\n\nexport function getAnimationNames() {\n return Object.keys(animationRegistry);\n}\n\nexport function initializeRegistryWithDefinitions(definitions) {\n Object.keys(definitions).forEach(animationName => {\n registerAnimation(\n animationName,\n createAnimation(definitions[animationName]),\n );\n });\n}\n","import { Easing } from 'react-native';\n\nconst EASING_FUNCTIONS = {\n // Standard CSS easings\n\n linear: Easing.linear,\n ease: Easing.bezier(0.25, 0.1, 0.25, 1),\n 'ease-in': Easing.bezier(0.42, 0, 1, 1),\n 'ease-out': Easing.bezier(0, 0, 0.58, 1),\n 'ease-in-out': Easing.bezier(0.42, 0, 0.58, 1),\n\n // Penner Equations - http://matthewlein.com/ceaser/ & http://easings.net\n\n 'ease-in-cubic': Easing.bezier(0.55, 0.055, 0.675, 0.19),\n 'ease-out-cubic': Easing.bezier(0.215, 0.61, 0.355, 1.0),\n 'ease-in-out-cubic': Easing.bezier(0.645, 0.045, 0.355, 1.0),\n\n 'ease-in-circ': Easing.bezier(0.6, 0.04, 0.98, 0.335),\n 'ease-out-circ': Easing.bezier(0.075, 0.82, 0.165, 1.0),\n 'ease-in-out-circ': Easing.bezier(0.785, 0.135, 0.15, 0.86),\n\n 'ease-in-expo': Easing.bezier(0.95, 0.05, 0.795, 0.035),\n 'ease-out-expo': Easing.bezier(0.19, 1.0, 0.22, 1.0),\n 'ease-in-out-expo': Easing.bezier(1.0, 0.0, 0.0, 1.0),\n\n 'ease-in-quad': Easing.bezier(0.55, 0.085, 0.68, 0.53),\n 'ease-out-quad': Easing.bezier(0.25, 0.46, 0.45, 0.94),\n 'ease-in-out-quad': Easing.bezier(0.455, 0.03, 0.515, 0.955),\n\n 'ease-in-quart': Easing.bezier(0.895, 0.03, 0.685, 0.22),\n 'ease-out-quart': Easing.bezier(0.165, 0.84, 0.44, 1.0),\n 'ease-in-out-quart': Easing.bezier(0.77, 0.0, 0.175, 1.0),\n\n 'ease-in-quint': Easing.bezier(0.755, 0.05, 0.855, 0.06),\n 'ease-out-quint': Easing.bezier(0.23, 1.0, 0.32, 1.0),\n 'ease-in-out-quint': Easing.bezier(0.86, 0.0, 0.07, 1.0),\n\n 'ease-in-sine': Easing.bezier(0.47, 0.0, 0.745, 0.715),\n 'ease-out-sine': Easing.bezier(0.39, 0.575, 0.565, 1.0),\n 'ease-in-out-sine': Easing.bezier(0.445, 0.05, 0.55, 0.95),\n\n 'ease-in-back': Easing.bezier(0.6, -0.28, 0.735, 0.045),\n 'ease-out-back': Easing.bezier(0.175, 0.885, 0.32, 1.275),\n 'ease-in-out-back': Easing.bezier(0.68, -0.55, 0.265, 1.55),\n};\n\nexport default EASING_FUNCTIONS;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { Animated, Easing } from 'react-native';\nimport wrapStyleTransforms from './wrapStyleTransforms';\nimport getStyleValues from './getStyleValues';\nimport flattenStyle from './flattenStyle';\nimport createAnimation from './createAnimation';\nimport { getAnimationByName, getAnimationNames } from './registry';\nimport EASING_FUNCTIONS from './easing';\n\n// These styles are not number based and thus needs to be interpolated\nconst INTERPOLATION_STYLE_PROPERTIES = [\n // Transform styles\n 'rotate',\n 'rotateX',\n 'rotateY',\n 'rotateZ',\n 'skewX',\n 'skewY',\n 'transformMatrix',\n // View styles\n 'backgroundColor',\n 'borderColor',\n 'borderTopColor',\n 'borderRightColor',\n 'borderBottomColor',\n 'borderLeftColor',\n 'shadowColor',\n // Text styles\n 'color',\n 'textDecorationColor',\n // Image styles\n 'tintColor',\n];\n\nconst ZERO_CLAMPED_STYLE_PROPERTIES = ['width', 'height'];\n\n// Create a copy of `source` without `keys`\nfunction omit(keys, source) {\n const filtered = {};\n Object.keys(source).forEach(key => {\n if (keys.indexOf(key) === -1) {\n filtered[key] = source[key];\n }\n });\n return filtered;\n}\n\n// Yes it's absurd, but actually fast\nfunction deepEquals(a, b) {\n return a === b || JSON.stringify(a) === JSON.stringify(b);\n}\n\n// Determine to what value the animation should tween to\nfunction getAnimationTarget(iteration, direction) {\n switch (direction) {\n case 'reverse':\n return 0;\n case 'alternate':\n return iteration % 2 ? 0 : 1;\n case 'alternate-reverse':\n return iteration % 2 ? 1 : 0;\n case 'normal':\n default:\n return 1;\n }\n}\n\n// Like getAnimationTarget but opposite\nfunction getAnimationOrigin(iteration, direction) {\n return getAnimationTarget(iteration, direction) ? 0 : 1;\n}\n\nfunction getCompiledAnimation(animation) {\n if (typeof animation === 'string') {\n const compiledAnimation = getAnimationByName(animation);\n if (!compiledAnimation) {\n throw new Error(`No animation registred by the name of ${animation}`);\n }\n return compiledAnimation;\n }\n return createAnimation(animation);\n}\n\nfunction makeInterpolatedStyle(compiledAnimation, animationValue) {\n const style = {};\n Object.keys(compiledAnimation).forEach(key => {\n if (key === 'style') {\n Object.assign(style, compiledAnimation.style);\n } else if (key !== 'easing') {\n style[key] = animationValue.interpolate(compiledAnimation[key]);\n }\n });\n return wrapStyleTransforms(style);\n}\n\nfunction transitionToValue(\n property,\n transitionValue,\n toValue,\n duration,\n easing,\n useNativeDriver = false,\n delay,\n onTransitionBegin,\n onTransitionEnd,\n) {\n const animation =\n duration || easing || delay\n ? Animated.timing(transitionValue, {\n toValue,\n delay,\n duration: duration || 1000,\n easing:\n typeof easing === 'function'\n ? easing\n : EASING_FUNCTIONS[easing || 'ease'],\n useNativeDriver,\n })\n : Animated.spring(transitionValue, { toValue, useNativeDriver });\n setTimeout(() => onTransitionBegin(property), delay);\n animation.start(() => onTransitionEnd(property));\n}\n\n// Make (almost) any component animatable, similar to Animated.createAnimatedComponent\nexport default function createAnimatableComponent(WrappedComponent) {\n const wrappedComponentName =\n WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n const Animatable = Animated.createAnimatedComponent(WrappedComponent);\n\n return class AnimatableComponent extends Component {\n static displayName = `withAnimatable(${wrappedComponentName})`;\n\n static propTypes = {\n animation: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n duration: PropTypes.number,\n direction: PropTypes.oneOf([\n 'normal',\n 'reverse',\n 'alternate',\n 'alternate-reverse',\n ]),\n delay: PropTypes.number,\n easing: PropTypes.oneOfType([\n PropTypes.oneOf(Object.keys(EASING_FUNCTIONS)),\n PropTypes.func,\n ]),\n iterationCount(props, propName) {\n const val = props[propName];\n if (val !== 'infinite' && !(typeof val === 'number' && val >= 1)) {\n return new Error(\n 'iterationCount must be a positive number or \"infinite\"',\n );\n }\n return null;\n },\n iterationDelay: PropTypes.number,\n onAnimationBegin: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n onTransitionBegin: PropTypes.func,\n onTransitionEnd: PropTypes.func,\n style: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n PropTypes.object,\n ]),\n transition: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n useNativeDriver: PropTypes.bool,\n };\n\n static defaultProps = {\n animation: undefined,\n delay: 0,\n direction: 'normal',\n duration: undefined,\n easing: undefined,\n iterationCount: 1,\n iterationDelay: 0,\n onAnimationBegin() {},\n onAnimationEnd() {},\n onTransitionBegin() {},\n onTransitionEnd() {},\n style: undefined,\n transition: undefined,\n useNativeDriver: false,\n };\n\n constructor(props) {\n super(props);\n\n const animationValue = new Animated.Value(\n getAnimationOrigin(0, this.props.direction),\n );\n let animationStyle = {};\n let compiledAnimation = {};\n if (props.animation) {\n compiledAnimation = getCompiledAnimation(props.animation);\n animationStyle = makeInterpolatedStyle(\n compiledAnimation,\n animationValue,\n );\n }\n this.state = {\n animationValue,\n animationStyle,\n compiledAnimation,\n transitionStyle: {},\n transitionValues: {},\n currentTransitionValues: {},\n };\n\n if (props.transition) {\n this.state = {\n ...this.state,\n ...this.initializeTransitionState(props.transition),\n };\n }\n this.delayTimer = null;\n\n // Alias registered animations for backwards compatibility\n getAnimationNames().forEach(animationName => {\n if (!(animationName in this)) {\n this[animationName] = this.animate.bind(this, animationName);\n }\n });\n }\n\n initializeTransitionState(transitionKeys) {\n const transitionValues = {};\n const styleValues = {};\n\n const currentTransitionValues = getStyleValues(\n transitionKeys,\n this.props.style,\n );\n Object.keys(currentTransitionValues).forEach(key => {\n const value = currentTransitionValues[key];\n if (\n INTERPOLATION_STYLE_PROPERTIES.indexOf(key) !== -1 ||\n typeof value !== 'number'\n ) {\n transitionValues[key] = new Animated.Value(0);\n styleValues[key] = value;\n } else {\n const animationValue = new Animated.Value(value);\n transitionValues[key] = animationValue;\n styleValues[key] = animationValue;\n }\n });\n\n return {\n currentTransitionValues,\n transitionStyle: styleValues,\n transitionValues,\n };\n }\n\n getTransitionState(keys) {\n const transitionKeys = typeof keys === 'string' ? [keys] : keys;\n let {\n transitionValues,\n currentTransitionValues,\n transitionStyle,\n } = this.state;\n const missingKeys = transitionKeys.filter(\n key => !this.state.transitionValues[key],\n );\n if (missingKeys.length) {\n const transitionState = this.initializeTransitionState(missingKeys);\n transitionValues = {\n ...transitionValues,\n ...transitionState.transitionValues,\n };\n currentTransitionValues = {\n ...currentTransitionValues,\n ...transitionState.currentTransitionValues,\n };\n transitionStyle = {\n ...transitionStyle,\n ...transitionState.transitionStyle,\n };\n }\n return { transitionValues, currentTransitionValues, transitionStyle };\n }\n\n ref = null;\n\n handleRef = ref => {\n this.ref = ref;\n };\n\n setNativeProps(nativeProps) {\n if (this.ref) {\n this.ref.setNativeProps(nativeProps);\n }\n }\n\n componentDidMount() {\n const {\n animation,\n duration,\n delay,\n onAnimationBegin,\n iterationDelay,\n } = this.props;\n if (animation) {\n const startAnimation = () => {\n onAnimationBegin();\n this.startAnimation(duration, 0, iterationDelay, endState =>\n this.props.onAnimationEnd(endState),\n );\n this.delayTimer = null;\n };\n if (delay) {\n this.delayTimer = setTimeout(startAnimation, delay);\n } else {\n startAnimation();\n }\n }\n }\n\n // eslint-disable-next-line camelcase\n UNSAFE_componentWillReceiveProps(props) {\n const {\n animation,\n delay,\n duration,\n easing,\n iterationDelay,\n transition,\n onAnimationBegin,\n } = props;\n\n if (transition) {\n const values = getStyleValues(transition, props.style);\n this.transitionTo(values, duration, easing, delay);\n } else if (!deepEquals(animation, this.props.animation)) {\n if (animation) {\n if (this.delayTimer) {\n this.setAnimation(animation);\n } else {\n onAnimationBegin();\n this.animate(animation, duration, iterationDelay).then(endState =>\n this.props.onAnimationEnd(endState),\n );\n }\n } else {\n this.stopAnimation();\n }\n }\n }\n\n componentWillUnmount() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n }\n }\n\n setAnimation(animation, callback) {\n const compiledAnimation = getCompiledAnimation(animation);\n this.setState(\n state => ({\n animationStyle: makeInterpolatedStyle(\n compiledAnimation,\n state.animationValue,\n ),\n compiledAnimation,\n }),\n callback,\n );\n }\n\n animate(animation, duration, iterationDelay) {\n return new Promise(resolve => {\n this.setAnimation(animation, () => {\n this.startAnimation(duration, 0, iterationDelay, resolve);\n });\n });\n }\n\n stopAnimation() {\n this.setState({\n scheduledAnimation: false,\n animationStyle: {},\n });\n this.state.animationValue.stopAnimation();\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n }\n\n startAnimation(duration, iteration, iterationDelay, callback) {\n const { animationValue, compiledAnimation } = this.state;\n const { direction, iterationCount, useNativeDriver } = this.props;\n let easing = this.props.easing || compiledAnimation.easing || 'ease';\n let currentIteration = iteration || 0;\n const fromValue = getAnimationOrigin(currentIteration, direction);\n const toValue = getAnimationTarget(currentIteration, direction);\n animationValue.setValue(fromValue);\n\n if (typeof easing === 'string') {\n easing = EASING_FUNCTIONS[easing];\n }\n // Reverse easing if on the way back\n const reversed =\n direction === 'reverse' ||\n (direction === 'alternate' && !toValue) ||\n (direction === 'alternate-reverse' && !toValue);\n if (reversed) {\n easing = Easing.out(easing);\n }\n const config = {\n toValue,\n easing,\n isInteraction: iterationCount <= 1,\n duration: duration || this.props.duration || 1000,\n useNativeDriver,\n delay: iterationDelay || 0,\n };\n\n Animated.timing(animationValue, config).start(endState => {\n currentIteration += 1;\n if (\n endState.finished &&\n this.props.animation &&\n (iterationCount === 'infinite' || currentIteration < iterationCount)\n ) {\n this.startAnimation(\n duration,\n currentIteration,\n iterationDelay,\n callback,\n );\n } else if (callback) {\n callback(endState);\n }\n });\n }\n\n transition(fromValues, toValues, duration, easing) {\n const fromValuesFlat = flattenStyle(fromValues);\n const toValuesFlat = flattenStyle(toValues);\n const transitionKeys = Object.keys(toValuesFlat);\n const {\n transitionValues,\n currentTransitionValues,\n transitionStyle,\n } = this.getTransitionState(transitionKeys);\n\n transitionKeys.forEach(property => {\n const fromValue = fromValuesFlat[property];\n const toValue = toValuesFlat[property];\n let transitionValue = transitionValues[property];\n if (!transitionValue) {\n transitionValue = new Animated.Value(0);\n }\n const needsInterpolation =\n INTERPOLATION_STYLE_PROPERTIES.indexOf(property) !== -1 ||\n typeof value !== 'number';\n const needsZeroClamping =\n ZERO_CLAMPED_STYLE_PROPERTIES.indexOf(property) !== -1;\n if (needsInterpolation) {\n transitionValue.setValue(0);\n transitionStyle[property] = transitionValue.interpolate({\n inputRange: [0, 1],\n outputRange: [fromValue, toValue],\n });\n currentTransitionValues[property] = toValue;\n toValuesFlat[property] = 1;\n } else {\n if (needsZeroClamping) {\n transitionStyle[property] = transitionValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n extrapolateLeft: 'clamp',\n });\n currentTransitionValues[property] = toValue;\n } else {\n transitionStyle[property] = transitionValue;\n }\n transitionValue.setValue(fromValue);\n }\n });\n this.setState(\n { transitionValues, transitionStyle, currentTransitionValues },\n () => {\n this.transitionToValues(\n toValuesFlat,\n duration || this.props.duration,\n easing,\n this.props.delay,\n );\n },\n );\n }\n\n transitionTo(toValues, duration, easing, delay) {\n const { currentTransitionValues } = this.state;\n const toValuesFlat = flattenStyle(toValues);\n const transitions = {\n from: {},\n to: {},\n };\n\n Object.keys(toValuesFlat).forEach(property => {\n const toValue = toValuesFlat[property];\n const needsInterpolation =\n INTERPOLATION_STYLE_PROPERTIES.indexOf(property) !== -1 ||\n typeof value !== 'number';\n const needsZeroClamping =\n ZERO_CLAMPED_STYLE_PROPERTIES.indexOf(property) !== -1;\n const transitionStyle = this.state.transitionStyle[property];\n const transitionValue = this.state.transitionValues[property];\n if (\n !needsInterpolation &&\n !needsZeroClamping &&\n transitionStyle &&\n transitionStyle === transitionValue\n ) {\n transitionToValue(\n property,\n transitionValue,\n toValue,\n duration,\n easing,\n this.props.useNativeDriver,\n delay,\n prop => this.props.onTransitionBegin(prop),\n prop => this.props.onTransitionEnd(prop),\n );\n } else {\n let currentTransitionValue = currentTransitionValues[property];\n if (\n typeof currentTransitionValue === 'undefined' &&\n this.props.style\n ) {\n const style = getStyleValues(property, this.props.style);\n currentTransitionValue = style[property];\n }\n transitions.from[property] = currentTransitionValue;\n transitions.to[property] = toValue;\n }\n });\n\n if (Object.keys(transitions.from).length) {\n this.transition(transitions.from, transitions.to, duration, easing);\n }\n }\n\n transitionToValues(toValues, duration, easing, delay) {\n Object.keys(toValues).forEach(property => {\n const transitionValue = this.state.transitionValues[property];\n const toValue = toValues[property];\n transitionToValue(\n property,\n transitionValue,\n toValue,\n duration,\n easing,\n this.props.useNativeDriver,\n delay,\n prop => this.props.onTransitionBegin(prop),\n prop => this.props.onTransitionEnd(prop),\n );\n });\n }\n\n render() {\n const { style, animation, transition } = this.props;\n if (animation && transition) {\n throw new Error('You cannot combine animation and transition props');\n }\n const restProps = omit(\n [\n 'animation',\n 'duration',\n 'direction',\n 'delay',\n 'easing',\n 'iterationCount',\n 'iterationDelay',\n 'onAnimationBegin',\n 'onAnimationEnd',\n 'onTransitionBegin',\n 'onTransitionEnd',\n 'style',\n 'transition',\n 'useNativeDriver',\n ],\n this.props,\n );\n\n return (\n \n );\n }\n };\n}\n","export const bounce = {\n 0: {\n translateY: 0,\n },\n 0.2: {\n translateY: 0,\n },\n 0.4: {\n translateY: -30,\n },\n 0.43: {\n translateY: -30,\n },\n 0.53: {\n translateY: 0,\n },\n 0.7: {\n translateY: -15,\n },\n 0.8: {\n translateY: 0,\n },\n 0.9: {\n translateY: -4,\n },\n 1: {\n translateY: 0,\n },\n};\n\nexport const flash = {\n 0: {\n opacity: 1,\n },\n 0.25: {\n opacity: 0,\n },\n 0.5: {\n opacity: 1,\n },\n 0.75: {\n opacity: 0,\n },\n 1: {\n opacity: 1,\n },\n};\n\nexport const jello = {\n 0: {\n skewX: '0deg',\n skewY: '0deg',\n },\n 0.111: {\n skewX: '0deg',\n skewY: '0deg',\n },\n 0.222: {\n skewX: '-12.5deg',\n skewY: '-12.5deg',\n },\n 0.333: {\n skewX: '6.25deg',\n skewY: '6.25deg',\n },\n 0.444: {\n skewX: '-3.125deg',\n skewY: '-3.125deg',\n },\n 0.555: {\n skewX: '1.5625deg',\n skewY: '1.5625deg',\n },\n 0.666: {\n skewX: '-0.78125deg',\n skewY: '-0.78125deg',\n },\n 0.777: {\n skewX: '0.390625deg',\n skewY: '0.390625deg',\n },\n 0.888: {\n skewX: '-0.1953125deg',\n skewY: '-0.1953125deg',\n },\n 1: {\n skewX: '0deg',\n skewY: '0deg',\n },\n};\n\nexport const pulse = {\n 0: {\n scale: 1,\n },\n 0.5: {\n scale: 1.05,\n },\n 1: {\n scale: 1,\n },\n};\n\nexport const rotate = {\n 0: {\n rotate: '0deg',\n },\n 0.25: {\n rotate: '90deg',\n },\n 0.5: {\n rotate: '180deg',\n },\n 0.75: {\n rotate: '270deg',\n },\n 1: {\n rotate: '360deg',\n },\n};\n\nexport const shake = {\n 0: {\n translateX: 0,\n },\n 0.1: {\n translateX: -10,\n },\n 0.2: {\n translateX: 10,\n },\n 0.3: {\n translateX: -10,\n },\n 0.4: {\n translateX: 10,\n },\n 0.5: {\n translateX: -10,\n },\n 0.6: {\n translateX: 10,\n },\n 0.7: {\n translateX: -10,\n },\n 0.8: {\n translateX: 10,\n },\n 0.9: {\n translateX: -10,\n },\n 1: {\n translateX: 0,\n },\n};\n\nexport const swing = {\n 0: {\n rotate: '0deg',\n },\n 0.2: {\n rotate: '15deg',\n },\n 0.4: {\n rotate: '-10deg',\n },\n 0.6: {\n rotate: '5deg',\n },\n 0.8: {\n rotate: '-5deg',\n },\n 1: {\n rotate: '0deg',\n },\n};\n\nexport const rubberBand = {\n 0: {\n scaleX: 1,\n scaleY: 1,\n },\n 0.3: {\n scaleX: 1.25,\n scaleY: 0.75,\n },\n 0.4: {\n scaleX: 0.75,\n scaleY: 1.25,\n },\n 0.5: {\n scaleX: 1.15,\n scaleY: 0.85,\n },\n 0.65: {\n scaleX: 0.95,\n scaleY: 1.05,\n },\n 0.75: {\n scaleX: 1.05,\n scaleY: 0.95,\n },\n 1: {\n scaleX: 1,\n scaleY: 1,\n },\n};\n\nexport const tada = {\n 0: {\n scale: 1,\n rotate: '0deg',\n },\n 0.1: {\n scale: 0.9,\n rotate: '-3deg',\n },\n 0.2: {\n scale: 0.9,\n rotate: '-3deg',\n },\n 0.3: {\n scale: 1.1,\n rotate: '-3deg',\n },\n 0.4: {\n rotate: '3deg',\n },\n 0.5: {\n rotate: '-3deg',\n },\n 0.6: {\n rotate: '3deg',\n },\n 0.7: {\n rotate: '-3deg',\n },\n 0.8: {\n rotate: '3deg',\n },\n 0.9: {\n scale: 1.1,\n rotate: '3deg',\n },\n 1: {\n scale: 1,\n rotate: '0deg',\n },\n};\n\nexport const wobble = {\n 0: {\n translateX: 0,\n rotate: '0deg',\n },\n 0.15: {\n translateX: -25,\n rotate: '-5deg',\n },\n 0.3: {\n translateX: 20,\n rotate: '3deg',\n },\n 0.45: {\n translateX: -15,\n rotate: '-3deg',\n },\n 0.6: {\n translateX: 10,\n rotate: '2deg',\n },\n 0.75: {\n translateX: -5,\n rotate: '-1deg',\n },\n 1: {\n translateX: 0,\n rotate: '0deg',\n },\n};\n","export const bounceIn = {\n 0: {\n opacity: 0,\n scale: 0.3,\n },\n 0.2: {\n scale: 1.1,\n },\n 0.4: {\n scale: 0.9,\n },\n 0.6: {\n opacity: 1,\n scale: 1.03,\n },\n 0.8: {\n scale: 0.97,\n },\n 1: {\n opacity: 1,\n scale: 1,\n },\n};\n\nexport const bounceInUp = {\n 0: {\n opacity: 0,\n translateY: 800,\n },\n 0.6: {\n opacity: 1,\n translateY: -25,\n },\n 0.75: {\n translateY: 10,\n },\n 0.9: {\n translateY: -5,\n },\n 1: {\n translateY: 0,\n },\n};\n\nexport const bounceInDown = {\n 0: {\n opacity: 0,\n translateY: -800,\n },\n 0.6: {\n opacity: 1,\n translateY: 25,\n },\n 0.75: {\n translateY: -10,\n },\n 0.9: {\n translateY: 5,\n },\n 1: {\n translateY: 0,\n },\n};\n\nexport const bounceInRight = {\n 0: {\n opacity: 0,\n translateX: 600,\n },\n 0.6: {\n opacity: 1,\n translateX: -20,\n },\n 0.75: {\n translateX: 8,\n },\n 0.9: {\n translateX: -4,\n },\n 1: {\n translateX: 0,\n },\n};\n\nexport const bounceInLeft = {\n 0: {\n opacity: 0,\n translateX: -600,\n },\n 0.6: {\n opacity: 1,\n translateX: 20,\n },\n 0.75: {\n translateX: -8,\n },\n 0.9: {\n translateX: 4,\n },\n 1: {\n translateX: 0,\n },\n};\n","export const bounceOut = {\n 0: {\n opacity: 1,\n scale: 1,\n },\n 0.2: {\n scale: 0.9,\n },\n 0.5: {\n opacity: 1,\n scale: 1.11,\n },\n 0.55: {\n scale: 1.11,\n },\n 1: {\n opacity: 0,\n scale: 0.3,\n },\n};\n\nexport const bounceOutUp = {\n 0: {\n opacity: 1,\n translateY: 0,\n },\n 0.2: {\n opacity: 1,\n translateY: -10,\n },\n 0.4: {\n translateY: 20,\n },\n 0.45: {\n translateY: 20,\n },\n 0.55: {\n opacity: 1,\n },\n 1: {\n opacity: 0,\n translateY: -800,\n },\n};\n\nexport const bounceOutDown = {\n 0: {\n opacity: 1,\n translateY: 0,\n },\n 0.2: {\n opacity: 1,\n translateY: 10,\n },\n 0.4: {\n translateY: -20,\n },\n 0.45: {\n translateY: -20,\n },\n 0.55: {\n opacity: 1,\n },\n 1: {\n opacity: 0,\n translateY: 800,\n },\n};\n\nexport const bounceOutRight = {\n 0: {\n opacity: 1,\n translateX: 0,\n },\n 0.2: {\n opacity: 1,\n translateX: 10,\n },\n 0.4: {\n translateX: -20,\n },\n 0.45: {\n translateX: -20,\n },\n 0.55: {\n opacity: 1,\n },\n 1: {\n opacity: 0,\n translateX: 600,\n },\n};\n\nexport const bounceOutLeft = {\n 0: {\n opacity: 1,\n translateX: 0,\n },\n 0.2: {\n opacity: 1,\n translateX: -10,\n },\n 0.4: {\n translateX: 20,\n },\n 0.45: {\n translateX: 20,\n },\n 0.55: {\n opacity: 1,\n },\n 1: {\n opacity: 0,\n translateX: -600,\n },\n};\n","function makeFadeInTranslation(translationType, fromValue) {\n return {\n from: {\n opacity: 0,\n [translationType]: fromValue,\n },\n to: {\n opacity: 1,\n [translationType]: 0,\n },\n };\n}\n\nexport const fadeIn = {\n from: {\n opacity: 0,\n },\n to: {\n opacity: 1,\n },\n};\n\nexport const fadeInDown = makeFadeInTranslation('translateY', -100);\n\nexport const fadeInUp = makeFadeInTranslation('translateY', 100);\n\nexport const fadeInLeft = makeFadeInTranslation('translateX', -100);\n\nexport const fadeInRight = makeFadeInTranslation('translateX', 100);\n\nexport const fadeInDownBig = makeFadeInTranslation('translateY', -500);\n\nexport const fadeInUpBig = makeFadeInTranslation('translateY', 500);\n\nexport const fadeInLeftBig = makeFadeInTranslation('translateX', -500);\n\nexport const fadeInRightBig = makeFadeInTranslation('translateX', 500);\n","function makeFadeOutTranslation(translationType, toValue) {\n return {\n from: {\n opacity: 1,\n [translationType]: 0,\n },\n to: {\n opacity: 0,\n [translationType]: toValue,\n },\n };\n}\n\nexport const fadeOut = {\n from: {\n opacity: 1,\n },\n to: {\n opacity: 0,\n },\n};\n\nexport const fadeOutDown = makeFadeOutTranslation('translateY', 100);\n\nexport const fadeOutUp = makeFadeOutTranslation('translateY', -100);\n\nexport const fadeOutLeft = makeFadeOutTranslation('translateX', -100);\n\nexport const fadeOutRight = makeFadeOutTranslation('translateX', 100);\n\nexport const fadeOutDownBig = makeFadeOutTranslation('translateY', 500);\n\nexport const fadeOutUpBig = makeFadeOutTranslation('translateY', -500);\n\nexport const fadeOutLeftBig = makeFadeOutTranslation('translateX', -500);\n\nexport const fadeOutRightBig = makeFadeOutTranslation('translateX', 500);\n","export const flipInX = {\n easing: 'ease-in',\n style: {\n backfaceVisibility: 'visible',\n perspective: 400,\n },\n 0: {\n opacity: 0,\n rotateX: '90deg',\n },\n 0.4: {\n rotateX: '-20deg',\n },\n 0.6: {\n opacity: 1,\n rotateX: '10deg',\n },\n 0.8: {\n rotateX: '-5deg',\n },\n 1: {\n opacity: 1,\n rotateX: '0deg',\n },\n};\n\nexport const flipInY = {\n easing: 'ease-in',\n style: {\n backfaceVisibility: 'visible',\n perspective: 400,\n },\n 0: {\n opacity: 0,\n rotateY: '90deg',\n },\n 0.4: {\n rotateY: '-20deg',\n },\n 0.6: {\n opacity: 1,\n rotateY: '10deg',\n },\n 0.8: {\n rotateY: '-5deg',\n },\n 1: {\n opacity: 1,\n rotateY: '0deg',\n },\n};\n\nexport const flipOutX = {\n style: {\n backfaceVisibility: 'visible',\n perspective: 400,\n },\n 0: {\n opacity: 1,\n rotateX: '0deg',\n },\n 0.3: {\n opacity: 1,\n rotateX: '-20deg',\n },\n 1: {\n opacity: 0,\n rotateX: '90deg',\n },\n};\n\nexport const flipOutY = {\n style: {\n backfaceVisibility: 'visible',\n perspective: 400,\n },\n 0: {\n opacity: 1,\n rotateY: '0deg',\n },\n 0.3: {\n opacity: 1,\n rotateY: '-20deg',\n },\n 1: {\n opacity: 0,\n rotateY: '90deg',\n },\n};\n","export const lightSpeedIn = {\n easing: 'ease-out',\n 0: {\n opacity: 0,\n translateX: 200,\n skewX: '-30deg',\n },\n 0.6: {\n opacity: 1,\n translateX: 0,\n skewX: '20deg',\n },\n 0.8: {\n skewX: '-5deg',\n },\n 1: {\n opacity: 1,\n translateX: 0,\n skewX: '0deg',\n },\n};\n\nexport const lightSpeedOut = {\n easing: 'ease-in',\n 0: {\n opacity: 1,\n translateX: 0,\n skewX: '0deg',\n },\n 1: {\n opacity: 0,\n translateX: 200,\n skewX: '30deg',\n },\n};\n","function makeSlideInTranslation(translationType, fromValue) {\n return {\n from: {\n [translationType]: fromValue,\n },\n to: {\n [translationType]: 0,\n },\n };\n}\n\nexport const slideInDown = makeSlideInTranslation('translateY', -100);\n\nexport const slideInUp = makeSlideInTranslation('translateY', 100);\n\nexport const slideInLeft = makeSlideInTranslation('translateX', -100);\n\nexport const slideInRight = makeSlideInTranslation('translateX', 100);\n","function makeSlideOutTranslation(translationType, fromValue) {\n return {\n from: {\n [translationType]: 0,\n },\n to: {\n [translationType]: fromValue,\n },\n };\n}\n\nexport const slideOutDown = makeSlideOutTranslation('translateY', 100);\n\nexport const slideOutUp = makeSlideOutTranslation('translateY', -100);\n\nexport const slideOutLeft = makeSlideOutTranslation('translateX', -100);\n\nexport const slideOutRight = makeSlideOutTranslation('translateX', 100);\n","import { Easing } from 'react-native';\n\nfunction makeZoomInTranslation(translationType, pivotPoint) {\n const modifier = Math.min(1, Math.max(-1, pivotPoint));\n return {\n easing: Easing.bezier(0.175, 0.885, 0.32, 1),\n 0: {\n opacity: 0,\n scale: 0.1,\n [translationType]: modifier * -1000,\n },\n 0.6: {\n opacity: 1,\n scale: 0.457,\n [translationType]: pivotPoint,\n },\n 1: {\n scale: 1,\n [translationType]: 0,\n },\n };\n}\n\nexport const zoomIn = {\n from: {\n opacity: 0,\n scale: 0.3,\n },\n 0.5: {\n opacity: 1,\n },\n to: {\n opacity: 1,\n scale: 1,\n },\n};\n\nexport const zoomInDown = makeZoomInTranslation('translateY', 60);\n\nexport const zoomInUp = makeZoomInTranslation('translateY', -60);\n\nexport const zoomInLeft = makeZoomInTranslation('translateX', 10);\n\nexport const zoomInRight = makeZoomInTranslation('translateX', -10);\n","import { Easing } from 'react-native';\n\nfunction makeZoomOutTranslation(translationType, pivotPoint) {\n const modifier = Math.min(1, Math.max(-1, pivotPoint));\n return {\n easing: Easing.bezier(0.175, 0.885, 0.32, 1),\n 0: {\n opacity: 1,\n scale: 1,\n [translationType]: 0,\n },\n 0.4: {\n opacity: 1,\n scale: 0.457,\n [translationType]: pivotPoint,\n },\n 1: {\n opacity: 0,\n scale: 0.1,\n [translationType]: modifier * -1000,\n },\n };\n}\n\nexport const zoomOut = {\n from: {\n opacity: 1,\n scale: 1,\n },\n 0.5: {\n opacity: 1,\n scale: 0.3,\n },\n to: {\n opacity: 0,\n scale: 0,\n },\n};\n\nexport const zoomOutDown = makeZoomOutTranslation('translateY', 60);\n\nexport const zoomOutUp = makeZoomOutTranslation('translateY', -60);\n\nexport const zoomOutLeft = makeZoomOutTranslation('translateX', 10);\n\nexport const zoomOutRight = makeZoomOutTranslation('translateX', -10);\n","import {\n View as CoreView,\n Text as CoreText,\n Image as CoreImage,\n} from 'react-native';\nimport createComponent from './createAnimatableComponent';\nimport { initializeRegistryWithDefinitions } from './registry';\nimport * as ANIMATION_DEFINITIONS from './definitions';\n\ninitializeRegistryWithDefinitions(ANIMATION_DEFINITIONS);\n\nexport const createAnimatableComponent = createComponent;\nexport const View = createComponent(CoreView);\nexport const Text = createComponent(CoreText);\nexport const Image = createComponent(CoreImage);\nexport { default as createAnimation } from './createAnimation';\nexport {\n registerAnimation,\n initializeRegistryWithDefinitions,\n} from './registry';\n","import { Dimensions } from 'react-native';\nimport * as animatable from 'react-native-animatable';\nconst { height, width } = Dimensions.get('window');\nexport const initializeAnimations = () => {\n // Since react-native-animatable applies by default a margin of 100 to its\n // sliding animation, we reset them here overriding the margin to 0.\n const animationDefinitions = {\n slideInDown: makeSlideTranslation('translateY', -height, 0),\n slideInUp: makeSlideTranslation('translateY', height, 0),\n slideInLeft: makeSlideTranslation('translateX', -width, 0),\n slideInRight: makeSlideTranslation('translateX', width, 0),\n slideOutDown: makeSlideTranslation('translateY', 0, height),\n slideOutUp: makeSlideTranslation('translateY', 0, -height),\n slideOutLeft: makeSlideTranslation('translateX', 0, -width),\n slideOutRight: makeSlideTranslation('translateX', 0, width),\n };\n animatable.initializeRegistryWithDefinitions(animationDefinitions);\n};\nexport const makeSlideTranslation = (translationType, fromValue, toValue) => ({\n from: {\n [translationType]: fromValue,\n },\n to: {\n [translationType]: toValue,\n },\n});\n// User can define custom react-native-animatable animations, see PR #72\n// Utility for creating our own custom react-native-animatable animations\nexport const buildAnimations = ({ animationIn, animationOut, }) => {\n let updatedAnimationIn;\n let updatedAnimationOut;\n if (isObject(animationIn)) {\n const animationName = JSON.stringify(animationIn);\n makeAnimation(animationName, animationIn);\n updatedAnimationIn = animationName;\n }\n else {\n updatedAnimationIn = animationIn;\n }\n if (isObject(animationOut)) {\n const animationName = JSON.stringify(animationOut);\n makeAnimation(animationName, animationOut);\n updatedAnimationOut = animationName;\n }\n else {\n updatedAnimationOut = animationOut;\n }\n return {\n animationIn: updatedAnimationIn,\n animationOut: updatedAnimationOut,\n };\n};\nexport const reversePercentage = (x) => -(x - 1);\nconst makeAnimation = (name, obj) => {\n animatable.registerAnimation(name, animatable.createAnimation(obj));\n};\nconst isObject = (obj) => {\n return obj !== null && typeof obj === 'object';\n};\n","import { StyleSheet } from 'react-native';\nexport default StyleSheet.create({\n backdrop: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n opacity: 0,\n backgroundColor: 'black',\n },\n content: {\n flex: 1,\n justifyContent: 'center',\n },\n containerBox: {\n zIndex: 2,\n opacity: 1,\n backgroundColor: 'transparent',\n },\n});\n","import * as React from 'react';\nimport { Animated, DeviceEventEmitter, Dimensions, InteractionManager, KeyboardAvoidingView, Modal, PanResponder, BackHandler, Platform, TouchableWithoutFeedback, View, } from 'react-native';\nimport * as PropTypes from 'prop-types';\nimport * as animatable from 'react-native-animatable';\nimport { initializeAnimations, buildAnimations, reversePercentage, } from './utils';\nimport styles from './modal.style';\n// Override default react-native-animatable animations\ninitializeAnimations();\nconst defaultProps = {\n animationIn: 'slideInUp',\n animationInTiming: 300,\n animationOut: 'slideOutDown',\n animationOutTiming: 300,\n avoidKeyboard: false,\n coverScreen: true,\n hasBackdrop: true,\n backdropColor: 'black',\n backdropOpacity: 0.7,\n backdropTransitionInTiming: 300,\n backdropTransitionOutTiming: 300,\n customBackdrop: null,\n useNativeDriver: false,\n deviceHeight: null,\n deviceWidth: null,\n hideModalContentWhileAnimating: false,\n propagateSwipe: false,\n isVisible: false,\n panResponderThreshold: 4,\n swipeThreshold: 100,\n onModalShow: (() => null),\n onModalWillShow: (() => null),\n onModalHide: (() => null),\n onModalWillHide: (() => null),\n onBackdropPress: (() => null),\n onBackButtonPress: (() => null),\n scrollTo: null,\n scrollOffset: 0,\n scrollOffsetMax: 0,\n scrollHorizontal: false,\n statusBarTranslucent: false,\n supportedOrientations: ['portrait', 'landscape'],\n};\nconst extractAnimationFromProps = (props) => ({\n animationIn: props.animationIn,\n animationOut: props.animationOut,\n});\nexport class ReactNativeModal extends React.Component {\n constructor(props) {\n super(props);\n // We use an internal state for keeping track of the modal visibility: this allows us to keep\n // the modal visible during the exit animation, even if the user has already change the\n // isVisible prop to false.\n // We store in the state the device width and height so that we can update the modal on\n // device rotation.\n this.state = {\n showContent: true,\n isVisible: false,\n deviceWidth: Dimensions.get('window').width,\n deviceHeight: Dimensions.get('window').height,\n isSwipeable: !!this.props.swipeDirection,\n pan: null,\n };\n this.isTransitioning = false;\n this.inSwipeClosingState = false;\n this.currentSwipingDirection = null;\n this.panResponder = null;\n this.didUpdateDimensionsEmitter = null;\n this.interactionHandle = null;\n this.getDeviceHeight = () => this.props.deviceHeight || this.state.deviceHeight;\n this.getDeviceWidth = () => this.props.deviceWidth || this.state.deviceWidth;\n this.onBackButtonPress = () => {\n if (this.props.onBackButtonPress && this.props.isVisible) {\n this.props.onBackButtonPress();\n return true;\n }\n return false;\n };\n this.shouldPropagateSwipe = (evt, gestureState) => {\n return typeof this.props.propagateSwipe === 'function'\n ? this.props.propagateSwipe(evt, gestureState)\n : this.props.propagateSwipe;\n };\n this.buildPanResponder = () => {\n let animEvt = null;\n this.panResponder = PanResponder.create({\n onMoveShouldSetPanResponder: (evt, gestureState) => {\n // Use propagateSwipe to allow inner content to scroll. See PR:\n // https://github.com/react-native-community/react-native-modal/pull/246\n if (!this.shouldPropagateSwipe(evt, gestureState)) {\n // The number \"4\" is just a good tradeoff to make the panResponder\n // work correctly even when the modal has touchable buttons.\n // However, if you want to overwrite this and choose for yourself,\n // set panResponderThreshold in the props.\n // For reference:\n // https://github.com/react-native-community/react-native-modal/pull/197\n const shouldSetPanResponder = Math.abs(gestureState.dx) >= this.props.panResponderThreshold ||\n Math.abs(gestureState.dy) >= this.props.panResponderThreshold;\n if (shouldSetPanResponder && this.props.onSwipeStart) {\n this.props.onSwipeStart(gestureState);\n }\n this.currentSwipingDirection = this.getSwipingDirection(gestureState);\n animEvt = this.createAnimationEventForSwipe();\n return shouldSetPanResponder;\n }\n return false;\n },\n onStartShouldSetPanResponder: (e, gestureState) => {\n const hasScrollableView = e._dispatchInstances &&\n e._dispatchInstances.some((instance) => /scrollview|flatlist/i.test(instance.type));\n if (hasScrollableView &&\n this.shouldPropagateSwipe(e, gestureState) &&\n this.props.scrollTo &&\n this.props.scrollOffset > 0) {\n return false; // user needs to be able to scroll content back up\n }\n if (this.props.onSwipeStart) {\n this.props.onSwipeStart(gestureState);\n }\n // Cleared so that onPanResponderMove can wait to have some delta\n // to work with\n this.currentSwipingDirection = null;\n return true;\n },\n onPanResponderMove: (evt, gestureState) => {\n // Using onStartShouldSetPanResponder we don't have any delta so we don't know\n // The direction to which the user is swiping until some move have been done\n if (!this.currentSwipingDirection) {\n if (gestureState.dx === 0 && gestureState.dy === 0) {\n return;\n }\n this.currentSwipingDirection = this.getSwipingDirection(gestureState);\n animEvt = this.createAnimationEventForSwipe();\n }\n if (this.isSwipeDirectionAllowed(gestureState)) {\n // Dim the background while swiping the modal\n const newOpacityFactor = 1 - this.calcDistancePercentage(gestureState);\n this.backdropRef &&\n this.backdropRef.transitionTo({\n opacity: this.props.backdropOpacity * newOpacityFactor,\n });\n animEvt(evt, gestureState);\n if (this.props.onSwipeMove) {\n this.props.onSwipeMove(newOpacityFactor, gestureState);\n }\n }\n else {\n if (this.props.scrollTo) {\n if (this.props.scrollHorizontal) {\n let offsetX = -gestureState.dx;\n if (offsetX > this.props.scrollOffsetMax) {\n offsetX -= (offsetX - this.props.scrollOffsetMax) / 2;\n }\n this.props.scrollTo({ x: offsetX, animated: false });\n }\n else {\n let offsetY = -gestureState.dy;\n if (offsetY > this.props.scrollOffsetMax) {\n offsetY -= (offsetY - this.props.scrollOffsetMax) / 2;\n }\n this.props.scrollTo({ y: offsetY, animated: false });\n }\n }\n }\n },\n onPanResponderRelease: (evt, gestureState) => {\n // Call the onSwipe prop if the threshold has been exceeded on the right direction\n const accDistance = this.getAccDistancePerDirection(gestureState);\n if (accDistance > this.props.swipeThreshold &&\n this.isSwipeDirectionAllowed(gestureState)) {\n if (this.props.onSwipeComplete) {\n this.inSwipeClosingState = true;\n this.props.onSwipeComplete({\n swipingDirection: this.getSwipingDirection(gestureState),\n }, gestureState);\n return;\n }\n // Deprecated. Remove later.\n if (this.props.onSwipe) {\n this.inSwipeClosingState = true;\n this.props.onSwipe();\n return;\n }\n }\n //Reset backdrop opacity and modal position\n if (this.props.onSwipeCancel) {\n this.props.onSwipeCancel(gestureState);\n }\n if (this.backdropRef) {\n this.backdropRef.transitionTo({\n opacity: this.props.backdropOpacity,\n });\n }\n Animated.spring(this.state.pan, {\n toValue: { x: 0, y: 0 },\n bounciness: 0,\n useNativeDriver: false,\n }).start();\n if (this.props.scrollTo) {\n if (this.props.scrollOffset > this.props.scrollOffsetMax) {\n this.props.scrollTo({\n y: this.props.scrollOffsetMax,\n animated: true,\n });\n }\n }\n },\n });\n };\n this.getAccDistancePerDirection = (gestureState) => {\n switch (this.currentSwipingDirection) {\n case 'up':\n return -gestureState.dy;\n case 'down':\n return gestureState.dy;\n case 'right':\n return gestureState.dx;\n case 'left':\n return -gestureState.dx;\n default:\n return 0;\n }\n };\n this.getSwipingDirection = (gestureState) => {\n if (Math.abs(gestureState.dx) > Math.abs(gestureState.dy)) {\n return gestureState.dx > 0 ? 'right' : 'left';\n }\n return gestureState.dy > 0 ? 'down' : 'up';\n };\n this.calcDistancePercentage = (gestureState) => {\n switch (this.currentSwipingDirection) {\n case 'down':\n return ((gestureState.moveY - gestureState.y0) /\n ((this.props.deviceHeight || this.state.deviceHeight) -\n gestureState.y0));\n case 'up':\n return reversePercentage(gestureState.moveY / gestureState.y0);\n case 'left':\n return reversePercentage(gestureState.moveX / gestureState.x0);\n case 'right':\n return ((gestureState.moveX - gestureState.x0) /\n ((this.props.deviceWidth || this.state.deviceWidth) - gestureState.x0));\n default:\n return 0;\n }\n };\n this.createAnimationEventForSwipe = () => {\n if (this.currentSwipingDirection === 'right' ||\n this.currentSwipingDirection === 'left') {\n return Animated.event([null, { dx: this.state.pan.x }], {\n useNativeDriver: false,\n });\n }\n else {\n return Animated.event([null, { dy: this.state.pan.y }], {\n useNativeDriver: false,\n });\n }\n };\n this.isDirectionIncluded = (direction) => {\n return Array.isArray(this.props.swipeDirection)\n ? this.props.swipeDirection.includes(direction)\n : this.props.swipeDirection === direction;\n };\n this.isSwipeDirectionAllowed = ({ dy, dx }) => {\n const draggedDown = dy > 0;\n const draggedUp = dy < 0;\n const draggedLeft = dx < 0;\n const draggedRight = dx > 0;\n if (this.currentSwipingDirection === 'up' &&\n this.isDirectionIncluded('up') &&\n draggedUp) {\n return true;\n }\n else if (this.currentSwipingDirection === 'down' &&\n this.isDirectionIncluded('down') &&\n draggedDown) {\n return true;\n }\n else if (this.currentSwipingDirection === 'right' &&\n this.isDirectionIncluded('right') &&\n draggedRight) {\n return true;\n }\n else if (this.currentSwipingDirection === 'left' &&\n this.isDirectionIncluded('left') &&\n draggedLeft) {\n return true;\n }\n return false;\n };\n this.handleDimensionsUpdate = () => {\n if (!this.props.deviceHeight && !this.props.deviceWidth) {\n // Here we update the device dimensions in the state if the layout changed\n // (triggering a render)\n const deviceWidth = Dimensions.get('window').width;\n const deviceHeight = Dimensions.get('window').height;\n if (deviceWidth !== this.state.deviceWidth ||\n deviceHeight !== this.state.deviceHeight) {\n this.setState({ deviceWidth, deviceHeight });\n }\n }\n };\n this.open = () => {\n if (this.isTransitioning) {\n return;\n }\n this.isTransitioning = true;\n if (this.backdropRef) {\n this.backdropRef.transitionTo({ opacity: this.props.backdropOpacity }, this.props.backdropTransitionInTiming);\n }\n // This is for resetting the pan position,otherwise the modal gets stuck\n // at the last released position when you try to open it.\n // TODO: Could certainly be improved - no idea for the moment.\n if (this.state.isSwipeable) {\n this.state.pan.setValue({ x: 0, y: 0 });\n }\n if (this.contentRef) {\n this.props.onModalWillShow && this.props.onModalWillShow();\n if (this.interactionHandle == null) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n this.contentRef\n .animate(this.animationIn, this.props.animationInTiming)\n .then(() => {\n this.isTransitioning = false;\n if (this.interactionHandle) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = null;\n }\n if (!this.props.isVisible) {\n this.close();\n }\n else {\n this.props.onModalShow();\n }\n });\n }\n };\n this.close = () => {\n if (this.isTransitioning) {\n return;\n }\n this.isTransitioning = true;\n if (this.backdropRef) {\n this.backdropRef.transitionTo({ opacity: 0 }, this.props.backdropTransitionOutTiming);\n }\n let animationOut = this.animationOut;\n if (this.inSwipeClosingState) {\n this.inSwipeClosingState = false;\n if (this.currentSwipingDirection === 'up') {\n animationOut = 'slideOutUp';\n }\n else if (this.currentSwipingDirection === 'down') {\n animationOut = 'slideOutDown';\n }\n else if (this.currentSwipingDirection === 'right') {\n animationOut = 'slideOutRight';\n }\n else if (this.currentSwipingDirection === 'left') {\n animationOut = 'slideOutLeft';\n }\n }\n if (this.contentRef) {\n this.props.onModalWillHide && this.props.onModalWillHide();\n if (this.interactionHandle == null) {\n this.interactionHandle = InteractionManager.createInteractionHandle();\n }\n this.contentRef\n .animate(animationOut, this.props.animationOutTiming)\n .then(() => {\n this.isTransitioning = false;\n if (this.interactionHandle) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = null;\n }\n if (this.props.isVisible) {\n this.open();\n }\n else {\n this.setState({\n showContent: false,\n }, () => {\n this.setState({\n isVisible: false,\n }, () => {\n this.props.onModalHide();\n });\n });\n }\n });\n }\n };\n this.makeBackdrop = () => {\n if (!this.props.hasBackdrop) {\n return null;\n }\n if (this.props.customBackdrop &&\n !React.isValidElement(this.props.customBackdrop)) {\n console.warn('Invalid customBackdrop element passed to Modal. You must provide a valid React element.');\n }\n const { customBackdrop, backdropColor, useNativeDriver, useNativeDriverForBackdrop, onBackdropPress, } = this.props;\n const hasCustomBackdrop = !!this.props.customBackdrop;\n const backdropComputedStyle = [\n {\n width: this.getDeviceWidth(),\n height: this.getDeviceHeight(),\n backgroundColor: this.state.showContent && !hasCustomBackdrop\n ? backdropColor\n : 'transparent',\n },\n ];\n const backdropWrapper = (React.createElement(animatable.View, { ref: ref => (this.backdropRef = ref), useNativeDriver: useNativeDriverForBackdrop !== undefined\n ? useNativeDriverForBackdrop\n : useNativeDriver, style: [styles.backdrop, backdropComputedStyle] }, hasCustomBackdrop && customBackdrop));\n if (hasCustomBackdrop) {\n // The user will handle backdrop presses himself\n return backdropWrapper;\n }\n // If there's no custom backdrop, handle presses with\n // TouchableWithoutFeedback\n return (React.createElement(TouchableWithoutFeedback, { onPress: onBackdropPress }, backdropWrapper));\n };\n const { animationIn, animationOut } = buildAnimations(extractAnimationFromProps(props));\n this.animationIn = animationIn;\n this.animationOut = animationOut;\n if (this.state.isSwipeable) {\n this.state = {\n ...this.state,\n pan: new Animated.ValueXY(),\n };\n this.buildPanResponder();\n }\n if (props.isVisible) {\n this.state = {\n ...this.state,\n isVisible: true,\n showContent: true,\n };\n }\n }\n static getDerivedStateFromProps(nextProps, state) {\n if (!state.isVisible && nextProps.isVisible) {\n return { isVisible: true, showContent: true };\n }\n return null;\n }\n componentDidMount() {\n // Show deprecation message\n if (this.props.onSwipe) {\n console.warn('`` is deprecated and will be removed starting from 13.0.0. Use `` instead.');\n }\n this.didUpdateDimensionsEmitter = DeviceEventEmitter.addListener('didUpdateDimensions', this.handleDimensionsUpdate);\n if (this.state.isVisible) {\n this.open();\n }\n BackHandler.addEventListener('hardwareBackPress', this.onBackButtonPress);\n }\n componentWillUnmount() {\n BackHandler.removeEventListener('hardwareBackPress', this.onBackButtonPress);\n if (this.didUpdateDimensionsEmitter) {\n this.didUpdateDimensionsEmitter.remove();\n }\n if (this.interactionHandle) {\n InteractionManager.clearInteractionHandle(this.interactionHandle);\n this.interactionHandle = null;\n }\n }\n componentDidUpdate(prevProps) {\n // If the animations have been changed then rebuild them to make sure we're\n // using the most up-to-date ones\n if (this.props.animationIn !== prevProps.animationIn ||\n this.props.animationOut !== prevProps.animationOut) {\n const { animationIn, animationOut } = buildAnimations(extractAnimationFromProps(this.props));\n this.animationIn = animationIn;\n this.animationOut = animationOut;\n }\n // If backdrop opacity has been changed then make sure to update it\n if (this.props.backdropOpacity !== prevProps.backdropOpacity &&\n this.backdropRef) {\n this.backdropRef.transitionTo({ opacity: this.props.backdropOpacity }, this.props.backdropTransitionInTiming);\n }\n // On modal open request, we slide the view up and fade in the backdrop\n if (this.props.isVisible && !prevProps.isVisible) {\n this.open();\n }\n else if (!this.props.isVisible && prevProps.isVisible) {\n // On modal close request, we slide the view down and fade out the backdrop\n this.close();\n }\n }\n render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const { animationIn, animationInTiming, animationOut, animationOutTiming, avoidKeyboard, coverScreen, hasBackdrop, backdropColor, backdropOpacity, backdropTransitionInTiming, backdropTransitionOutTiming, customBackdrop, children, isVisible, onModalShow, onBackButtonPress, useNativeDriver, propagateSwipe, style, ...otherProps } = this.props;\n const { testID, ...containerProps } = otherProps;\n const computedStyle = [\n { margin: this.getDeviceWidth() * 0.05, transform: [{ translateY: 0 }] },\n styles.content,\n style,\n ];\n let panHandlers = {};\n let panPosition = {};\n if (this.state.isSwipeable) {\n panHandlers = { ...this.panResponder.panHandlers };\n if (useNativeDriver) {\n panPosition = {\n transform: this.state.pan.getTranslateTransform(),\n };\n }\n else {\n panPosition = this.state.pan.getLayout();\n }\n }\n // The user might decide not to show the modal while it is animating\n // to enhance performance.\n const _children = this.props.hideModalContentWhileAnimating &&\n this.props.useNativeDriver &&\n !this.state.showContent ? (React.createElement(animatable.View, null)) : (children);\n const containerView = (React.createElement(animatable.View, Object.assign({}, panHandlers, { ref: ref => (this.contentRef = ref), style: [panPosition, computedStyle], pointerEvents: \"box-none\", useNativeDriver: useNativeDriver }, containerProps), _children));\n // If coverScreen is set to false by the user\n // we render the modal inside the parent view directly\n if (!coverScreen && this.state.isVisible) {\n return (React.createElement(View, { pointerEvents: \"box-none\", style: [styles.backdrop, styles.containerBox] },\n this.makeBackdrop(),\n containerView));\n }\n return (React.createElement(Modal, Object.assign({ transparent: true, animationType: 'none', visible: this.state.isVisible, onRequestClose: onBackButtonPress }, otherProps),\n this.makeBackdrop(),\n avoidKeyboard ? (React.createElement(KeyboardAvoidingView, { behavior: Platform.OS === 'ios' ? 'padding' : undefined, pointerEvents: \"box-none\", style: computedStyle.concat([{ margin: 0 }]) }, containerView)) : (containerView)));\n }\n}\nReactNativeModal.propTypes = {\n animationIn: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animationInTiming: PropTypes.number,\n animationOut: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n animationOutTiming: PropTypes.number,\n avoidKeyboard: PropTypes.bool,\n coverScreen: PropTypes.bool,\n hasBackdrop: PropTypes.bool,\n backdropColor: PropTypes.string,\n backdropOpacity: PropTypes.number,\n backdropTransitionInTiming: PropTypes.number,\n backdropTransitionOutTiming: PropTypes.number,\n customBackdrop: PropTypes.node,\n children: PropTypes.node.isRequired,\n deviceHeight: PropTypes.number,\n deviceWidth: PropTypes.number,\n isVisible: PropTypes.bool.isRequired,\n hideModalContentWhileAnimating: PropTypes.bool,\n propagateSwipe: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n onModalShow: PropTypes.func,\n onModalWillShow: PropTypes.func,\n onModalHide: PropTypes.func,\n onModalWillHide: PropTypes.func,\n onBackButtonPress: PropTypes.func,\n onBackdropPress: PropTypes.func,\n panResponderThreshold: PropTypes.number,\n onSwipeStart: PropTypes.func,\n onSwipeMove: PropTypes.func,\n onSwipeComplete: PropTypes.func,\n onSwipeCancel: PropTypes.func,\n swipeThreshold: PropTypes.number,\n swipeDirection: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOf(['up', 'down', 'left', 'right'])),\n PropTypes.oneOf(['up', 'down', 'left', 'right']),\n ]),\n useNativeDriver: PropTypes.bool,\n useNativeDriverForBackdrop: PropTypes.bool,\n style: PropTypes.any,\n scrollTo: PropTypes.func,\n scrollOffset: PropTypes.number,\n scrollOffsetMax: PropTypes.number,\n scrollHorizontal: PropTypes.bool,\n supportedOrientations: PropTypes.arrayOf(PropTypes.oneOf([\n 'portrait',\n 'portrait-upside-down',\n 'landscape',\n 'landscape-left',\n 'landscape-right',\n ])),\n};\nReactNativeModal.defaultProps = defaultProps;\nexport default ReactNativeModal;\n","import { ReactNativeModal } from './modal';\nexport { ReactNativeModal } from './modal';\nexport default ReactNativeModal;\n","/**\n * React Native Map Link\n */\n\nimport {Platform} from 'react-native';\n\nexport const isIOS = Platform.OS === 'ios';\n\nexport function generatePrefixes(options) {\n return {\n 'apple-maps': isIOS ? 'maps://' : 'applemaps://',\n 'google-maps': prefixForGoogleMaps(options.alwaysIncludeGoogle),\n citymapper: 'citymapper://',\n uber: 'uber://',\n lyft: 'lyft://',\n transit: 'transit://',\n truckmap: 'truckmap://',\n waze: 'waze://',\n yandex: 'yandexnavi://',\n moovit: 'moovit://',\n 'yandex-maps': 'yandexmaps://maps.yandex.ru/',\n 'yandex-taxi': 'yandextaxi://',\n kakaomap: 'kakaomap://',\n mapycz: isIOS ? 'szn-mapy://' : 'mapycz://',\n 'maps-me': 'mapsme://',\n osmand: isIOS ? 'osmandmaps://' : 'osmand.geo://',\n gett: 'gett://',\n navermap: options.naverCallerName ? 'nmap://' : 'nmap-disabled://',\n dgis: 'dgis://2gis.ru/',\n liftago: 'lftgpas://',\n petalmaps: 'petalmaps://',\n };\n}\n\nexport function prefixForGoogleMaps(alwaysIncludeGoogle) {\n return isIOS && !alwaysIncludeGoogle\n ? 'comgooglemaps://'\n : 'https://www.google.com/maps/';\n}\n\nexport function generateTitles(titles) {\n return {\n 'apple-maps': 'Apple Maps',\n 'google-maps': 'Google Maps',\n citymapper: 'Citymapper',\n uber: 'Uber',\n lyft: 'Lyft',\n transit: 'The Transit App',\n truckmap: 'TruckMap',\n waze: 'Waze',\n yandex: 'Yandex.Navi',\n moovit: 'Moovit',\n 'yandex-taxi': 'Yandex Taxi',\n 'yandex-maps': 'Yandex Maps',\n kakaomap: 'Kakao Maps',\n mapycz: 'Mapy.cz',\n 'maps-me': 'Maps Me',\n osmand: 'OsmAnd',\n gett: 'Gett',\n navermap: 'Naver Map',\n dgis: '2GIS',\n liftago: 'Liftago',\n petalmaps: 'Petal Maps',\n ...(titles || {}),\n };\n}\n\nexport const icons = {\n 'apple-maps': require('./images/apple-maps.png'),\n 'google-maps': require('./images/google-maps.png'),\n citymapper: require('./images/citymapper.png'),\n uber: require('./images/uber.png'),\n lyft: require('./images/lyft.png'),\n transit: require('./images/transit.png'),\n truckmap: require('./images/truckmap.png'),\n waze: require('./images/waze.png'),\n yandex: require('./images/yandex.png'),\n moovit: require('./images/moovit.png'),\n 'yandex-taxi': require('./images/yandex-taxi.png'),\n 'yandex-maps': require('./images/yandex-maps.png'),\n kakaomap: require('./images/kakao-map.png'),\n mapycz: require('./images/mapycz.png'),\n 'maps-me': require('./images/maps-me.png'),\n osmand: require('./images/osmand.png'),\n gett: require('./images/gett.png'),\n navermap: require('./images/naver-map.png'),\n dgis: require('./images/dgis.png'),\n liftago: require('./images/liftago.png'),\n petalmaps: require('./images/petalmaps.png'),\n};\n\nexport const appKeys = Object.keys(icons);\n","/**\n * React Native Map Link\n */\n\nimport {Linking, ActionSheetIOS, Alert} from 'react-native';\n\nimport {appKeys, isIOS} from './constants';\n\n/**\n * Get available navigation apps.\n */\nexport const getAvailableApps = async (prefixes) => {\n const availableApps = [];\n for (const app in prefixes) {\n if (prefixes.hasOwnProperty(app)) {\n const avail = await isAppInstalled(app, prefixes);\n if (avail) {\n availableApps.push(app);\n }\n }\n }\n\n return availableApps;\n};\n\n/**\n * Check if a given map app is installed.\n *\n * @param {string} app\n * @param {object} prefixes\n * @returns {Promise}\n */\nexport function isAppInstalled(app, prefixes) {\n return new Promise((resolve) => {\n if (!(app in prefixes)) {\n return resolve(false);\n }\n\n Linking.canOpenURL(prefixes[app])\n .then((result) => {\n resolve(!!result);\n })\n .catch(() => resolve(false));\n });\n}\n\n/**\n * Check if a given app is supported by this library\n *\n * @param {string} app\n * @returns {boolean}\n */\nfunction isSupportedApp(app) {\n return appKeys.includes(app);\n}\n\n/**\n * Get a list of not supported apps from a given array of apps\n *\n * @param {array} apps\n * @returns {array}\n */\nfunction getNotSupportedApps(apps) {\n return apps.filter((app) => !isSupportedApp(app));\n}\n\n/**\n * Throws an exception if some of the given apps is not supported\n *\n * @param {array} apps\n */\nexport function checkNotSupportedApps(apps) {\n const notSupportedApps = getNotSupportedApps(apps);\n if (notSupportedApps.length) {\n throw new MapsException(\n `appsWhiteList [${notSupportedApps}] are not supported apps, please provide some of the supported apps [${appKeys}]`,\n );\n }\n}\n\n/**\n * Ask the user to choose one of the available map apps.\n * @param {{\n * title: string | undefined | null\n * message: string | undefined | null\n * cancelText: string | undefined | null\n * appsWhiteList: string[] | null\n * prefixes: string[],\n * appTitles: object | undefined | null\n * }} options\n * @returns {Promise}\n */\nexport function askAppChoice({\n dialogTitle,\n dialogMessage,\n cancelText,\n appsWhiteList,\n prefixes,\n appTitles,\n}) {\n return new Promise(async (resolve) => {\n let availableApps = await getAvailableApps(prefixes);\n\n if (appsWhiteList && appsWhiteList.length) {\n availableApps = availableApps.filter((appName) =>\n appsWhiteList.includes(appName),\n );\n }\n\n if (availableApps.length < 2) {\n return resolve(availableApps[0] || null);\n }\n\n if (isIOS) {\n const options = availableApps.map((app) => appTitles[app]);\n options.push(cancelText);\n\n ActionSheetIOS.showActionSheetWithOptions(\n {\n title: dialogTitle,\n message: dialogMessage,\n options: options,\n cancelButtonIndex: options.length - 1,\n },\n (buttonIndex) => {\n if (buttonIndex === options.length - 1) {\n return resolve(null);\n }\n return resolve(availableApps[buttonIndex]);\n },\n );\n\n return;\n }\n\n const options = availableApps.map((app) => ({\n text: appTitles[app],\n onPress: () => resolve(app),\n }));\n options.unshift({\n text: cancelText,\n onPress: () => resolve(null),\n style: 'cancel',\n });\n\n return Alert.alert(dialogTitle, dialogMessage, options, {\n cancelable: true,\n onDismiss: () => resolve(null),\n });\n });\n}\n\n/**\n * Check if options are valid and well passed\n *\n * @param {{\n * latitude: number | string,\n * longitude: number | string,\n * sourceLatitude: number | undefined | null,\n * sourceLongitude: number | undefined | null,\n * googleForceLatLon: boolean | undefined | null,\n * googlePlaceId: number | undefined | null,\n * title: string | undefined | null,\n * app: string | undefined | null\n * dialogTitle: string | undefined | null\n * dialogMessage: string | undefined | null\n * cancelText: string | undefined | null\n * naverCallerName: string | undefined\n * }} options\n * @param {object} prefixes\n */\nexport function checkOptions(options, prefixes) {\n if (!options || typeof options !== 'object') {\n throw new MapsException(\n 'First parameter of `showLocation` should contain object with options.',\n );\n }\n if (!('latitude' in options) || !('longitude' in options)) {\n throw new MapsException(\n 'First parameter of `showLocation` should contain object with at least keys `latitude` and `longitude`.',\n );\n }\n if (\n 'title' in options &&\n options.title &&\n typeof options.title !== 'string'\n ) {\n throw new MapsException('Option `title` should be of type `string`.');\n }\n if (\n 'googleForceLatLon' in options &&\n options.googleForceLatLon &&\n typeof options.googleForceLatLon !== 'boolean'\n ) {\n throw new MapsException(\n 'Option `googleForceLatLon` should be of type `boolean`.',\n );\n }\n if (\n 'googlePlaceId' in options &&\n options.googlePlaceId &&\n typeof options.googlePlaceId !== 'string'\n ) {\n throw new MapsException(\n 'Option `googlePlaceId` should be of type `string`.',\n );\n }\n if ('app' in options && options.app && !(options.app in prefixes)) {\n throw new MapsException(\n 'Option `app` should be undefined, null, or one of the following: \"' +\n Object.keys(prefixes).join('\", \"') +\n '\".',\n );\n }\n if ('appsWhiteList' in options && options.appsWhiteList) {\n checkNotSupportedApps(options.appsWhiteList);\n }\n if (\n 'appTitles' in options &&\n options.appTitles &&\n typeof options.appTitles !== 'object'\n ) {\n throw new MapsException('Option `appTitles` should be of type `object`.');\n }\n}\n\nclass MapsException {\n constructor(message) {\n this.message = message;\n this.name = 'MapsException';\n }\n}\n","/**\n * React Native Map Link\n */\n\nimport {Linking} from 'react-native';\n\nimport {generatePrefixes, generateTitles, isIOS} from './constants';\nimport {askAppChoice, checkOptions} from './utils';\n\n/**\n * Open a maps app, or let the user choose what app to open, with the given location.\n *\n * @param {{\n * latitude: number | string,\n * longitude: number | string,\n * sourceLatitude: number | undefined | null,\n * sourceLongitude: number | undefined | null,\n * alwaysIncludeGoogle: boolean | undefined | null,\n * googleForceLatLon: boolean | undefined | null,\n * googlePlaceId: number | string | undefined | null,\n * title: string | undefined | null,\n * app: string | undefined | null\n * dialogTitle: string | undefined | null\n * dialogMessage: string | undefined | null\n * cancelText: string | undefined | null\n * appsWhiteList: array | undefined | null\n * appTitles: object | undefined | null\n * naverCallerName: string | undefined\n * directionsMode: 'car' | 'walk' | 'public-transport' | 'bike' | undefined\n * }} options\n */\nexport async function showLocation(options) {\n const prefixes = generatePrefixes(options);\n checkOptions(options, prefixes);\n\n let useSourceDestiny = false;\n let sourceLat;\n let sourceLng;\n let sourceLatLng;\n\n if ('sourceLatitude' in options && 'sourceLongitude' in options) {\n useSourceDestiny = true;\n sourceLat = parseFloat(options.sourceLatitude);\n sourceLng = parseFloat(options.sourceLongitude);\n sourceLatLng = `${sourceLat},${sourceLng}`;\n }\n\n const lat = parseFloat(options.latitude);\n const lng = parseFloat(options.longitude);\n const latlng = `${lat},${lng}`;\n const title = options.title && options.title.length ? options.title : null;\n const encodedTitle = encodeURIComponent(title);\n let app = options.app && options.app.length ? options.app : null;\n const dialogTitle =\n options.dialogTitle && options.dialogTitle.length\n ? options.dialogTitle\n : 'Open in Maps';\n const dialogMessage =\n options.dialogMessage && options.dialogMessage.length\n ? options.dialogMessage\n : 'What app would you like to use?';\n const cancelText =\n options.cancelText && options.cancelText.length\n ? options.cancelText\n : 'Cancel';\n const appsWhiteList =\n options.appsWhiteList && options.appsWhiteList.length\n ? options.appsWhiteList\n : null;\n\n if (!app) {\n app = await askAppChoice({\n dialogTitle,\n dialogMessage,\n cancelText,\n appsWhiteList,\n prefixes,\n appTitles: generateTitles(options.appTitles),\n });\n }\n\n let url = null;\n\n const getDirectionsModeAppleMaps = () => {\n switch (options.directionsMode) {\n case 'car':\n return 'd';\n\n case 'walk':\n return 'w';\n\n case 'public-transport':\n return 'r';\n\n default:\n return undefined;\n }\n };\n\n const getDirectionsModeGoogleMaps = () => {\n switch (options.directionsMode) {\n case 'car':\n return 'driving';\n\n case 'walk':\n return 'walking';\n\n case 'public-transport':\n return 'transit';\n\n case 'bike':\n return 'bicycling';\n\n default:\n return undefined;\n }\n };\n\n switch (app) {\n case 'apple-maps':\n const appleDirectionMode = getDirectionsModeAppleMaps();\n url = prefixes['apple-maps'];\n url = useSourceDestiny\n ? `${url}?saddr=${sourceLatLng}&daddr=${latlng}`\n : `${url}?ll=${latlng}`;\r\n url += `&q=${title ? encodedTitle : 'Location'}`;\n url += appleDirectionMode ? `&dirflg=${appleDirectionMode}` : '';\n break;\n case 'google-maps':\n const googleDirectionMode = getDirectionsModeGoogleMaps();\n // Always using universal URL instead of URI scheme since the latter doesn't support all parameters (#155)\n if (useSourceDestiny || options.directionsMode) {\n // Use \"dir\" as this will open up directions\n url = 'https://www.google.com/maps/dir/?api=1';\n url += sourceLatLng ? `&origin=${sourceLatLng}` : '';\n if (!options.googleForceLatLon && title) {\n url += `&destination=${encodedTitle}`;\n } else {\n url += `&destination=${latlng}`;\n }\n\n url += options.googlePlaceId\n ? `&destination_place_id=${options.googlePlaceId}`\n : '';\n\n url += googleDirectionMode ? `&travelmode=${googleDirectionMode}` : '';\n } else {\n // Use \"search\" as this will open up a single marker\n url = 'https://www.google.com/maps/search/?api=1';\n\n if (!options.googleForceLatLon && title) {\n url += `&query=${encodedTitle}`;\n } else {\n url += `&query=${latlng}`;\n }\n\n url += options.googlePlaceId\n ? `&query_place_id=${options.googlePlaceId}`\n : '';\n }\n break;\n case 'citymapper':\n url = `${prefixes.citymapper}directions?endcoord=${latlng}`;\n\n if (title) {\n url += `&endname=${encodedTitle}`;\n }\n\n if (useSourceDestiny) {\n url += `&startcoord=${sourceLatLng}`;\n }\n break;\n case 'uber':\n url = `${prefixes.uber}?action=setPickup&dropoff[latitude]=${lat}&dropoff[longitude]=${lng}`;\n\n if (title) {\n url += `&dropoff[nickname]=${encodedTitle}`;\n }\n\n url += useSourceDestiny\n ? `&pickup[latitude]=${sourceLat}&pickup[longitude]=${sourceLng}`\n : '&pickup=my_location';\n\n break;\n case 'lyft':\n url = `${prefixes.lyft}ridetype?id=lyft&destination[latitude]=${lat}&destination[longitude]=${lng}`;\n\n if (useSourceDestiny) {\n url += `&pickup[latitude]=${sourceLat}&pickup[longitude]=${sourceLng}`;\n }\n\n break;\n case 'transit':\n url = `${prefixes.transit}directions?to=${latlng}`;\n\n if (useSourceDestiny) {\n url += `&from=${sourceLatLng}`;\n }\n break;\n case 'truckmap':\n url = `https://truckmap.com/place/${lat},${lng}`;\n\n if (useSourceDestiny) {\n url = `https://truckmap.com/route/${sourceLat},${sourceLng}/${lat},${lng}`;\n }\n break;\n case 'waze':\n url = `${prefixes.waze}?ll=${latlng}&navigate=yes`;\n if (title) {\n url += `&q=${encodedTitle}`;\n }\n break;\n case 'yandex':\n url = `${prefixes.yandex}build_route_on_map?lat_to=${lat}&lon_to=${lng}`;\n\n if (useSourceDestiny) {\n url += `&lat_from=${sourceLat}&lon_from=${sourceLng}`;\n }\n break;\n case 'moovit':\n url = `${prefixes.moovit}directions?dest_lat=${lat}&dest_lon=${lng}`;\n\n if (title) {\n url += `&dest_name=${encodedTitle}`;\n }\n\n if (useSourceDestiny) {\n url += `&orig_lat=${sourceLat}&orig_lon=${sourceLng}`;\n }\n break;\n case 'yandex-taxi':\n url = `${prefixes['yandex-taxi']}route?end-lat=${lat}&end-lon=${lng}&appmetrica_tracking_id=1178268795219780156`;\n\n break;\n case 'yandex-maps':\n url = `${prefixes['yandex-maps']}?pt=${lng},${lat}`;\n\n break;\n case 'kakaomap':\n url = `${prefixes.kakaomap}look?p=${latlng}`;\n\n if (useSourceDestiny) {\n url = `${prefixes.kakaomap}route?sp=${sourceLat},${sourceLng}&ep=${latlng}&by=CAR`;\n }\n break;\n case 'mapycz':\n url = `${prefixes.mapycz}www.mapy.cz/zakladni?x=${lng}&y=${lat}&source=coor&id=${lng},${lat}`;\n\n break;\n case 'maps-me':\n url = `${prefixes['maps-me']}route?sll=${sourceLat},${sourceLng}&saddr= &dll=${lat},${lng}&daddr=${title}&type=vehicle`;\n\n break;\n case 'osmand':\n url = isIOS\n ? `${prefixes.osmand}?lat=${lat}&lon=${lng}`\n : `${prefixes.osmand}?q=${lat},${lng}`;\n\n break;\n case 'gett':\n url = `${prefixes.gett}order?pickup=my_location&dropoff_latitude=${lat}&dropoff_longitude=${lng}`;\n\n break;\n case 'navermap':\n url = `${prefixes.navermap}map?lat=${lat}&lng=${lng}&appname=${options.naverCallerName}`;\n\n if (useSourceDestiny) {\n url = `${prefixes.navermap}route?slat=${sourceLat}&slng=${sourceLng}&dlat=${lat}&dlng=${lng}&appname=${options.naverCallerName}`;\n }\n break;\n case 'dgis':\n url = `${prefixes.dgis}routeSearch/to/${lng},${lat}/go`;\n\n if (useSourceDestiny) {\n url = `${prefixes.dgis}routeSearch/to/${lng},${lat}/from/${sourceLng},${sourceLat}/go`;\n }\n break;\n case 'liftago':\n url = `${prefixes.liftago}order?destinationLat=${lat}&destinationLon=${lng}`;\n\n if (title) {\n url += `&destinationName=${encodedTitle}`;\n }\n\n if (useSourceDestiny) {\n url += `&pickupLat=${sourceLat}&pickupLon=${sourceLng}`;\n }\n break;\n case 'petalmaps':\n url = `${prefixes.petalmaps}navigation?daddr=${lat},${lng}`;\n\n if (useSourceDestiny) {\n url += `&saddr=${sourceLat},${sourceLng}`;\n }\n break;\n }\n\n if (url) {\n return Linking.openURL(url).then(() => Promise.resolve(app));\n }\n}\n","/**\n * React Native Map Link\n */\n\nimport React from 'react';\nimport {\n StyleSheet,\n View,\n Text,\n Image,\n TouchableOpacity,\n Dimensions,\n FlatList,\n ActivityIndicator,\n} from 'react-native';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-native-modal';\n\nimport {getAvailableApps, checkNotSupportedApps} from '../utils';\nimport {showLocation} from '../index';\nimport {generateTitles, icons, generatePrefixes} from '../constants';\n\nconst SCREEN_HEIGHT = Dimensions.get('screen').height;\n\nconst colors = {\n black: '#464646',\n gray: '#BBC4CC',\n lightGray: '#ACBBCB',\n lightBlue: '#ECF2F8',\n};\n\nexport default class Popup extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n apps: [],\n loading: true,\n titles: generateTitles(props.appTitles),\n };\n\n this._renderAppItem = this._renderAppItem.bind(this);\n }\n\n componentDidMount() {\n this.loadApps();\n }\n\n async loadApps() {\n const {appsWhiteList, options} = this.props;\n let apps = await getAvailableApps(generatePrefixes(options));\n if (appsWhiteList && appsWhiteList.length) {\n checkNotSupportedApps(appsWhiteList);\n apps = apps.filter((appName) =>\n this.props.appsWhiteList.includes(appName),\n );\n }\n\n this.setState({apps, loading: false});\n }\n\n _renderHeader() {\n const {showHeader, customHeader, options} = this.props;\n if (!showHeader) {\n return null;\n }\n if (customHeader) {\n return customHeader;\n }\n\n const dialogTitle =\n options.dialogTitle && options.dialogTitle.length\n ? options.dialogTitle\n : 'Open in Maps';\n const dialogMessage =\n options.dialogMessage && options.dialogMessage.length\n ? options.dialogMessage\n : 'What app would you like to use?';\n\n return (\n \n \n {dialogTitle}\n \n {dialogMessage && dialogMessage.length ? (\n \n {dialogMessage}\n \n ) : null}\n \n );\n }\n\n _renderApps() {\n return (\n (\n \n )}\n data={this.state.apps}\n renderItem={this._renderAppItem}\n keyExtractor={(item) => item}\n />\n );\n }\n\n _renderAppItem({item}) {\n return (\n this._onAppPressed({app: item})}>\n \n \n \n \n {this.state.titles[item]}\n \n \n );\n }\n\n _renderCancelButton() {\n const {options} = this.props;\n const cancelText =\n options.cancelText && options.cancelText.length\n ? options.cancelText\n : 'Cancel';\n return (\n \n \n {cancelText}\n \n \n );\n }\n\n _renderFooter() {\n const {customFooter} = this.props;\n if (customFooter) {\n return customFooter;\n }\n return this._renderCancelButton();\n }\n\n _onAppPressed({app}) {\n showLocation({...this.props.options, app});\n this.props.onAppPressed(app);\n }\n\n render() {\n const {loading} = this.state;\n return (\n \n \n {this._renderHeader()}\n {loading ? (\n \n ) : (\n this._renderApps()\n )}\n {this._renderFooter()}\n \n \n );\n }\n}\n\nPopup.propTypes = {\n isVisible: PropTypes.bool,\n showHeader: PropTypes.bool,\n customHeader: PropTypes.element,\n customFooter: PropTypes.element,\n onBackButtonPressed: PropTypes.func,\n onAppPressed: PropTypes.func,\n onCancelPressed: PropTypes.func,\n style: PropTypes.object,\n modalProps: PropTypes.object,\n options: PropTypes.object.isRequired,\n appsWhiteList: PropTypes.array,\n};\n\nPopup.defaultProps = {\n isVisible: false,\n showHeader: true,\n customHeader: null,\n customFooter: null,\n style: {\n container: {},\n itemContainer: {},\n image: {},\n itemText: {},\n headerContainer: {},\n titleText: {},\n subtitleText: {},\n cancelButtonContainer: {},\n cancelButtonText: {},\n separatorStyle: {},\n activityIndicatorContainer: {},\n },\n modalProps: {},\n options: {},\n appsWhiteList: null,\n onBackButtonPressed: () => {},\n onCancelPressed: () => {},\n onAppPressed: () => {},\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: 'white',\n borderRadius: 10,\n overflow: 'hidden',\n maxHeight: SCREEN_HEIGHT * 0.6,\n },\n itemContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 20,\n paddingRight: 20,\n },\n image: {\n width: 50,\n height: 50,\n borderRadius: 25,\n },\n itemText: {\n fontSize: 16,\n fontWeight: 'bold',\n color: colors.black,\n marginLeft: 15,\n },\n headerContainer: {\n borderWidth: 1,\n borderColor: 'transparent',\n borderBottomColor: colors.lightBlue,\n padding: 15,\n },\n titleText: {\n fontSize: 16,\n textAlign: 'center',\n color: colors.black,\n },\n subtitleText: {\n fontSize: 12,\n color: colors.lightGray,\n textAlign: 'center',\n marginTop: 10,\n },\n cancelButtonContainer: {\n justifyContent: 'center',\n alignItems: 'center',\n padding: 20,\n borderWidth: 1,\n borderColor: 'transparent',\n borderTopColor: colors.lightBlue,\n },\n cancelButtonText: {\n fontSize: 16,\n fontWeight: 'bold',\n color: colors.gray,\n },\n separatorStyle: {\n flex: 1,\n height: 1,\n backgroundColor: colors.lightBlue,\n },\n activityIndicatorContainer: {\n height: 70,\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n","import { StatusBarProps } from './StatusBar.types';\n\n// @needsAudit\n/**\n * A component that allows you to configure your status bar without directly calling imperative\n * methods like `setBarStyle`.\n *\n * You will likely have multiple `StatusBar` components mounted in the same app at the same time.\n * For example, if you have multiple screens in your app, you may end up using one per screen.\n * The props of each `StatusBar` component will be merged in the order that they were mounted.\n * This component is built on top of the [StatusBar](https://reactnative.dev/docs/statusbar)\n * component exported from React Native, and it provides defaults that work better for Expo users.\n */\nexport default function ExpoStatusBar(props: StatusBarProps) {\n // StatusBar does nothing on web currently\n return null;\n}\n","import AnimatedNode from './AnimatedNode';\n\nimport deepEqual from 'lodash.isequal';\n\nfunction sanitizeTransform(inputTransform) {\n const outputTransform = [];\n let hasAnimatedTransform = false;\n inputTransform.forEach((transform) => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n hasAnimatedTransform = true;\n outputTransform.push({\n property: key,\n nodeID: value.__nodeID,\n });\n } else {\n outputTransform.push({\n property: key,\n value,\n });\n }\n }\n });\n return hasAnimatedTransform ? outputTransform : undefined;\n}\n\nfunction extractAnimatedParentNodes(transform) {\n const parents = [];\n transform.forEach((transform) => {\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n parents.push(value);\n }\n }\n });\n return parents;\n}\n\nexport function createOrReuseTransformNode(transform, oldNode) {\n const config = sanitizeTransform(transform);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedTransform(transform, config);\n}\n\nclass AnimatedTransform extends AnimatedNode {\n constructor(transform, config) {\n super(\n { type: 'transform', transform: config },\n extractAnimatedParentNodes(transform)\n );\n this._config = config;\n this._transform = transform;\n }\n\n toString() {\n return `AnimatedTransform, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n return this._transform.map((transform) => {\n const result = {};\n for (const key in transform) {\n const value = transform[key];\n if (value instanceof AnimatedNode) {\n result[key] = value.__getValue();\n }\n }\n return result;\n });\n }\n}\n","import { StyleSheet } from 'react-native';\n\nimport AnimatedNode from './AnimatedNode';\nimport { createOrReuseTransformNode } from './AnimatedTransform';\n\nimport deepEqual from 'lodash.isequal';\n\nfunction sanitizeStyle(inputStyle) {\n let style;\n for (const key in inputStyle) {\n const value = inputStyle[key];\n if (value instanceof AnimatedNode) {\n if (style === undefined) {\n style = {};\n }\n style[key] = value.__nodeID;\n }\n }\n return style;\n}\n\nexport function createOrReuseStyleNode(style, oldNode) {\n style = StyleSheet.flatten(style) || {};\n if (style.transform) {\n const transform = createOrReuseTransformNode(\n style.transform,\n oldNode && oldNode._style.transform\n );\n if (transform) {\n style = {\n ...style,\n transform,\n };\n }\n }\n const config = sanitizeStyle(style);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedStyle(style, config);\n}\n\n/**\n * AnimatedStyle should never be directly instantiated, use createOrReuseStyleNode\n * in order to make a new instance of this node.\n */\nexport default class AnimatedStyle extends AnimatedNode {\n constructor(style, config) {\n super({ type: 'style', style: config }, Object.values(style));\n this._config = config;\n this._style = style;\n }\n\n toString() {\n return `AnimatedStyle, id: ${this.__nodeID}`;\n }\n\n _walkStyleAndGetAnimatedValues(style) {\n const updatedStyle = {};\n for (const key in style) {\n const value = style[key];\n if (value instanceof AnimatedNode) {\n updatedStyle[key] = value.__getValue();\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 return updatedStyle;\n }\n\n __onEvaluate() {\n return this._walkStyleAndGetAnimatedValues(this._style);\n }\n}\n","import { findNodeHandle } from 'react-native';\n\nimport AnimatedNode from './AnimatedNode';\nimport AnimatedEvent from './AnimatedEvent';\nimport { createOrReuseStyleNode } from './AnimatedStyle';\n\nimport invariant from 'invariant';\nimport deepEqual from 'lodash.isequal';\nimport { val } from '../val';\n\nfunction sanitizeProps(inputProps) {\n let props;\n for (const key in inputProps) {\n const value = inputProps[key];\n if (value instanceof AnimatedNode && !(value instanceof AnimatedEvent)) {\n if (props === undefined) {\n props = {};\n }\n props[key] = value.__nodeID;\n }\n }\n return props;\n}\n\nexport function createOrReusePropsNode(props, callback, oldNode) {\n if (props.style) {\n const style = createOrReuseStyleNode(\n props.style,\n oldNode && oldNode._props.style\n );\n if (style) {\n props = {\n ...props,\n style,\n };\n }\n }\n const config = sanitizeProps(props);\n if (config === undefined) {\n return undefined;\n }\n if (oldNode && deepEqual(config, oldNode._config)) {\n return oldNode;\n }\n return new AnimatedProps(props, config, callback);\n}\n\nclass AnimatedProps extends AnimatedNode {\n constructor(props, config, callback) {\n super(\n { type: 'props', props: config },\n Object.values(props).filter((n) => !(n instanceof AnimatedEvent))\n );\n this._config = config;\n this._props = props;\n this._callback = callback;\n this.__attach();\n }\n\n toString() {\n return `AnimatedProps, id: ${this.__nodeID}`;\n }\n\n __onEvaluate() {\n const props = {};\n for (const key in this._props) {\n const value = this._props[key];\n if (value instanceof AnimatedNode) {\n props[key] = value.__getValue();\n }\n }\n return props;\n }\n\n __detach() {\n const nativeViewTag = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree'\n );\n this._disconnectAnimatedView(nativeViewTag);\n super.__detach();\n }\n\n update() {\n this._callback();\n\n if (!this._animatedView) {\n return;\n }\n\n val(this);\n }\n\n setNativeView(animatedView) {\n if (this._animatedView === animatedView) {\n return;\n }\n this._animatedView = animatedView;\n\n const nativeViewTag = findNodeHandle(this._animatedView);\n invariant(\n nativeViewTag != null,\n 'Unable to locate attached view in the native tree'\n );\n this._connectAnimatedView(nativeViewTag);\n }\n}\n","import { useRef, useState, useMemo, useCallback, useEffect } from 'react';\nimport { MMKV, MMKVConfiguration } from './MMKV';\n\nfunction isConfigurationEqual(\n left?: MMKVConfiguration,\n right?: MMKVConfiguration\n): boolean {\n if (left == null || right == null) return left == null && right == null;\n\n return (\n left.encryptionKey === right.encryptionKey &&\n left.id === right.id &&\n left.path === right.path\n );\n}\n\nlet defaultInstance: MMKV | null = null;\nfunction getDefaultInstance(): MMKV {\n if (defaultInstance == null) {\n defaultInstance = new MMKV();\n }\n return defaultInstance;\n}\n\n/**\n * Use the default, shared MMKV instance.\n */\nexport function useMMKV(): MMKV;\n/**\n * Use a custom MMKV instance with the given configuration.\n * @param configuration The configuration to initialize the MMKV instance with. Does not have to be memoized.\n */\nexport function useMMKV(configuration: MMKVConfiguration): MMKV;\nexport function useMMKV(configuration?: MMKVConfiguration): MMKV {\n const instance = useRef();\n const lastConfiguration = useRef();\n\n if (configuration == null) return getDefaultInstance();\n\n if (\n instance.current == null ||\n !isConfigurationEqual(lastConfiguration.current, configuration)\n ) {\n lastConfiguration.current = configuration;\n instance.current = new MMKV(configuration);\n }\n\n // @ts-expect-error it's not null, I promise.\n return instance;\n}\n\nfunction createMMKVHook<\n T extends boolean | number | (string | undefined),\n TSet extends T | undefined,\n TSetAction extends TSet | ((current: T) => TSet)\n>(getter: (instance: MMKV, key: string) => T) {\n return (\n key: string,\n instance?: MMKV\n ): [value: T, setValue: (value: TSetAction) => void] => {\n const mmkv = instance ?? getDefaultInstance();\n const [value, setValue] = useState(() => getter(mmkv, key));\n const valueRef = useRef(value);\n valueRef.current = value;\n\n // update value by user set\n const set = useCallback(\n (v: TSetAction) => {\n const newValue = typeof v === 'function' ? v(valueRef.current) : v;\n switch (typeof newValue) {\n case 'number':\n case 'string':\n case 'boolean':\n mmkv.set(key, newValue);\n break;\n case 'undefined':\n mmkv.delete(key);\n break;\n default:\n throw new Error(`MMKV: Type ${typeof newValue} is not supported!`);\n }\n },\n [key, mmkv]\n );\n\n // update value if key changes\n const keyRef = useRef(key);\n useEffect(() => {\n if (key !== keyRef.current) {\n setValue(getter(mmkv, key));\n keyRef.current = key;\n }\n }, [key, mmkv]);\n\n // update value if it changes somewhere else (second hook, same key)\n useEffect(() => {\n const listener = mmkv.addOnValueChangedListener((changedKey) => {\n if (changedKey === key) {\n setValue(getter(mmkv, key));\n }\n });\n return () => listener.remove();\n }, [key, mmkv]);\n\n return [value, set];\n };\n}\n\n/**\n * Use the string value of the given `key` from the given MMKV storage instance.\n *\n * If no instance is provided, a shared default instance will be used.\n *\n * @example\n * ```ts\n * const [username, setUsername] = useMMKVString(\"user.name\")\n * ```\n */\nexport const useMMKVString = createMMKVHook((instance, key) =>\n instance.getString(key)\n);\n\n/**\n * Use the number value of the given `key` from the given MMKV storage instance.\n *\n * If no instance is provided, a shared default instance will be used.\n *\n * @example\n * ```ts\n * const [age, setAge] = useMMKVNumber(\"user.age\")\n * ```\n */\nexport const useMMKVNumber = createMMKVHook((instance, key) =>\n instance.getNumber(key)\n);\n/**\n * Use the boolean value of the given `key` from the given MMKV storage instance.\n *\n * If no instance is provided, a shared default instance will be used.\n *\n * @example\n * ```ts\n * const [isPremiumAccount, setIsPremiumAccount] = useMMKVBoolean(\"user.isPremium\")\n * ```\n */\nexport const useMMKVBoolean = createMMKVHook((instance, key) =>\n instance.getBoolean(key)\n);\n/**\n * Use an object value of the given `key` from the given MMKV storage instance.\n *\n * If no instance is provided, a shared default instance will be used.\n *\n * The object will be serialized using `JSON`.\n *\n * @example\n * ```ts\n * const [user, setUser] = useMMKVObject(\"user\")\n * ```\n */\nexport function useMMKVObject(\n key: string,\n instance?: MMKV\n): [value: T | undefined, setValue: (value: T | undefined) => void] {\n const [string, setString] = useMMKVString(key, instance);\n\n const value = useMemo(() => {\n if (string == null) return undefined;\n return JSON.parse(string) as T;\n }, [string]);\n const setValue = useCallback(\n (v: T | undefined) => {\n if (v == null) {\n // Clear the Value\n setString(undefined);\n } else {\n // Store the Object as a serialized Value\n setString(JSON.stringify(v));\n }\n },\n [setString]\n );\n\n return [value, setValue];\n}\n\n/**\n * Listen for changes in the given MMKV storage instance.\n * If no instance is passed, the default instance will be used.\n * @param valueChangedListener The function to call whenever a value inside the storage instance changes\n * @param instance The instance to listen to changes to (or the default instance)\n *\n * @example\n * ```ts\n * useMMKVListener((key) => {\n * console.log(`Value for \"${key}\" changed!`)\n * })\n * ```\n */\nexport function useMMKVListener(\n valueChangedListener: (key: string) => void,\n instance?: MMKV\n): void {\n const ref = useRef(valueChangedListener);\n ref.current = valueChangedListener;\n\n const mmkv = instance ?? getDefaultInstance();\n\n useEffect(() => {\n const listener = mmkv.addOnValueChangedListener((changedKey) => {\n ref.current(changedKey);\n });\n return () => listener.remove();\n }, [mmkv]);\n}\n","import { UnavailabilityError } from 'expo-modules-core';\n\ntype ShareOptions = { title?: string; text?: string; url?: string };\n\nexport default {\n get name(): string {\n return 'ExpoSharing';\n },\n async isAvailableAsync(): Promise {\n if (typeof navigator === 'undefined') {\n return false;\n }\n\n return !!navigator.share;\n },\n async shareAsync(url: string, options: ShareOptions = {}): Promise {\n // NOTE: `navigator.share` is only available via HTTPS\n if (navigator.share) {\n await navigator.share({ ...options, url });\n } else {\n throw new UnavailabilityError('navigator', 'share');\n }\n },\n};\n","import { UnavailabilityError } from 'expo-modules-core';\n\nimport Sharing from './ExpoSharing';\n\n// @needsAudit\nexport type SharingOptions = {\n /**\n * Sets `mimeType` for `Intent`.\n * @platform android\n */\n mimeType?: string;\n /**\n * [Uniform Type Identifier](https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html)\n * - the type of the target file.\n * @platform ios\n */\n UTI?: string;\n /**\n * Sets share dialog title.\n * @platform android\n * @platform web\n */\n dialogTitle?: string;\n};\n\n// @needsAudit\n/**\n * Determine if the sharing API can be used in this app.\n * @return A promise that fulfills with `true` if the sharing API can be used, and `false` otherwise.\n */\nexport async function isAvailableAsync(): Promise {\n if (Sharing) {\n if (Sharing.isAvailableAsync) {\n return await Sharing.isAvailableAsync();\n }\n return true;\n }\n\n return false;\n}\n\n// @needsAudit\n/**\n * Opens action sheet to share file to different applications which can handle this type of file.\n * @param url Local file URL to share.\n * @param options A map of share options.\n */\nexport async function shareAsync(url: string, options: SharingOptions = {}): Promise {\n if (!Sharing || !Sharing.shareAsync) {\n throw new UnavailabilityError('Sharing', 'shareAsync');\n }\n return await Sharing.shareAsync(url, options);\n}\n","import React, { memo, forwardRef } from 'react';\nimport type { IInputProps } from './types';\nimport { TextInput } from 'react-native';\nimport { useToken } from '../../../hooks';\nimport { useFormControl } from '../../composites/FormControl';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport { useHover } from '@react-native-aria/interactions';\nimport { extractInObject, stylingProps } from '../../../theme/tools/utils';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { mergeRefs } from '../../../utils';\nimport { Stack } from '../Stack';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport { useResolvedFontFamily } from '../../../hooks/useResolvedFontFamily';\n\nconst StyledInput = makeStyledComponent(TextInput);\n\nconst Input = (\n {\n isHovered: isHoveredProp,\n isFocused: isFocusedProp,\n onKeyPress,\n ...props\n }: IInputProps,\n ref: any\n) => {\n const inputProps = useFormControl({\n isDisabled: props.isDisabled,\n isInvalid: props.isInvalid,\n isReadOnly: props.isReadOnly,\n isRequired: props.isRequired,\n nativeID: props.nativeID,\n });\n const [isFocused, setIsFocused] = React.useState(false);\n const handleFocus = (focusState: boolean, callback: any) => {\n setIsFocused(focusState);\n callback();\n };\n\n /**Converting into Hash Color Code */\n //@ts-ignore\n props.focusOutlineColor = useToken('colors', props.focusOutlineColor);\n //@ts-ignore\n props.inValidOutlineColor = useToken('colors', props.inValidOutlineColor);\n\n const _ref = React.useRef(null);\n const { isHovered } = useHover({}, _ref);\n\n const inputThemeProps = {\n isDisabled: inputProps.disabled,\n isInvalid: inputProps.accessibilityInvalid,\n isReadOnly: inputProps.accessibilityReadOnly,\n isRequired: inputProps.required,\n };\n\n const {\n ariaLabel,\n accessibilityLabel,\n type,\n isFullWidth,\n isDisabled,\n isReadOnly,\n fontFamily,\n fontWeight,\n fontStyle,\n placeholderTextColor,\n selectionColor,\n underlineColorAndroid,\n InputLeftElement,\n InputRightElement,\n leftElement,\n rightElement,\n onFocus,\n onBlur,\n wrapperRef,\n _stack,\n _input,\n\n ...resolvedProps\n } = usePropsResolution(\n 'Input',\n {\n ...inputThemeProps,\n ...props,\n },\n {\n isDisabled: inputThemeProps.isDisabled,\n isHovered: isHoveredProp || isHovered,\n isFocused: isFocusedProp || isFocused,\n isInvalid: inputThemeProps.isInvalid,\n isReadOnly: inputThemeProps.isReadOnly,\n }\n );\n\n const [layoutProps, nonLayoutProps] = extractInObject(resolvedProps, [\n ...stylingProps.margin,\n ...stylingProps.border,\n ...stylingProps.layout,\n ...stylingProps.flexbox,\n ...stylingProps.position,\n ...stylingProps.background,\n 'shadow',\n 'opacity',\n ]);\n\n const resolvedFontFamily = useResolvedFontFamily({\n fontFamily,\n fontWeight: fontWeight ?? 400,\n fontStyle: fontStyle ?? 'normal',\n });\n const resolvedPlaceholderTextColor = useToken('colors', placeholderTextColor);\n const resolvedSelectionColor = useToken('colors', selectionColor);\n const resolvedUnderlineColorAndroid = useToken(\n 'colors',\n underlineColorAndroid\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {InputLeftElement || leftElement ? InputLeftElement || leftElement : null}\n {\n e.persist();\n onKeyPress && onKeyPress(e);\n }}\n onFocus={(e: any) => {\n handleFocus(true, onFocus ? () => onFocus(e) : () => {});\n }}\n onBlur={(e: any) => {\n handleFocus(false, onBlur ? () => onBlur(e) : () => {});\n }}\n {..._input}\n ref={mergeRefs([ref, _ref, wrapperRef])}\n />\n {InputRightElement || rightElement\n ? InputRightElement || rightElement\n : null}\n \n );\n};\n\nexport default memo(forwardRef(Input));\n","import{get as r,set as i}from\"react-hook-form\";var e=function(i,e,t){if(i&&\"reportValidity\"in i){var f=r(t,e);i.setCustomValidity(f&&f.message||\"\"),i.reportValidity()}},t=function(r,i){var t=function(t){var f=i.fields[t];f&&f.ref&&\"reportValidity\"in f.ref?e(f.ref,t,r):f.refs&&f.refs.forEach(function(i){return e(i,t,r)})};for(var f in i.fields)t(f)},f=function(e,f){f.shouldUseNativeValidation&&t(e,f);var o={};for(var a in e){var n=r(f.fields,a);i(o,a,Object.assign(e[a],{ref:n&&n.ref}))}return o};export{f as toNestError,t as validateFieldsNatively};\n//# sourceMappingURL=resolvers.module.js.map\n","import{appendErrors as r}from\"react-hook-form\";import{validateFieldsNatively as e,toNestError as o}from\"@hookform/resolvers\";var n=function(e,o){for(var n={};e.length;){var s=e[0],t=s.code,i=s.message,a=s.path.join(\".\");if(!n[a])if(\"unionErrors\"in s){var u=s.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:t};if(\"unionErrors\"in s&&s.unionErrors.forEach(function(r){return r.errors.forEach(function(r){return e.push(r)})}),o){var c=n[a].types,f=c&&c[s.code];n[a]=r(a,o,n,t,f?[].concat(f,s.message):s.message)}e.shift()}return n},s=function(r,s,t){return void 0===t&&(t={}),function(i,a,u){try{return Promise.resolve(function(o,n){try{var a=Promise.resolve(r[\"sync\"===t.mode?\"parse\":\"parseAsync\"](i,s)).then(function(r){return u.shouldUseNativeValidation&&e({},u),{errors:{},values:r}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){return{values:{},errors:r.isEmpty?{}:o(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)}}))}catch(r){return Promise.reject(r)}}};export{s as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n","import { Overlay } from '../../primitives/Overlay';\nimport { PresenceTransition } from '../Transitions';\nimport VStack from '../../primitives/Stack/VStack';\nimport React, {\n createContext,\n MutableRefObject,\n useState,\n useMemo,\n} from 'react';\nimport { AccessibilityInfo, Platform, SafeAreaView } from 'react-native';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks';\nimport type { IToastContext, IToastInfo, IToast, IToastProps } from './types';\n\nconst INSET = 50;\n\nconst POSITIONS = {\n 'top': {\n top: INSET,\n left: 0,\n right: 0,\n },\n 'top-right': {\n top: INSET,\n right: 0,\n },\n 'top-left': {\n top: INSET,\n left: 0,\n },\n 'bottom': {\n bottom: INSET,\n left: 0,\n right: 0,\n },\n 'bottom-left': {\n bottom: INSET,\n left: 0,\n },\n 'bottom-right': {\n bottom: INSET,\n right: 0,\n },\n};\n\nconst initialAnimationOffset = 24;\n\nconst transitionConfig: any = {\n 'bottom': initialAnimationOffset,\n 'top': -initialAnimationOffset,\n 'top-right': -initialAnimationOffset,\n 'top-left': -initialAnimationOffset,\n 'bottom-left': initialAnimationOffset,\n 'bottom-right': initialAnimationOffset,\n};\n\nconst ToastContext = createContext({\n toastInfo: {},\n setToastInfo: () => {},\n setToast: () => {},\n removeToast: () => {},\n hideAll: () => {},\n isActive: () => false,\n visibleToasts: {},\n setVisibleToasts: () => {},\n hideToast: () => {},\n});\n\nconst CustomToast = ({ _overlay, _stack, _presenceTransition }: any) => {\n const { toastInfo, visibleToasts, removeToast } = React.useContext(\n ToastContext\n );\n\n const getPositions = () => {\n return Object.keys(toastInfo);\n };\n\n let hasToastOnOverlay = false;\n getPositions().map((position) => {\n if (toastInfo[position]?.length > 0) hasToastOnOverlay = true;\n });\n\n return getPositions().length > 0 ? (\n \n {getPositions().map((position: string) => {\n if (Object.keys(POSITIONS).includes(position))\n return (\n \n {\n // @ts-ignore\n toastInfo[position].map((toast: IToast) => (\n {\n if (status === 'exited') {\n removeToast(toast.id);\n toast.config?.onCloseComplete &&\n toast.config?.onCloseComplete();\n }\n }}\n initial={{\n opacity: 0,\n translateY: transitionConfig[position],\n }}\n >\n {toast.component}\n \n ))\n }\n \n );\n else return null;\n })}\n \n ) : null;\n};\n\nexport const ToastProvider = ({ children }: { children: any }) => {\n const [toastInfo, setToastInfo] = useState({});\n const [visibleToasts, setVisibleToasts] = useState<\n {\n [key in string]: boolean;\n }\n >({});\n\n const [themeProps] = useState(usePropsResolution('Toast', {}));\n const toastIndex = React.useRef(1);\n\n const hideAll = React.useCallback(() => {\n setVisibleToasts({});\n }, [setVisibleToasts]);\n\n const hideToast = React.useCallback(\n (id: any) => {\n setVisibleToasts((prevVisibleToasts) => ({\n ...prevVisibleToasts,\n [id]: false,\n }));\n },\n [setVisibleToasts]\n );\n\n const isActive = React.useCallback(\n (id: any) => {\n for (const toastPosition of Object.keys(toastInfo)) {\n const positionArray: Array = toastInfo[toastPosition];\n return positionArray.findIndex((toastData) => toastData.id === id) > -1;\n }\n\n return false;\n },\n [toastInfo]\n );\n\n const removeToast = React.useCallback(\n (id: any) => {\n setToastInfo((prev) => {\n for (const toastPosition of Object.keys(prev)) {\n const positionArray: Array = prev[toastPosition];\n const isToastPresent =\n positionArray.findIndex((toastData) => toastData.id === id) > -1;\n\n if (isToastPresent) {\n const newPositionArray = positionArray.filter(\n (item) => item.id !== id\n );\n const temp: any = {};\n temp[toastPosition] = newPositionArray;\n\n const newToastInfo = { ...prev, ...temp };\n return newToastInfo;\n }\n }\n\n return prev;\n });\n },\n [setToastInfo]\n );\n\n const setToast = React.useCallback(\n (props: IToastProps): number => {\n const {\n placement = 'bottom',\n title,\n render,\n id = toastIndex.current++,\n description,\n duration = 5000,\n _title,\n _description,\n accessibilityAnnouncement,\n ...rest\n } = props;\n\n let positionToastArray = toastInfo[placement];\n if (!positionToastArray) positionToastArray = [];\n\n let component = null;\n\n if (render) {\n component = render({ id });\n } else {\n component = (\n // Below VStack is the default component where all the direct props spread.\n \n {title}\n {description && (\n \n {description}\n \n )}\n \n );\n }\n\n toastInfo[placement] = [\n ...positionToastArray,\n { component, id, config: props },\n ];\n\n setToastInfo({ ...toastInfo });\n\n setVisibleToasts({ ...visibleToasts, [id]: true });\n if (duration !== null) {\n setTimeout(function () {\n hideToast(id);\n }, duration);\n }\n\n // iOS doesn't support accessibilityLiveRegion\n if (accessibilityAnnouncement && Platform.OS === 'ios') {\n AccessibilityInfo.announceForAccessibility(accessibilityAnnouncement);\n }\n\n return id;\n },\n [themeProps, toastInfo, visibleToasts, hideToast]\n );\n\n const contextValue = React.useMemo(() => {\n return {\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n };\n }, [\n toastInfo,\n setToastInfo,\n setToast,\n removeToast,\n hideAll,\n isActive,\n visibleToasts,\n setVisibleToasts,\n hideToast,\n ]);\n\n return (\n \n {children}\n \n \n );\n};\n\nexport const useToast = () => {\n const { setToast, hideAll, isActive, hideToast } = React.useContext(\n ToastContext\n );\n\n const toast = useMemo(\n () => ({\n show: setToast,\n close: hideToast,\n closeAll: hideAll,\n isActive,\n }),\n [setToast, hideAll, isActive, hideToast]\n );\n\n return toast;\n};\n\nexport type IToastService = ReturnType;\n\nexport const ToastRef = React.createRef() as MutableRefObject;\n\nexport const Toast: IToastService = {\n show: (props: IToastProps) => ToastRef.current?.show(props),\n close: (id: any) => ToastRef.current?.close(id),\n closeAll: () => ToastRef.current?.closeAll(),\n isActive: (id: any) => ToastRef.current?.isActive(id),\n};\n","import React from 'react';\nimport { createIcon } from '../createIcon';\nimport { G, Path } from '../nbSvg';\n\nexport const WarningIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M11.9836 0.00267822C8.77744 0.0551662 5.72075 1.36728 3.47427 3.65538C2.35024 4.77447 1.46338 6.10869 0.866705 7.57831C0.270027 9.04793 -0.0242179 10.6228 0.00155827 12.2087C-0.000286057 13.7583 0.303697 15.2931 0.896087 16.7251C1.48848 18.1571 2.35763 19.458 3.45373 20.5535C4.54983 21.6489 5.85133 22.5173 7.28365 23.1089C8.71596 23.7004 10.2509 24.0035 11.8006 24.0007H12.0146C15.2217 23.9677 18.2847 22.6638 20.5316 20.3751C22.7785 18.0864 24.0257 14.9999 23.9996 11.7927C24.0033 10.2243 23.6933 8.6709 23.0879 7.22398C22.4825 5.77706 21.5939 4.4658 20.4744 3.36731C19.3548 2.26882 18.0269 1.40527 16.5688 0.827453C15.1106 0.249636 13.5517 -0.0307856 11.9836 0.00267822ZM10.5007 16.5433C10.4935 16.3473 10.5254 16.1517 10.5947 15.9682C10.6639 15.7846 10.7691 15.6167 10.904 15.4742C11.0389 15.3318 11.2009 15.2177 11.3804 15.1386C11.5599 15.0594 11.7534 15.0169 11.9496 15.0135H11.9766C12.3712 15.0142 12.7501 15.1677 13.034 15.4417C13.3179 15.7157 13.4847 16.089 13.4995 16.4833C13.5068 16.6794 13.4749 16.875 13.4057 17.0586C13.3365 17.2423 13.2314 17.4102 13.0965 17.5527C12.9615 17.6952 12.7995 17.8093 12.6199 17.8884C12.4403 17.9674 12.2468 18.0099 12.0506 18.0132H12.0236C11.6291 18.0119 11.2505 17.8583 10.9667 17.5844C10.6829 17.3105 10.5159 16.9375 10.5007 16.5433ZM11.0007 12.5017V6.50215C11.0007 6.23695 11.106 5.98262 11.2935 5.7951C11.481 5.60758 11.7354 5.50223 12.0006 5.50223C12.2658 5.50223 12.5201 5.60758 12.7076 5.7951C12.8951 5.98262 13.0005 6.23695 13.0005 6.50215V12.5017C13.0005 12.7669 12.8951 13.0212 12.7076 13.2087C12.5201 13.3962 12.2658 13.5016 12.0006 13.5016C11.7354 13.5016 11.481 13.3962 11.2935 13.2087C11.106 13.0212 11.0007 12.7669 11.0007 12.5017Z',\n});\n\nexport const WarningTwoIcon = createIcon({\n viewBox: '0 0 24 24',\n path: (\n \n \n \n ),\n});\n","import React from 'react';\nimport { createIcon } from '../createIcon';\nimport { G, Path } from '../nbSvg';\n\nexport const InfoOutlineIcon = createIcon({\n viewBox: '0 0 24 24',\n path: (\n \n \n \n \n \n ),\n});\n\nexport const InfoIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21509 0.913451 7.4078C0.00519948 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6935 24 14.3734 24 12C23.9966 8.81846 22.7312 5.76821 20.4815 3.51852C18.2318 1.26883 15.1815 0.00344108 12 0ZM12.25 5C12.5467 5 12.8367 5.08797 13.0834 5.25279C13.33 5.41762 13.5223 5.65189 13.6358 5.92597C13.7494 6.20006 13.7791 6.50166 13.7212 6.79263C13.6633 7.08361 13.5204 7.35088 13.3107 7.56066C13.1009 7.77044 12.8336 7.9133 12.5426 7.97118C12.2517 8.02905 11.9501 7.99935 11.676 7.88582C11.4019 7.77229 11.1676 7.58003 11.0028 7.33335C10.838 7.08668 10.75 6.79667 10.75 6.5C10.75 6.10217 10.908 5.72064 11.1893 5.43934C11.4706 5.15803 11.8522 5 12.25 5ZM14.5 18.5H10.5C10.2348 18.5 9.98043 18.3946 9.7929 18.2071C9.60536 18.0196 9.5 17.7652 9.5 17.5C9.5 17.2348 9.60536 16.9804 9.7929 16.7929C9.98043 16.6054 10.2348 16.5 10.5 16.5H11.25C11.3163 16.5 11.3799 16.4737 11.4268 16.4268C11.4737 16.3799 11.5 16.3163 11.5 16.25V11.75C11.5 11.6837 11.4737 11.6201 11.4268 11.5732C11.3799 11.5263 11.3163 11.5 11.25 11.5H10.5C10.2348 11.5 9.98043 11.3946 9.7929 11.2071C9.60536 11.0196 9.5 10.7652 9.5 10.5C9.5 10.2348 9.60536 9.98043 9.7929 9.79289C9.98043 9.60536 10.2348 9.5 10.5 9.5H11.5C12.0304 9.5 12.5391 9.71071 12.9142 10.0858C13.2893 10.4609 13.5 10.9696 13.5 11.5V16.25C13.5 16.3163 13.5263 16.3799 13.5732 16.4268C13.6201 16.4737 13.6837 16.5 13.75 16.5H14.5C14.7652 16.5 15.0196 16.6054 15.2071 16.7929C15.3946 16.9804 15.5 17.2348 15.5 17.5C15.5 17.7652 15.3946 18.0196 15.2071 18.2071C15.0196 18.3946 14.7652 18.5 14.5 18.5Z',\n});\n","import React, { memo, forwardRef } from 'react';\nimport { Box } from '../../primitives';\nimport {\n WarningIcon,\n WarningTwoIcon,\n InfoIcon,\n CheckCircleIcon,\n} from '../../primitives/Icon/Icons';\nimport type { IAlertContext, IAlertIconProps } from './types';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { AlertContext } from './Context';\nimport { omitUndefined } from '../../../theme/tools/utils';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst AlertIcon = ({ children, ...props }: IAlertIconProps, ref?: any) => {\n let newProps = usePropsResolution('AlertIcon', props);\n newProps = omitUndefined(newProps);\n const { status, _icon }: IAlertContext = React.useContext(AlertContext);\n const getIcon = () => {\n switch (status) {\n case 'error':\n return ;\n case 'warning':\n return ;\n case 'success':\n return ;\n default:\n return ;\n }\n };\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return {children || getIcon()};\n};\nexport default memo(forwardRef(AlertIcon));\n","import React, { memo, forwardRef } from 'react';\nimport Box from '../../primitives/Box';\n// import { HStack } from '../../primitives/Stack';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport type { IAlertProps } from './types';\nimport { AlertContext } from './Context';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Alert = ({ children, ...props }: IAlertProps, ref?: any) => {\n const {\n status,\n variant,\n _icon,\n colorScheme,\n ...newProps\n } = usePropsResolution('Alert', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default memo(forwardRef(Alert));\n","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;","/**\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> 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","/** @license React v17.0.2\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 element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","/** @license React v17.0.2\n * react-jsx-runtime.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';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","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;","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;","'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'];","/** @license React v17.0.2\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","/**\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","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;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, 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;","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;","'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","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","\"use strict\";\n\n/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule BaseEventEmitter\r\n * @typechecks\r\n */\nvar EmitterSubscription = require(\"./EmitterSubscription.js\");\n\nvar EventSubscriptionVendor = require(\"./EventSubscriptionVendor.js\");\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar emptyFunction = require(\"fbjs/lib/emptyFunction\");\n/**\r\n * @class BaseEventEmitter\r\n * @description\r\n * An EventEmitter is responsible for managing a set of listeners and publishing\r\n * events to them when it is told that such events happened. In addition to the\r\n * data for the given event it also sends a event control object which allows\r\n * the listeners/handlers to prevent the default behavior of the given event.\r\n *\r\n * The emitter is designed to be generic enough to support all the different\r\n * contexts in which one might want to emit events. It is a simple multicast\r\n * mechanism on top of which extra functionality can be composed. For example, a\r\n * more advanced emitter may use an EventHolder and EventFactory.\r\n */\n\n\nvar BaseEventEmitter = /*#__PURE__*/function () {\n /**\r\n * @constructor\r\n */\n function BaseEventEmitter() {\n this._subscriber = new EventSubscriptionVendor();\n this._currentSubscription = null;\n }\n /**\r\n * Adds a listener to be invoked when events of the specified type are\r\n * emitted. An optional calling context may be provided. The data arguments\r\n * emitted will be passed to the listener function.\r\n *\r\n * TODO: Annotate the listener arg's type. This is tricky because listeners\r\n * can be invoked with varargs.\r\n *\r\n * @param {string} eventType - Name of the event to listen to\r\n * @param {function} listener - Function to invoke when the specified event is\r\n * emitted\r\n * @param {*} context - Optional context object to use when invoking the\r\n * listener\r\n */\n\n\n var _proto = BaseEventEmitter.prototype;\n\n _proto.addListener = function addListener(eventType, listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this._subscriber, listener, context));\n }\n /**\r\n * Similar to addListener, except that the listener is removed after it is\r\n * invoked once.\r\n *\r\n * @param {string} eventType - Name of the event to listen to\r\n * @param {function} listener - Function to invoke only once when the\r\n * specified event is emitted\r\n * @param {*} context - Optional context object to use when invoking the\r\n * listener\r\n */\n ;\n\n _proto.once = function once(eventType, listener, context) {\n var emitter = this;\n return this.addListener(eventType, function () {\n emitter.removeCurrentListener();\n listener.apply(context, arguments);\n });\n }\n /**\r\n * Removes all of the registered listeners, including those registered as\r\n * listener maps.\r\n *\r\n * @param {?string} eventType - Optional name of the event whose registered\r\n * listeners to remove\r\n */\n ;\n\n _proto.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n }\n /**\r\n * Provides an API that can be called during an eventing cycle to remove the\r\n * last listener that was invoked. This allows a developer to provide an event\r\n * object that can remove the listener (or listener map) during the\r\n * invocation.\r\n *\r\n * If it is called when not inside of an emitting cycle it will throw.\r\n *\r\n * @throws {Error} When called not during an eventing cycle\r\n *\r\n * @example\r\n * var subscription = emitter.addListenerMap({\r\n * someEvent: function(data, event) {\r\n * console.log(data);\r\n * emitter.removeCurrentListener();\r\n * }\r\n * });\r\n *\r\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\r\n * emitter.emit('someEvent', 'def'); // does not log anything\r\n */\n ;\n\n _proto.removeCurrentListener = function removeCurrentListener() {\n !!!this._currentSubscription ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Not in an emitting cycle; there is no current subscription') : invariant(false) : void 0;\n\n this._subscriber.removeSubscription(this._currentSubscription);\n }\n /**\r\n * Returns an array of listeners that are currently registered for the given\r\n * event.\r\n *\r\n * @param {string} eventType - Name of the event to query\r\n * @return {array}\r\n */\n ;\n\n _proto.listeners = function listeners(eventType)\n /* TODO: Array */\n {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n return subscriptions ? subscriptions.filter(emptyFunction.thatReturnsTrue).map(function (subscription) {\n return subscription.listener;\n }) : [];\n }\n /**\r\n * Emits an event of the given type with the given data. All handlers of that\r\n * particular type will be notified.\r\n *\r\n * @param {string} eventType - Name of the event to emit\r\n * @param {*} Arbitrary arguments to be passed to each registered listener\r\n *\r\n * @example\r\n * emitter.addListener('someEvent', function(message) {\r\n * console.log(message);\r\n * });\r\n *\r\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\r\n */\n ;\n\n _proto.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n\n if (subscriptions) {\n var keys = Object.keys(subscriptions);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var key = keys[ii];\n var subscription = subscriptions[key]; // The subscription may have been removed during this event loop.\n\n if (subscription) {\n this._currentSubscription = subscription;\n\n this.__emitToSubscription.apply(this, [subscription].concat(Array.prototype.slice.call(arguments)));\n }\n }\n\n this._currentSubscription = null;\n }\n }\n /**\r\n * Provides a hook to override how the emitter emits an event to a specific\r\n * subscription. This allows you to set up logging and error boundaries\r\n * specific to your environment.\r\n *\r\n * @param {EmitterSubscription} subscription\r\n * @param {string} eventType\r\n * @param {*} Arbitrary arguments to be passed to each registered listener\r\n */\n ;\n\n _proto.__emitToSubscription = function __emitToSubscription(subscription, eventType) {\n var args = Array.prototype.slice.call(arguments, 2);\n subscription.listener.apply(subscription.context, args);\n };\n\n return BaseEventEmitter;\n}();\n\nmodule.exports = BaseEventEmitter;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule EventSubscription\r\n * @typechecks\r\n */\n'use strict';\n/**\r\n * EventSubscription represents a subscription to a particular event. It can\r\n * remove its own subscription.\r\n */\n\nvar EventSubscription = /*#__PURE__*/function () {\n /**\r\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\r\n * this subscription.\r\n */\n function EventSubscription(subscriber) {\n this.subscriber = subscriber;\n }\n /**\r\n * Removes this subscription from the subscriber that controls it.\r\n */\n\n\n var _proto = EventSubscription.prototype;\n\n _proto.remove = function remove() {\n if (this.subscriber) {\n this.subscriber.removeSubscription(this);\n this.subscriber = null;\n }\n };\n\n return EventSubscription;\n}();\n\nmodule.exports = EventSubscription;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule EventSubscriptionVendor\r\n * @typechecks\r\n */\n'use strict';\n\nvar invariant = require(\"fbjs/lib/invariant\");\n/**\r\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\r\n * subscribed to a particular event type.\r\n */\n\n\nvar EventSubscriptionVendor = /*#__PURE__*/function () {\n function EventSubscriptionVendor() {\n this._subscriptionsForType = {};\n this._currentSubscription = null;\n }\n /**\r\n * Adds a subscription keyed by an event type.\r\n *\r\n * @param {string} eventType\r\n * @param {EventSubscription} subscription\r\n */\n\n\n var _proto = EventSubscriptionVendor.prototype;\n\n _proto.addSubscription = function addSubscription(eventType, subscription) {\n !(subscription.subscriber === this) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'The subscriber of the subscription is incorrectly set.') : invariant(false) : void 0;\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 /**\r\n * Removes a bulk set of the subscriptions.\r\n *\r\n * @param {?string} eventType - Optional name of the event type whose\r\n * registered supscriptions to remove, if null remove all subscriptions.\r\n */\n ;\n\n _proto.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType === undefined) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n }\n /**\r\n * Removes a specific subscription. Instead of calling this function, call\r\n * `subscription.remove()` directly.\r\n *\r\n * @param {object} subscription\r\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 /**\r\n * Returns the array of subscriptions that are currently registered for the\r\n * given event type.\r\n *\r\n * Note: This array can be potentially sparse as subscriptions are deleted\r\n * from it when they are removed.\r\n *\r\n * TODO: This returns a nullable array. wat?\r\n *\r\n * @param {string} eventType\r\n * @return {?array}\r\n */\n ;\n\n _proto.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n}();\n\nmodule.exports = EventSubscriptionVendor;","/**\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 ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = __webpack_public_path__ + \"static/media/apple-maps.7c502b06.png\";","module.exports = __webpack_public_path__ + \"static/media/google-maps.363165ba.png\";","module.exports = __webpack_public_path__ + \"static/media/citymapper.366604bc.png\";","module.exports = __webpack_public_path__ + \"static/media/uber.02a57714.png\";","module.exports = __webpack_public_path__ + \"static/media/lyft.bfb5f7ca.png\";","module.exports = __webpack_public_path__ + \"static/media/transit.aab372f4.png\";","module.exports = __webpack_public_path__ + \"static/media/truckmap.3d686aa3.png\";","module.exports = __webpack_public_path__ + \"static/media/waze.dd3508bf.png\";","module.exports = __webpack_public_path__ + \"static/media/yandex.977a2f21.png\";","module.exports = __webpack_public_path__ + \"static/media/moovit.ce2a40e7.png\";","module.exports = __webpack_public_path__ + \"static/media/yandex-taxi.9635a553.png\";","module.exports = __webpack_public_path__ + \"static/media/yandex-maps.3ec2c492.png\";","module.exports = __webpack_public_path__ + \"static/media/kakao-map.f08e1f87.png\";","module.exports = __webpack_public_path__ + \"static/media/mapycz.ade88877.png\";","module.exports = __webpack_public_path__ + \"static/media/maps-me.c00dd801.png\";","module.exports = __webpack_public_path__ + \"static/media/osmand.6093e042.png\";","module.exports = __webpack_public_path__ + \"static/media/gett.897144db.png\";","module.exports = __webpack_public_path__ + \"static/media/naver-map.38541fd9.png\";","module.exports = __webpack_public_path__ + \"static/media/dgis.72f80e74.png\";","module.exports = __webpack_public_path__ + \"static/media/liftago.b6dc4a6f.png\";","module.exports = __webpack_public_path__ + \"static/media/petalmaps.a4c07ac2.png\";","!function(e,a){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=a(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],a):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_en_gb=a(e.dayjs)}(this,(function(e){\"use strict\";function a(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=a(e),_={name:\"en-gb\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekStart:1,yearStart:4,relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},ordinal:function(e){var a=[\"th\",\"st\",\"nd\",\"rd\"],t=e%100;return\"[\"+e+(a[(t-20)%10]||a[t]||a[0])+\"]\"}};return t.default.locale(_,null,!0),_}));","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 {\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 {\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 ReactDOM from 'react-dom';\nexport var unstable_batchedUpdates = ReactDOM.unstable_batchedUpdates;","import { notifyManager } from '../core';\nimport { unstable_batchedUpdates } from './reactBatchedUpdates';\nnotifyManager.setBatchNotifyFunction(unstable_batchedUpdates);","export var logger = console;","import { setLogger } from '../core';\nimport { logger } from './logger';\nsetLogger(logger);","//@ts-ignore\nimport createCompileableStyle from 'react-native-web/dist/exports/StyleSheet/createCompileableStyle';\n//@ts-ignore\nimport i18nStyle from 'react-native-web/dist/exports/StyleSheet/i18nStyle';\n//@ts-ignore\nimport { atomic } from 'react-native-web/dist/exports/StyleSheet/compile';\n//@ts-ignore\nimport styleResolver from 'react-native-web/dist/exports/StyleSheet/styleResolver';\nimport type {\n DataSet,\n Query,\n UseResponsiveQueryParams,\n UseResponsiveQueryReturnType,\n GetResponsiveStylesParams,\n} from './types';\nimport { StyleSheet } from 'react-native';\n//@ts-ignore\nimport stableHash from 'stable-hash';\nimport hash from './hash';\nimport type { GetResponsiveStylesReturnType } from './types';\nimport { useStableMemo } from './useStableMemo';\nimport { getResponsiveStylesImpl, useDimensionsWithEnable } from './common';\nimport { ResponsiveQueryContext } from './ResponsiveQueryProvider';\nimport React from 'react';\n\n// 1. i18nStyle - Does swapping of ltr styles if enabled by user\n\n// 2. createCompileableStyle - Handles shadow/text shadow conversion from RN styles to web styles\n\n// 3. atomic - God function. Pure and memoizes input/output.\n// This is a great function, it handles prefixing, converting RN specific styles to web styles and generating the CSS selector\n// Input {marginTop: 10}\n// Output {\"r-margin-top-[hash]-10\": {\n// property: \"marginTop\",\n// value: \"10px\",\n// identifier: \"r-margin-top-[hash]-10\",\n// rules: [{`.r-margin-top-[hash]-10: {'margin-top': '10px;`} }]\n// }}\n\n// 4. styleResolver - holds the reference of sheet object used to inject CSS. This exposes 2 functions.\n// - getTextContent => for ssr style injection\n// - insert => for inserting styles in style tag\n// If we somehow manage to use these functions, we won't need any extra workarounds for ssr initial style injection or CSS declaration order specifictity\n\n// Here issue is that it internally uses a cache to verify if a css rule is inserted using selector name (class name generated by RN web)\n// refer line number 121 in `react-native-web/dist/exports/StyleSheet/createOrdererdCSSStyleSheetfile`.\n// We can trick this hash id generator by adding a comment on top of our media query rule in this format. /* media-query + data-attr {} */ then it'll start using media-query + data-attr as cache key\n\nconst MEDIA_QUERY_STYLESHEET_GROUP = 3;\n\nexport const useResponsiveQuery = (\n queries?: UseResponsiveQueryParams\n): UseResponsiveQueryReturnType => {\n const responsiveQueryContext = React.useContext(ResponsiveQueryContext);\n const disableCSSMediaQueries =\n queries?.disableCSSMediaQueries ??\n responsiveQueryContext.disableCSSMediaQueries;\n\n // Only attaches listener if disableCSSMediaQueries is true\n const windowWidth = useDimensionsWithEnable({\n enable: disableCSSMediaQueries,\n }).width;\n\n const values = useStableMemo(() => {\n // Use the non-media query responsive styling\n if (disableCSSMediaQueries) {\n const getResponsiveStyles = getResponsiveStylesImpl(windowWidth);\n if (queries) {\n const { styles } = getResponsiveStyles(queries);\n return { styles, getResponsiveStyles };\n } else {\n return { getResponsiveStyles };\n }\n } else {\n if (queries) {\n const { styles, dataSet } = getResponsiveStyles(queries);\n return { dataSet, styles, getResponsiveStyles };\n } else {\n return { getResponsiveStyles };\n }\n }\n }, [queries, windowWidth, disableCSSMediaQueries]);\n\n return values;\n};\n\nconst getDataAttribute = (queryRule: Query) => {\n if (\n typeof queryRule.minWidth === 'number' &&\n typeof queryRule.maxWidth === 'number'\n ) {\n return `min-width-${queryRule.minWidth}-max-width-${queryRule.maxWidth}`;\n } else if (typeof queryRule.minWidth === 'number') {\n return `min-width-${queryRule.minWidth}`;\n } else if (typeof queryRule.maxWidth === 'number') {\n return `max-width-${queryRule.maxWidth}`;\n }\n\n return undefined;\n};\n\nconst getMediaQueryRule = (query: Query, newRule: string) => {\n if (\n typeof query.minWidth === 'number' &&\n typeof query.maxWidth === 'number'\n ) {\n return `@media only screen and (min-width: ${query.minWidth}px) and (max-width: ${query.maxWidth}px) { ${newRule} }`;\n } else if (typeof query.minWidth === 'number') {\n return `@media only screen and (min-width: ${query.minWidth}px) { ${newRule} }`;\n } else if (typeof query.maxWidth === 'number') {\n return `@media only screen and (max-width: ${query.maxWidth}px) { ${newRule} }`;\n }\n return undefined;\n};\n\nconst getResponsiveStyles = (\n queries: GetResponsiveStylesParams\n): GetResponsiveStylesReturnType => {\n const queryString = stableHash(queries.query);\n const queriesHash = hash(queryString);\n\n const styles = queries.initial\n ? [\n StyleSheet.create({ initial: StyleSheet.flatten(queries.initial) })\n .initial,\n ]\n : undefined;\n\n let dataSet: DataSet = {};\n\n if (queries.query) {\n queries.query.forEach((queryRule) => {\n const queryHash = queriesHash + hash(stableHash(queryRule));\n const dataAttribute = getDataAttribute(queryRule);\n\n if (dataAttribute) {\n const newIdentifier = `[data-${dataAttribute}$=\"${queryHash}\"]`;\n dataSet[dataAttribute] = queryHash;\n\n let mediaRules = '';\n\n const flattenQueryStyle = StyleSheet.flatten(queryRule.style);\n const newStyle = createCompileableStyle(i18nStyle(flattenQueryStyle));\n const results = atomic(newStyle);\n\n Object.keys(results).forEach((key) => {\n const oldIdentifier = results[key].identifier;\n\n if (process.env.NODE_ENV !== 'production') {\n dataSet[dataAttribute] =\n oldIdentifier + ' ' + dataSet[dataAttribute];\n }\n\n results[key].rules.forEach((oldRule: string) => {\n // Rule returned by atomic has css selectors, so we'll replace it with data-attr selector\n const newRule = oldRule.replace('.' + oldIdentifier, newIdentifier);\n mediaRules += newRule;\n });\n });\n\n if (mediaRules) {\n const mediaQueryRule = getMediaQueryRule(queryRule, mediaRules);\n\n // Here by prepending the /*${queryHash}{}*/ comment, we're kind of tricking the regex used by rn-web to verify if a rule is inserted or not.\n // Looks safe to me, just need to keep a check if there are any implementation changes in createStyleSheet file in rn-web in future.\n // Second argument defines the order of the insertion. DataSet and class selectors have same CSS specificity so we need to make sure that media rules have higher precedence. Max precendence in RN web is around 2.2 so 3 ensures styles will be appended later\n styleResolver.sheet.insert(\n `/*${queryHash}{}*/${mediaQueryRule}`,\n MEDIA_QUERY_STYLESHEET_GROUP\n );\n }\n }\n });\n }\n\n return { styles, dataSet };\n};\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { OverlayContainer } from '@react-native-aria/overlays';\nimport React from 'react';\nimport { Platform, ViewStyle } from 'react-native';\nimport { Modal } from 'react-native';\nimport { useKeyboardDismissable } from '../../../hooks';\nimport { ExitAnimationContext } from './ExitAnimationContext';\n\nexport interface IOverlayProps {\n isOpen?: boolean;\n children?: any;\n // We use RN modal on android if needed as it supports shifting accessiblity focus to the opened view. IOS automatically shifts focus if an absolutely placed view appears in front.\n useRNModalOnAndroid?: boolean;\n onRequestClose?: (() => any) | undefined;\n isKeyboardDismissable?: boolean;\n animationPreset?: 'fade' | 'slide' | 'none';\n style?: ViewStyle;\n unmountOnExit?: boolean;\n}\n\nexport function Overlay({\n children,\n isOpen,\n useRNModalOnAndroid = false,\n isKeyboardDismissable = true,\n //@ts-ignore\n animationPreset = 'fade',\n onRequestClose,\n style,\n unmountOnExit,\n}: IOverlayProps) {\n const [exited, setExited] = React.useState(!isOpen);\n\n useKeyboardDismissable({\n enabled: isOpen && isKeyboardDismissable,\n callback: onRequestClose ? onRequestClose : () => {},\n });\n const styleObj = { ...style };\n if (animationPreset === 'slide') {\n styleObj.overflow = 'hidden';\n styleObj.display = 'flex';\n } else {\n styleObj.display = exited && !isOpen ? 'none' : 'flex';\n }\n\n if (unmountOnExit && !isOpen && exited) {\n return null;\n }\n\n if (Platform.OS === 'android' && useRNModalOnAndroid) {\n return (\n \n \n {children}\n \n \n );\n }\n\n return (\n //@ts-ignore\n \n \n {children}\n \n \n );\n}\n","import React from 'react';\nimport { useEffect } from 'react';\nimport { BackHandler } from 'react-native';\n\ntype IParams = {\n enabled?: boolean;\n callback: () => any;\n};\n\nlet keyboardDismissHandlers: Array<() => any> = [];\nexport const keyboardDismissHandlerManager = {\n push: (handler: () => any) => {\n keyboardDismissHandlers.push(handler);\n return () => {\n keyboardDismissHandlers = keyboardDismissHandlers.filter(\n (h) => h !== handler\n );\n };\n },\n length: () => keyboardDismissHandlers.length,\n pop: () => {\n return keyboardDismissHandlers.pop();\n },\n};\n\n/**\n * Handles attaching callback for Escape key listener on web and Back button listener on Android\n */\nexport const useKeyboardDismissable = ({ enabled, callback }: IParams) => {\n React.useEffect(() => {\n let cleanupFn = () => {};\n if (enabled) {\n cleanupFn = keyboardDismissHandlerManager.push(callback);\n } else {\n cleanupFn();\n }\n return () => {\n cleanupFn();\n };\n }, [enabled, callback]);\n\n useBackHandler({ enabled, callback });\n};\n\nexport function useBackHandler({ enabled, callback }: IParams) {\n useEffect(() => {\n let backHandler = () => {\n callback();\n return true;\n };\n if (enabled) {\n BackHandler.addEventListener('hardwareBackPress', backHandler);\n } else {\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', backHandler);\n }, [enabled, callback]);\n}\n","import React from 'react';\nimport { createIcon } from '../createIcon';\nimport { Path } from '../nbSvg';\n\nexport const CloseIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M12 9.77778L4.22222 2L2 4.22222L9.77778 12L2 19.7778L4.22222 22L12 14.2222L19.7778 22L22 19.7778L14.2222 12L22 4.22222L19.7778 2L12 9.77778Z',\n});\n\nexport const SmallCloseIcon = createIcon({\n viewBox: '0 0 16 16',\n path: (\n \n ),\n});\n","export const combineContextAndProps = (context: any, props: any) => {\n return {\n ...context,\n ...props,\n };\n};\n","import React from 'react';\nimport { usePropsWithComponentTheme } from '../hooks/useThemeProps/usePropsWithComponentTheme';\nimport type { ComponentTheme } from '../theme';\nimport type { FactoryComponentProps } from './types';\nimport { makeStyledComponent } from '../utils/styled';\n\nexport default function Factory

(\n Component: React.ComponentType

,\n componentTheme?: ComponentTheme\n) {\n return React.forwardRef(\n ({ children, ...props }: P & FactoryComponentProps, ref: any) => {\n const StyledComponent = makeStyledComponent(Component);\n const calculatedProps = usePropsWithComponentTheme(\n componentTheme ?? {},\n props\n );\n return (\n \n {children}\n \n );\n }\n );\n}\n","import { usePropsResolutionWithComponentTheme } from './usePropsResolution';\nimport type { ComponentTheme } from '../../theme';\n\nexport function usePropsWithComponentTheme(\n localTheme: ComponentTheme,\n propsReceived: any\n) {\n return usePropsResolutionWithComponentTheme(localTheme, propsReceived);\n}\n","import React, { memo, forwardRef } from 'react';\nimport { useToken, usePropsResolution } from '../../../hooks';\nimport type { IIconProps } from './types';\nimport SVGIcon from './SVGIcon';\nimport { Factory } from '../../../factory';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Icon = ({ as, ...props }: IIconProps, ref?: any) => {\n const { size, ...resolvedProps } = usePropsResolution('Icon', props);\n const tokenizedFontSize = useToken('space', size);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n if (!as) {\n return ;\n }\n const isJSX = React.isValidElement(as);\n const StyledAs = Factory(\n isJSX\n ? (resolvedProps) =>\n React.cloneElement(as, {\n ...resolvedProps,\n //@ts-ignore\n ...as.props,\n })\n : as\n );\n\n return (\n \n );\n};\n\nexport default memo(forwardRef(Icon));\n","import * as React from 'react';\nimport { Dimensions, StyleSheet, ViewProps } from 'react-native';\nimport { NativeSafeAreaProvider } from './NativeSafeAreaProvider';\nimport type {\n EdgeInsets,\n InsetChangedEvent,\n Metrics,\n Rect,\n} from './SafeArea.types';\n\nconst isDev = process.env.NODE_ENV !== 'production';\n\nexport const SafeAreaInsetsContext = React.createContext(\n null,\n);\nif (isDev) {\n SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n}\n\nexport const SafeAreaFrameContext = React.createContext(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n}\n\nexport interface SafeAreaProviderProps extends ViewProps {\n children?: React.ReactNode;\n initialMetrics?: Metrics | null;\n /**\n * @deprecated\n */\n initialSafeAreaInsets?: EdgeInsets | null;\n}\n\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n ...others\n}: SafeAreaProviderProps) {\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\nconst NO_INSETS_ERROR =\n 'No safe area value available. Make sure you are rendering `` at the top of your app.';\n\nexport function useSafeAreaInsets(): EdgeInsets {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return safeArea;\n}\n\nexport function useSafeAreaFrame(): Rect {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\n\nexport type WithSafeAreaInsetsProps = {\n insets: EdgeInsets;\n};\n\nexport function withSafeAreaInsets(\n WrappedComponent: React.ComponentType,\n): React.ForwardRefExoticComponent<\n React.PropsWithoutRef & React.RefAttributes\n> {\n return React.forwardRef((props: T, ref: React.Ref) => (\n \n {(insets) => {\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return ;\n }}\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 { createIcon } from '../createIcon';\n\nexport const CheckIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M8.53115 15.1856L3.96198 10.744L2 12.6512L8.53115 19L22 5.9072L20.038 4L8.53115 15.1856Z',\n});\n\nexport const CheckCircleIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M12 24C18.6274 24 24 18.6274 24 12C24 5.37258 18.6274 0 12 0C5.37258 0 0 5.37258 0 12C0 18.6274 5.37258 24 12 24ZM7.17719 11.2464L9.91869 13.9114L16.8228 7.2L18 8.34432L9.91869 16.2L6 12.3907L7.17719 11.2464Z',\n});\n","import React, { forwardRef } from 'react';\nimport { ScrollView as RNScrollView } from 'react-native';\nimport {\n usePropsResolution,\n useStyledSystemPropsResolver,\n} from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IScrollViewProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledScrollView: any = makeStyledComponent(RNScrollView);\n\nexport const ScrollView = forwardRef((props: IScrollViewProps, ref: any) => {\n const {\n _contentContainerStyle,\n contentContainerStyle,\n ...resolvedProps\n } = usePropsResolution('ScrollView', props, {});\n const resolved_ContentContainerStyle = useStyledSystemPropsResolver(\n _contentContainerStyle || {}\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n );\n});\n","import React from 'react';\n\nexport function useControllableProp(prop: T | undefined, state: T) {\n const { current: isControlled } = React.useRef(prop !== undefined);\n const value = isControlled && typeof prop !== 'undefined' ? prop : state;\n return [isControlled, value] as const;\n}\n\nexport interface UseControllableStateProps {\n /**\n * The value to used in controlled mode\n */\n value?: T;\n /**\n * The initial value to be used, in uncontrolled mode\n */\n defaultValue?: T | (() => T);\n /**\n * The callback fired when the value changes\n */\n onChange?: (value: T) => void;\n /**\n * The component name (for warnings)\n */\n name?: string;\n}\n\n/**\n * React hook for using controlling component state.\n * @param props\n */\nexport function useControllableState(props: UseControllableStateProps) {\n const { value: valueProp, defaultValue, onChange } = props;\n\n const [valueState, setValue] = React.useState(defaultValue as T);\n const isControlled = valueProp !== undefined;\n\n const value = isControlled ? (valueProp as T) : valueState;\n\n const updateValue = React.useCallback(\n (next: any) => {\n const nextValue = typeof next === 'function' ? next(value) : next;\n if (!isControlled) {\n setValue(nextValue);\n }\n onChange && onChange(nextValue);\n },\n [isControlled, onChange, value]\n );\n\n return [value, updateValue] as [T, React.Dispatch>];\n}\n","import React from 'react';\nimport { useOverlayPosition } from '@react-native-aria/overlays';\nimport { StyleSheet, View, ViewStyle } from 'react-native';\nimport type {\n IPopperProps,\n IScrollContentStyle,\n IArrowStyles,\n IPopoverArrowProps,\n} from './types';\nimport { createContext } from '../../../utils';\nimport Box, { IBoxProps } from '../../primitives/Box';\n// import { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst defaultArrowHeight = 15;\nconst defaultArrowWidth = 15;\n\nconst getDiagonalLength = (height: number, width: number) => {\n return Math.pow(height * height + width * width, 0.5);\n};\n\ntype PopperContext = IPopperProps & {\n triggerRef: any;\n onClose: any;\n setOverlayRef?: (overlayRef: any) => void;\n};\n\nconst [PopperProvider, usePopperContext] = createContext(\n 'PopperContext'\n);\n\nconst Popper = (\n props: IPopperProps & {\n triggerRef: any;\n onClose: any;\n setOverlayRef?: (overlayRef: any) => void;\n }\n) => {\n return {props.children};\n};\n\nconst PopperContent = React.forwardRef(\n ({ children, style, ...rest }: IBoxProps & { isOpen: boolean }, ref: any) => {\n const {\n triggerRef,\n shouldFlip,\n crossOffset,\n offset,\n placement: placementProp,\n onClose,\n shouldOverlapWithTrigger,\n setOverlayRef,\n } = usePopperContext('PopperContent');\n const overlayRef = React.useRef(null);\n\n // const { top } = useSafeAreaInsets();\n const {\n overlayProps,\n rendered,\n arrowProps,\n placement,\n } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n shouldFlip: shouldFlip,\n crossOffset: crossOffset,\n isOpen: rest.isOpen,\n offset: offset,\n placement: placementProp as any,\n containerPadding: 0,\n onClose: onClose,\n shouldOverlapWithTrigger,\n });\n\n const restElements: React.ReactNode[] = [];\n let arrowElement: React.ReactElement | null = null;\n\n React.useEffect(() => {\n setOverlayRef && setOverlayRef(overlayRef);\n }, [overlayRef, setOverlayRef]);\n\n // Might have performance impact if there are a lot of siblings!\n // Shouldn't be an issue with popovers since it would have atmost 2. Arrow and Content.\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n // @ts-ignore\n child.type.displayName === 'PopperArrow'\n ) {\n arrowElement = React.cloneElement(child, {\n // @ts-ignore\n arrowProps,\n actualPlacement: placement,\n });\n } else {\n restElements.push(child);\n }\n });\n\n let arrowHeight = 0;\n let arrowWidth = 0;\n\n if (arrowElement) {\n arrowHeight = defaultArrowHeight;\n arrowWidth = defaultArrowWidth;\n\n //@ts-ignore\n if (arrowElement.props.height) {\n //@ts-ignore\n arrowHeight = arrowElement.props.height;\n }\n\n //@ts-ignore\n if (arrowElement.props.width) {\n //@ts-ignore\n arrowWidth = arrowElement.props.width;\n }\n }\n\n const containerStyle = React.useMemo(\n () =>\n getContainerStyle({\n placement,\n arrowHeight,\n arrowWidth,\n }),\n [arrowHeight, arrowWidth, placement]\n );\n\n const overlayStyle = React.useMemo(\n () =>\n StyleSheet.create({\n overlay: {\n ...overlayProps.style,\n // To handle translucent android StatusBar\n // marginTop: Platform.select({ android: top, default: 0 }),\n opacity: rendered ? 1 : 0,\n position: 'absolute',\n },\n }),\n [rendered, overlayProps.style]\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(rest)) {\n return null;\n }\n\n return (\n \n {arrowElement}\n \n {restElements}\n \n \n );\n }\n);\n\n// This is an internal implementation of PopoverArrow\nconst PopperArrow = React.forwardRef(\n (\n {\n height = defaultArrowHeight,\n width = defaultArrowWidth,\n\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n arrowProps,\n //@ts-ignore - Will be passed by React.cloneElement from PopperContent\n actualPlacement,\n style,\n borderColor = '#52525b',\n backgroundColor = 'black',\n ...rest\n }: IPopoverArrowProps & IBoxProps,\n ref: any\n ) => {\n const additionalStyles = React.useMemo(\n () => getArrowStyles({ placement: actualPlacement, height, width }),\n [actualPlacement, height, width]\n );\n\n const triangleStyle: ViewStyle = React.useMemo(\n () => ({\n position: 'absolute',\n width,\n height,\n }),\n [width, height]\n );\n\n const arrowStyles = React.useMemo(\n () => [arrowProps.style, triangleStyle, additionalStyles, style],\n [triangleStyle, additionalStyles, arrowProps.style, style]\n );\n\n return (\n \n );\n }\n);\n\nconst getArrowStyles = (props: IArrowStyles) => {\n const additionalStyles: any = {\n transform: [],\n };\n\n const diagonalLength = getDiagonalLength(\n defaultArrowHeight,\n defaultArrowHeight\n );\n\n if (props.placement === 'top' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.bottom = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderBottomWidth = 1;\n additionalStyles.borderRightWidth = 1;\n }\n\n if (props.placement === 'bottom' && props.width) {\n additionalStyles.transform.push({ translateX: -props.width / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.top = Math.ceil((diagonalLength - defaultArrowHeight) / 2);\n additionalStyles.borderTopWidth = 1;\n additionalStyles.borderLeftWidth = 1;\n }\n\n if (props.placement === 'left' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.right = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderTopWidth = 1;\n additionalStyles.borderRightWidth = 1;\n }\n\n if (props.placement === 'right' && props.height) {\n additionalStyles.transform.push({ translateY: -props.height / 2 });\n additionalStyles.transform.push({ rotate: '45deg' });\n additionalStyles.left = Math.ceil(\n (diagonalLength - defaultArrowHeight) / 2\n );\n additionalStyles.borderBottomWidth = 1;\n additionalStyles.borderLeftWidth = 1;\n }\n\n return additionalStyles;\n};\n\nconst getContainerStyle = ({ placement, arrowHeight }: IScrollContentStyle) => {\n const diagonalLength = getDiagonalLength(arrowHeight, arrowHeight) / 2;\n\n if (placement === 'top') {\n return { marginBottom: diagonalLength };\n }\n\n if (placement === 'bottom') {\n return { marginTop: diagonalLength };\n }\n\n if (placement === 'left') {\n return { marginRight: diagonalLength };\n }\n\n if (placement === 'right') {\n return { marginLeft: diagonalLength };\n }\n\n return {};\n};\n\nPopperArrow.displayName = 'PopperArrow';\nPopper.Content = PopperContent;\nPopper.Arrow = PopperArrow;\n\nexport { Popper };\n","import { theme as defaultTheme, Theme } from './../theme';\nimport mergeWith from 'lodash.mergewith';\n\nfunction isFunction(value: any): boolean {\n return typeof value === 'function';\n}\n\ntype ThemeUtil = Theme | (Record & {});\n\nexport function extendTheme(\n overrides: T,\n ...restOverrides: T[]\n) {\n function customizer(source: any, override: any) {\n if (isFunction(source)) {\n return (...args: any[]) => {\n const sourceValue = source(...args);\n const overrideValue = isFunction(override)\n ? override(...args)\n : override;\n return mergeWith({}, sourceValue, overrideValue, customizer);\n };\n }\n return undefined;\n }\n\n const finalOverrides = [overrides, ...restOverrides].reduce(\n (prevValue, currentValue) => {\n return mergeWith({}, prevValue, currentValue, customizer);\n },\n defaultTheme\n );\n\n return finalOverrides as T & Theme;\n}\n","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport Box from '../../primitives/Box';\nimport type { ICenterProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Center = (props: ICenterProps, ref: any) => {\n const reslovedProps = usePropsResolution('Center', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(Center));\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {mergeProps} from '@react-aria/utils';\nimport React, {CSSProperties, HTMLAttributes, JSXElementConstructor, ReactNode, useMemo, useState} from 'react';\nimport {useFocus} from '@react-aria/interactions';\n\ninterface VisuallyHiddenProps extends HTMLAttributes {\n /** The content to visually hide. */\n children?: ReactNode,\n\n /**\n * The element type for the container.\n * @default 'div'\n */\n elementType?: string | JSXElementConstructor,\n\n /** Whether the element should become visible on focus, for example skip links. */\n isFocusable?: boolean\n}\n\nconst styles: CSSProperties = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: 1,\n margin: '0 -1px -1px 0',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: 1,\n whiteSpace: 'nowrap'\n};\n\ninterface VisuallyHiddenAria {\n visuallyHiddenProps: HTMLAttributes\n}\n\n/**\n * Provides props for an element that hides its children visually\n * but keeps content visible to assistive technology.\n */\nexport function useVisuallyHidden(props: VisuallyHiddenProps = {}): VisuallyHiddenAria {\n let {\n style,\n isFocusable\n } = props;\n\n let [isFocused, setFocused] = useState(false);\n let {focusProps} = useFocus({\n isDisabled: !isFocusable,\n onFocusChange: setFocused\n });\n\n // If focused, don't hide the element.\n let combinedStyles = useMemo(() => {\n if (isFocused) {\n return style;\n } else if (style) {\n return {...styles, ...style};\n } else {\n return styles;\n }\n }, [isFocused]);\n\n return {\n visuallyHiddenProps: {\n ...focusProps,\n style: combinedStyles\n }\n };\n}\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible\n * to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children, elementType: Element = 'div', isFocusable, style, ...otherProps} = props;\n let {visuallyHiddenProps} = useVisuallyHidden(props);\n\n return (\n \n {children}\n \n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupProps} from '@react-types/checkbox';\nimport {useControlledState} from '@react-stately/utils';\n\nexport interface CheckboxGroupState {\n /** Current selected values. */\n readonly value: readonly string[],\n\n /** Whether the checkbox group is disabled. */\n readonly isDisabled: boolean,\n\n /** Whether the checkbox group is read only. */\n readonly isReadOnly: boolean,\n\n /** Returns whether the given value is selected. */\n isSelected(value: string): boolean,\n\n /** Sets the selected values. */\n setValue(value: string[]): void,\n\n /** Adds a value to the set of selected values. */\n addValue(value: string): void,\n\n /** Removes a value from the set of selected values. */\n removeValue(value: string): void,\n\n /** Toggles a value in the set of selected values. */\n toggleValue(value: string): void\n}\n\n/**\n * Provides state management for a checkbox group component. Provides a name for the group,\n * and manages selection and focus state.\n */\nexport function useCheckboxGroupState(props: CheckboxGroupProps = {}): CheckboxGroupState {\n let [selectedValues, setValue] = useControlledState(props.value, props.defaultValue || [], props.onChange);\n\n const state: CheckboxGroupState = {\n value: selectedValues,\n setValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n\n setValue(value);\n },\n isDisabled: props.isDisabled || false,\n isReadOnly: props.isReadOnly || false,\n isSelected(value) {\n return selectedValues.includes(value);\n },\n addValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (!selectedValues.includes(value)) {\n setValue(selectedValues.concat(value));\n }\n },\n removeValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n }\n },\n toggleValue(value) {\n if (props.isReadOnly || props.isDisabled) {\n return;\n }\n if (selectedValues.includes(value)) {\n setValue(selectedValues.filter(existingValue => existingValue !== value));\n } else {\n setValue(selectedValues.concat(value));\n }\n }\n };\n\n return state;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaToggleProps} from '@react-types/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {InputHTMLAttributes, RefObject} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useFocusable} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\n\nexport interface ToggleAria {\n /**\n * Props to be spread on the input element.\n */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Handles interactions for toggle elements, e.g. Checkboxes and Switches.\n */\nexport function useToggle(props: AriaToggleProps, state: ToggleState, ref: RefObject): ToggleAria {\n let {\n isDisabled = false,\n isRequired,\n isReadOnly,\n value,\n name,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n validationState = 'valid'\n } = props;\n\n let onChange = (e) => {\n // since we spread props on label, onChange will end up there as well as in here.\n // so we have to stop propagation at the lowest level that we care about\n e.stopPropagation();\n state.setSelected(e.target.checked);\n };\n\n let hasChildren = children != null;\n let hasAriaLabel = ariaLabel != null || ariaLabelledby != null;\n if (!hasChildren && !hasAriaLabel) {\n console.warn('If you do not provide children, you must specify an aria-label for accessibility');\n }\n\n // This handles focusing the input on pointer down, which Safari does not do by default.\n let {pressProps} = usePress({\n isDisabled\n });\n\n let {focusableProps} = useFocusable(props, ref);\n let interactions = mergeProps(pressProps, focusableProps);\n let domProps = filterDOMProps(props, {labelable: true});\n\n return {\n inputProps: mergeProps(domProps, {\n 'aria-invalid': validationState === 'invalid' || undefined,\n 'aria-errormessage': props['aria-errormessage'],\n 'aria-controls': props['aria-controls'],\n 'aria-readonly': isReadOnly || undefined,\n 'aria-required': isRequired || undefined,\n onChange,\n disabled: isDisabled,\n value,\n name,\n type: 'checkbox',\n ...interactions\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxProps} from '@react-types/checkbox';\nimport {InputHTMLAttributes, RefObject, useEffect} from 'react';\nimport {ToggleState} from '@react-stately/toggle';\nimport {useToggle} from '@react-aria/toggle';\n\nexport interface CheckboxAria {\n /** Props for the input element. */\n inputProps: InputHTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox component.\n * Checkboxes allow users to select multiple items from a list of individual items, or\n * to mark one individual item as selected.\n * @param props - Props for the checkbox.\n * @param state - State for the checkbox, as returned by `useToggleState`.\n * @param inputRef - A ref for the HTML input element.\n */\nexport function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputRef: RefObject): CheckboxAria {\n let {inputProps} = useToggle(props, state, inputRef);\n let {isSelected} = state;\n\n let {isIndeterminate} = props;\n useEffect(() => {\n // indeterminate is a property, but it can only be set via javascript\n // https://css-tricks.com/indeterminate-checkboxes/\n if (inputRef.current) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n });\n\n return {\n inputProps: {\n ...inputProps,\n checked: isSelected,\n 'aria-checked': isIndeterminate ? 'mixed' : isSelected\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CheckboxGroupState} from '@react-stately/checkbox';\n\nexport const checkboxGroupNames = new WeakMap();\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaCheckboxGroupProps} from '@react-types/checkbox';\nimport {checkboxGroupNames} from './utils';\nimport {CheckboxGroupState} from '@react-stately/checkbox';\nimport {filterDOMProps, mergeProps} from '@react-aria/utils';\nimport {HTMLAttributes} from 'react';\nimport {useLabel} from '@react-aria/label';\n\ninterface CheckboxGroupAria {\n /** Props for the checkbox group wrapper element. */\n groupProps: HTMLAttributes,\n /** Props for the checkbox group's visible label (if any). */\n labelProps: HTMLAttributes\n}\n\n/**\n * Provides the behavior and accessibility implementation for a checkbox group component.\n * Checkbox groups allow users to select multiple items from a list of options.\n * @param props - Props for the checkbox group.\n * @param state - State for the checkbox group, as returned by `useCheckboxGroupState`.\n */\nexport function useCheckboxGroup(props: AriaCheckboxGroupProps, state: CheckboxGroupState): CheckboxGroupAria {\n let {isDisabled, name} = props;\n\n let {labelProps, fieldProps} = useLabel({\n ...props,\n // Checkbox group is not an HTML input element so it\n // shouldn't be labeled by a

\n {/* Interaction Box */}\n \n {/* Checkbox */}\n
\n {/* {iconResolver()} */}\n \n
\n
\n {/* Label */}\n {/* {resolvedProps?.children} */}\n {wrapStringChild(resolvedProps?.children, _text)}\n \n );\n }, [\n _icon,\n _stack,\n _text,\n _interactionBox,\n icon,\n isChecked,\n nonLayoutProps,\n layoutProps,\n resolvedProps?.children,\n ]);\n\n const mergedWrapperRef = React.useMemo(\n () => mergeRefs([wrapperRef, _ref]),\n [wrapperRef]\n );\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(resolvedProps)) {\n return null;\n }\n\n return (\n \n \n {/* */}\n \n \n\n {component}\n \n );\n }\n);\n\nexport default memo(forwardRef(Checkbox));\n","import { Asset } from 'expo-asset';\n\n// @needsAudit\n/**\n * The different types of assets you can provide to the [`loadAsync()`](#loadAsync) function.\n * A font source can be a URI, a module ID, or an Expo Asset.\n */\nexport type FontSource = string | number | Asset | FontResource;\n\n// @needsAudit\n/**\n * An object used to dictate the resource that is loaded into the provided font namespace when used\n * with [`loadAsync`](#loadasync).\n */\nexport type FontResource = {\n uri: string | number;\n /**\n * _Web Only._ Sets the [`font-display`](#fontdisplay) property for a given typeface in the\n * browser.\n */\n display?: FontDisplay;\n};\n\n// @needsAudit\n/**\n * __Web Only__. Sets the [font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display)\n * for a given typeface. The default font value on web is `FontDisplay.AUTO`.\n * Even though setting the `fontDisplay` does nothing on native platforms, the default behavior\n * emulates `FontDisplay.SWAP` on flagship devices like iOS, Samsung, Pixel, etc. Default\n * functionality varies on One Plus devices. In the browser this value is set in the generated\n * `@font-face` CSS block and not as a style property meaning you cannot dynamically change this\n * value based on the element it's used in.\n */\nexport enum FontDisplay {\n /**\n * __(Default)__ The font display strategy is defined by the user agent or platform.\n * This generally defaults to the text being invisible until the font is loaded.\n * Good for buttons or banners that require a specific treatment.\n */\n AUTO = 'auto',\n /**\n * Fallback text is rendered immediately with a default font while the desired font is loaded.\n * This is good for making the content appear to load instantly and is usually preferred.\n */\n SWAP = 'swap',\n /**\n * The text will be invisible until the font has loaded. If the font fails to load then nothing\n * will appear - it's best to turn this off when debugging missing text.\n */\n BLOCK = 'block',\n /**\n * Splits the behavior between `SWAP` and `BLOCK`.\n * There will be a [100ms timeout](https://developers.google.com/web/updates/2016/02/font-display?hl=en)\n * where the text with a custom font is invisible, after that the text will either swap to the\n * styled text or it'll show the unstyled text and continue to load the custom font. This is good\n * for buttons that need a custom font but should also be quickly available to screen-readers.\n */\n FALLBACK = 'fallback',\n /**\n * This works almost identically to `FALLBACK`, the only difference is that the browser will\n * decide to load the font based on slow connection speed or critical resource demand.\n */\n OPTIONAL = 'optional',\n}\n\n// @needsAudit\n/**\n * Object used to query fonts for unloading.\n */\nexport type UnloadFontOptions = Pick;\n","import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nexport default {\n get name(): string {\n return 'ExpoFontLoader';\n },\n\n async unloadAllAsync(): Promise {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n async loadAsync(fontFamilyName: string, resource: FontResource): Promise {\n if (!Platform.isDOMAvailable) {\n return;\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = _createWebStyle(fontFamilyName, resource);\n document.head!.appendChild(style);\n\n if (!isFontLoadingListenerSupported()) {\n return;\n }\n\n return new FontObserver(fontFamilyName, { display: resource.display }).load();\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = `@font-face {\n font-family: ${fontFamily};\n src: url(${resource.uri});\n font-display: ${resource.display || FontDisplay.AUTO};\n }`;\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n","import { Asset } from 'expo-asset';\nimport { CodedError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay } from './Font';\nimport { FontResource, FontSource } from './Font.types';\n\nfunction uriFromFontSource(asset: any): string | null {\n if (typeof asset === 'string') {\n return asset || null;\n } else if (typeof asset === 'object') {\n return asset.uri || asset.localUri || null;\n }\n return null;\n}\n\nfunction displayFromFontSource(asset: any): FontDisplay | undefined {\n return asset.display || FontDisplay.AUTO;\n}\n\nexport function fontFamilyNeedsScoping(name: string): boolean {\n return false;\n}\n\nexport function getAssetForSource(source: FontSource): Asset | FontResource {\n const uri = uriFromFontSource(source);\n const display = displayFromFontSource(source);\n\n if (!uri || typeof uri !== 'string') {\n throwInvalidSourceError(uri);\n }\n\n return {\n uri: uri!,\n display,\n };\n}\n\nfunction throwInvalidSourceError(source: any): never {\n let type: string = typeof source;\n if (type === 'object') type = JSON.stringify(source, null, 2);\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Expected font asset of type \\`string | FontResource | Asset\\` (number is not supported on web) instead got: ${type}`\n );\n}\n\nexport async function loadSingleFontAsync(\n name: string,\n input: Asset | FontResource\n): Promise {\n if (typeof input !== 'object' || typeof input.uri !== 'string' || (input as any).downloadAsync) {\n throwInvalidSourceError(input);\n }\n\n await ExpoFontLoader.loadAsync(name, input);\n}\n\nexport function getNativeFontName(name: string): string {\n return name;\n}\n","import { CodedError, UnavailabilityError } from 'expo-modules-core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n getAssetForSource,\n loadSingleFontAsync,\n fontFamilyNeedsScoping,\n getNativeFontName,\n} from './FontLoader';\n\nconst loaded: { [name: string]: boolean } = {};\nconst loadPromises: { [name: string]: Promise } = {};\n\n// @needsAudit\n// note(brentvatne): at some point we may want to warn if this is called outside of a managed app.\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n *\n * @param fontFamily Name of font to process.\n * @returns Returns a name processed for use with the [current workflow](https://docs.expo.dev/introduction/managed-vs-bare/).\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n return fontFamily;\n }\n\n if (!isLoaded(fontFamily)) {\n if (__DEV__) {\n if (isLoading(fontFamily)) {\n console.error(\n `You started loading the font \"${fontFamily}\", but used it before it finished loading. You need to wait for Font.loadAsync to complete before using the font.`\n );\n } else {\n console.error(\n `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through Font.loadAsync.\\n\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\n- If this is a custom font, be sure to load it with Font.loadAsync.`\n );\n }\n }\n\n return 'System';\n }\n\n return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @return Returns `true` if the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n return fontFamily in loaded;\n}\n\n// @needsAudit\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded.\n *\n * @param fontFamily The name used to load the `FontResource`.\n * @returns Returns `true` if the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n return fontFamily in loadPromises;\n}\n\n// @needsAudit\n/**\n * Highly efficient method for loading fonts from static or remote resources which can then be used\n * with the platform's native text elements. In the browser this generates a `@font-face` block in\n * a shared style sheet for fonts. No CSS is needed to use this method.\n *\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style)\n * style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n *\n * @return Returns a promise that fulfils when the font has loaded. Often you may want to wrap the\n * method in a `try/catch/finally` to ensure the app continues if the font fails to load.\n */\nexport async function loadAsync(\n fontFamilyOrFontMap: string | Record,\n source?: FontSource\n): Promise {\n if (typeof fontFamilyOrFontMap === 'object') {\n if (source) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => loadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n fontFamily: string,\n source?: FontSource | null\n): Promise {\n if (!source) {\n throw new CodedError(\n `ERR_FONT_SOURCE`,\n `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n );\n }\n\n if (loaded[fontFamily]) {\n return;\n }\n\n if (loadPromises.hasOwnProperty(fontFamily)) {\n return loadPromises[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const asset = getAssetForSource(source);\n loadPromises[fontFamily] = (async () => {\n try {\n await loadSingleFontAsync(fontFamily, asset);\n loaded[fontFamily] = true;\n } finally {\n delete loadPromises[fontFamily];\n }\n })();\n\n await loadPromises[fontFamily];\n}\n\n// @needsAudit\n/**\n * Unloads all the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise {\n if (!ExpoFontLoader.unloadAllAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n }\n\n if (Object.keys(loadPromises).length) {\n throw new CodedError(\n `ERR_UNLOAD`,\n `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n );\n }\n\n for (const fontFamily of Object.keys(loaded)) {\n delete loaded[fontFamily];\n }\n\n await ExpoFontLoader.unloadAllAsync();\n}\n\n// @needsAudit\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap The name or names of the custom fonts that will be unloaded.\n * @param options When `fontFamilyOrFontMap` is a string, this should be the font source used to load\n * the custom font originally.\n */\nexport async function unloadAsync(\n fontFamilyOrFontMap: string | Record,\n options?: UnloadFontOptions\n): Promise {\n if (!ExpoFontLoader.unloadAsync) {\n throw new UnavailabilityError('expo-font', 'unloadAsync');\n }\n if (typeof fontFamilyOrFontMap === 'object') {\n if (options) {\n throw new CodedError(\n `ERR_FONT_API`,\n `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n );\n }\n const fontMap = fontFamilyOrFontMap;\n const names = Object.keys(fontMap);\n await Promise.all(names.map((name) => unloadFontInNamespaceAsync(name, fontMap[name])));\n return;\n }\n\n return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n fontFamily: string,\n options?: UnloadFontOptions | null\n): Promise {\n if (!loaded[fontFamily]) {\n return;\n } else {\n delete loaded[fontFamily];\n }\n\n // Important: we want all callers that concurrently try to load the same font to await the same\n // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n // promise in the program, we need to create the promise synchronously without yielding the event\n // loop from this point.\n\n const nativeFontName = getNativeFontName(fontFamily);\n\n if (!nativeFontName) {\n throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n }\n\n await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n","import { Platform, NativeModules } from 'react-native';\n\nconst NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport default function ensureNativeModuleAvailable() {\n if (!NativeIconAPI) {\n if (Platform.OS === 'android') {\n throw new Error(\n 'RNVectorIconsModule not available, did you properly integrate the module? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n throw new Error(\n 'RNVectorIconsManager not available, did you add the library to your project and link with libRNVectorIcons.a? Try running `react-native link react-native-vector-icons` and recompiling.'\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport { StyleSheet, Text, TouchableHighlight, View } from 'react-native';\nimport { pick, omit } from './object-utils';\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'center',\n padding: 8,\n },\n touchable: {\n overflow: 'hidden',\n },\n icon: {\n marginRight: 10,\n },\n text: {\n fontWeight: '600',\n backgroundColor: 'transparent',\n },\n});\n\nconst IOS7_BLUE = '#007AFF';\n\nconst TEXT_PROP_NAMES = [\n 'ellipsizeMode',\n 'numberOfLines',\n 'textBreakStrategy',\n 'selectable',\n 'suppressHighlighting',\n 'allowFontScaling',\n 'adjustsFontSizeToFit',\n 'minimumFontScale',\n];\n\nconst TOUCHABLE_PROP_NAMES = [\n 'accessible',\n 'accessibilityLabel',\n 'accessibilityHint',\n 'accessibilityComponentType',\n 'accessibilityRole',\n 'accessibilityStates',\n 'accessibilityTraits',\n 'onFocus',\n 'onBlur',\n 'disabled',\n 'onPress',\n 'onPressIn',\n 'onPressOut',\n 'onLayout',\n 'onLongPress',\n 'nativeID',\n 'testID',\n 'delayPressIn',\n 'delayPressOut',\n 'delayLongPress',\n 'activeOpacity',\n 'underlayColor',\n 'selectionColor',\n 'onShowUnderlay',\n 'onHideUnderlay',\n 'hasTVPreferredFocus',\n 'tvParallaxProperties',\n];\n\nexport default function createIconButtonComponent(Icon) {\n return class IconButton extends PureComponent {\n static defaultProps = {\n backgroundColor: IOS7_BLUE,\n borderRadius: 5,\n color: 'white',\n size: 20,\n };\n\n render() {\n const { style, iconStyle, children, ...restProps } = this.props;\n\n const iconProps = pick(\n restProps,\n TEXT_PROP_NAMES,\n 'style',\n 'name',\n 'size',\n 'color'\n );\n const touchableProps = pick(restProps, TOUCHABLE_PROP_NAMES);\n const props = omit(\n restProps,\n Object.keys(iconProps),\n Object.keys(touchableProps),\n 'iconStyle',\n 'borderRadius',\n 'backgroundColor'\n );\n iconProps.style = iconStyle ? [styles.icon, iconStyle] : styles.icon;\n\n const colorStyle = pick(this.props, 'color');\n const blockStyle = pick(this.props, 'backgroundColor', 'borderRadius');\n\n return (\n \n \n \n {typeof children === 'string' ? (\n \n {children}\n \n ) : (\n children\n )}\n \n \n );\n }\n };\n}\n","import React, { PureComponent } from 'react';\nimport {\n NativeModules,\n Platform,\n PixelRatio,\n processColor,\n Text,\n} from 'react-native';\n\nimport ensureNativeModuleAvailable from './ensure-native-module-available';\nimport createIconSourceCache from './create-icon-source-cache';\nimport createIconButtonComponent from './icon-button';\n\nexport const NativeIconAPI =\n NativeModules.RNVectorIconsManager || NativeModules.RNVectorIconsModule;\n\nexport const DEFAULT_ICON_SIZE = 12;\nexport const DEFAULT_ICON_COLOR = 'black';\n\nexport default function createIconSet(\n glyphMap,\n fontFamily,\n fontFile,\n fontStyle\n) {\n // Android doesn't care about actual fontFamily name, it will only look in fonts folder.\n const fontBasename = fontFile\n ? fontFile.replace(/\\.(otf|ttf)$/, '')\n : fontFamily;\n\n const fontReference = Platform.select({\n windows: `/Assets/${fontFile}#${fontFamily}`,\n android: fontBasename,\n web: fontBasename,\n default: fontFamily,\n });\n\n class Icon extends PureComponent {\n root = null;\n\n static defaultProps = {\n size: DEFAULT_ICON_SIZE,\n allowFontScaling: false,\n };\n\n setNativeProps(nativeProps) {\n if (this.root) {\n this.root.setNativeProps(nativeProps);\n }\n }\n\n handleRef = ref => {\n this.root = ref;\n };\n\n render() {\n const { name, size, color, style, children, ...props } = this.props;\n\n let glyph = name ? glyphMap[name] || '?' : '';\n if (typeof glyph === 'number') {\n glyph = String.fromCodePoint(glyph);\n }\n\n const styleDefaults = {\n fontSize: size,\n color,\n };\n\n const styleOverrides = {\n fontFamily: fontReference,\n fontWeight: 'normal',\n fontStyle: 'normal',\n };\n\n props.style = [styleDefaults, style, styleOverrides, fontStyle || {}];\n props.ref = this.handleRef;\n\n return (\n \n {glyph}\n {children}\n \n );\n }\n }\n\n const imageSourceCache = createIconSourceCache();\n\n function resolveGlyph(name) {\n const glyph = glyphMap[name] || '?';\n if (typeof glyph === 'number') {\n return String.fromCodePoint(glyph);\n }\n return glyph;\n }\n\n function getImageSourceSync(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = NativeIconAPI.getImageForFontSync(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function getImageSource(\n name,\n size = DEFAULT_ICON_SIZE,\n color = DEFAULT_ICON_COLOR\n ) {\n ensureNativeModuleAvailable();\n\n const glyph = resolveGlyph(name);\n const processedColor = processColor(color);\n const cacheKey = `${glyph}:${size}:${processedColor}`;\n\n if (imageSourceCache.has(cacheKey)) {\n return imageSourceCache.get(cacheKey);\n }\n try {\n const imagePath = await NativeIconAPI.getImageForFont(\n fontReference,\n glyph,\n size,\n processedColor\n );\n const value = { uri: imagePath, scale: PixelRatio.get() };\n imageSourceCache.setValue(cacheKey, value);\n return value;\n } catch (error) {\n imageSourceCache.setError(cacheKey, error);\n throw error;\n }\n }\n\n async function loadFont(file = fontFile) {\n if (Platform.OS === 'ios') {\n ensureNativeModuleAvailable();\n if (!file) {\n throw new Error('Unable to load font, because no file was specified. ');\n }\n await NativeIconAPI.loadFontWithFileName(...file.split('.'));\n }\n }\n\n function hasIcon(name) {\n return Object.prototype.hasOwnProperty.call(glyphMap, name);\n }\n\n function getRawGlyphMap() {\n return glyphMap;\n }\n\n function getFontFamily() {\n return fontReference;\n }\n\n Icon.Button = createIconButtonComponent(Icon);\n Icon.getImageSource = getImageSource;\n Icon.getImageSourceSync = getImageSourceSync;\n Icon.loadFont = loadFont;\n Icon.hasIcon = hasIcon;\n Icon.getRawGlyphMap = getRawGlyphMap;\n Icon.getFontFamily = getFontFamily;\n\n return Icon;\n}\n","const TYPE_VALUE = 'value';\nconst TYPE_ERROR = 'error';\n\nexport default function createIconSourceCache() {\n const cache = new Map();\n\n const setValue = (key, value) =>\n cache.set(key, { type: TYPE_VALUE, data: value });\n\n const setError = (key, error) =>\n cache.set(key, { type: TYPE_ERROR, data: error });\n\n const has = key => cache.has(key);\n\n const get = key => {\n if (!cache.has(key)) {\n return undefined;\n }\n const { type, data } = cache.get(key);\n if (type === TYPE_ERROR) {\n throw data;\n }\n return data;\n };\n\n return { setValue, setError, has, get };\n}\n","import * as Font from \"expo-font\";\nimport React, { ComponentClass } from \"react\";\nimport {\n Text,\n TextProps,\n TouchableHighlightProps,\n ViewProps,\n OpaqueColorValue,\n TextStyle,\n ViewStyle,\n} from \"react-native\";\n\nimport createIconSet from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\nimport createIconButtonComponent from \"./vendor/react-native-vector-icons/lib/icon-button\";\n\nexport {\n DEFAULT_ICON_COLOR,\n DEFAULT_ICON_SIZE,\n} from \"./vendor/react-native-vector-icons/lib/create-icon-set\";\n\nexport interface IconProps extends TextProps {\n /**\n * Size of the icon, can also be passed as fontSize in the style object.\n *\n * @default 12\n */\n size?: number;\n\n /**\n * Name of the icon to show\n *\n * See Icon Explorer app\n * {@link https://expo.github.io/vector-icons/}\n */\n name: GLYPHS;\n\n /**\n * Color of the icon. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n */\n color?: string | OpaqueColorValue;\n}\n\nexport interface IconButtonProps\n extends IconProps,\n ViewProps,\n TouchableHighlightProps {\n /**\n * Text and icon color\n * Use iconStyle or nest a Text component if you need different colors.\n * Can be a string or OpaqueColorValue (returned from PlatformColor(..))\n *\n * @default 'white'\n */\n color?: string | OpaqueColorValue;\n\n /**\n * Border radius of the button\n * Set to 0 to disable.\n *\n * @default 5\n */\n borderRadius?: number;\n\n /**\n * Styles applied to the icon only\n * Good for setting margins or a different color.\n *\n * @default {marginRight: 10}\n */\n iconStyle?: TextStyle;\n\n /**\n * Style prop inherited from TextProps and TouchableWithoutFeedbackProperties\n * Only exist here so we can have ViewStyle or TextStyle\n *\n */\n style?: ViewStyle | TextStyle;\n\n /**\n * Background color of the button. Can be a string or OpaqueColorValue (returned from\n * PlatformColor(..))\n *\n * @default '#007AFF'\n */\n backgroundColor?: string | OpaqueColorValue;\n}\n\nexport type GlyphMap = { [K in G]: number | string };\n\nexport interface Icon {\n defaultProps: any;\n Button: ComponentClass>;\n glyphMap: GlyphMap;\n getRawGlyphMap: () => GlyphMap;\n getFontFamily: () => FN;\n loadFont: () => Promise;\n font: { [x: string]: any };\n new (props: IconProps): React.Component>;\n}\n\nexport default function (\n glyphMap: GlyphMap,\n fontName: FN,\n expoAssetId,\n fontStyle?: any\n): Icon {\n const font = { [fontName]: expoAssetId };\n const RNVIconComponent = createIconSet(glyphMap, fontName, null, fontStyle);\n\n return class Icon extends React.Component> {\n static defaultProps = RNVIconComponent.defaultProps;\n static Button = createIconButtonComponent(Icon);\n static glyphMap = glyphMap;\n static getRawGlyphMap = () => glyphMap;\n static getFontFamily = () => fontName;\n static loadFont = () => Font.loadAsync(font);\n static font = font;\n\n _mounted = false;\n _icon?: any;\n\n state = {\n fontIsLoaded: Font.isLoaded(fontName),\n };\n\n async componentDidMount() {\n this._mounted = true;\n if (!this.state.fontIsLoaded) {\n await Font.loadAsync(font);\n this._mounted && this.setState({ fontIsLoaded: true });\n }\n }\n\n componentWillUnmount() {\n this._mounted = false;\n }\n\n setNativeProps(props) {\n if (this._icon) {\n this._icon.setNativeProps(props);\n }\n }\n\n render() {\n if (__DEV__ && this.props.name && !(this.props.name in glyphMap)) {\n console.warn(\n `\"${this.props.name}\" is not a valid icon name for family \"${fontName}\"`\n );\n }\n\n if (!this.state.fontIsLoaded) {\n return ;\n }\n\n return (\n {\n this._icon = view;\n }}\n {...this.props}\n />\n );\n }\n };\n}\n","import createIconSet from './createIconSet';\nimport font from './vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf';\nimport glyphMap from './vendor/react-native-vector-icons/glyphmaps/MaterialCommunityIcons.json';\n\nexport default createIconSet(glyphMap, 'material-community', font);\n","import React from 'react';\n\nexport const ActionSheetContext = React.createContext({\n hideDragIndicator: false,\n});\n","import React, { memo, forwardRef } from 'react';\nimport { Modal } from '../../composites/Modal';\nimport type { IActionsheetProps } from './types';\nimport { usePropsResolution } from '../../../hooks';\nimport { ActionSheetContext } from './ActionSheetContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Actionsheet = (\n { children, hideDragIndicator = false, ...props }: IActionsheetProps,\n ref: any\n) => {\n const {\n isOpen,\n disableOverlay,\n onClose,\n ...resolvedProps\n } = usePropsResolution('Actionsheet', props);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n {children}\n \n \n );\n};\n\nexport default memo(forwardRef(Actionsheet));\n","import React, { memo, forwardRef } from 'react';\nimport { Pressable } from '../../primitives/Pressable';\nimport Box from '../../primitives/Box';\nimport { HStack } from '../../primitives/Stack';\nimport Spinner from '../../primitives/Spinner';\nimport { usePropsResolution } from '../../../hooks';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { IActionsheetItemProps } from './types';\n\nconst ActionsheetItem = (\n {\n //@ts-ignore\n children,\n startIcon,\n rightIcon,\n leftIcon,\n endIcon,\n spinner,\n isDisabled,\n isLoading,\n spinnerPlacement = 'start',\n ...props\n }: IActionsheetItemProps,\n ref: any\n) => {\n const {\n _text,\n _stack,\n _icon,\n _spinner,\n isLoadingText,\n ...resolvedProps\n } = usePropsResolution('ActionsheetItem', props, undefined, {\n cascadePseudoProps: true,\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n if (leftIcon) {\n startIcon = leftIcon;\n }\n if (rightIcon) {\n endIcon = rightIcon;\n }\n if (endIcon && React.isValidElement(endIcon)) {\n endIcon = React.Children.map(\n endIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-end-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n if (startIcon && React.isValidElement(startIcon)) {\n startIcon = React.Children.map(\n startIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-start-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n const spinnerElement = spinner ? (\n spinner\n ) : (\n \n );\n\n const boxChildren = (child: any) => {\n return child ? {child} : null;\n };\n\n return (\n \n \n {startIcon && !isLoading ? startIcon : null}\n {isLoading && spinnerPlacement === 'start' ? spinnerElement : null}\n {isLoading\n ? isLoadingText\n ? boxChildren(isLoadingText)\n : null\n : boxChildren(children)}\n\n {endIcon && !isLoading ? endIcon : null}\n {isLoading && spinnerPlacement === 'end' ? spinnerElement : null}\n \n \n );\n};\n\nexport default memo(forwardRef(ActionsheetItem));\n","import React, { memo, forwardRef } from 'react';\nimport { Modal } from '../../composites/Modal';\nimport type { IActionsheetContentProps } from './types';\nimport { usePropsResolution } from '../../../hooks';\nimport { Animated, PanResponder } from 'react-native';\nimport { ModalContext } from '../Modal/Context';\nimport Box from '../../primitives/Box';\nimport { ActionSheetContext } from './ActionSheetContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Content = memo(\n forwardRef(\n (\n {\n hideDragIndicator,\n children,\n handleClose,\n pan,\n sheetHeight,\n ...props\n }: any,\n ref: any\n ) => {\n const {\n _dragIndicator,\n _dragIndicatorWrapperOffSet,\n _dragIndicatorWrapper,\n ...resolvedProps\n } = usePropsResolution('ActionsheetContent', props);\n\n const panResponder = React.useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: (_evt, gestureState) => {\n return gestureState.dy > 15;\n },\n onPanResponderMove: (e, gestureState) => {\n if (gestureState.dy > 0) {\n Animated.event([null, { dy: pan.y }], {\n useNativeDriver: false,\n })(e, gestureState);\n }\n },\n onPanResponderRelease: (_e, gestureState) => {\n // If sheet is dragged 1/4th of it's height, close it\n if (sheetHeight.current / 4 - gestureState.dy < 0) {\n Animated.timing(pan, {\n toValue: { x: 0, y: sheetHeight.current },\n duration: 150,\n useNativeDriver: true,\n }).start(handleClose);\n\n setTimeout(() => {\n Animated.spring(pan, {\n toValue: { x: 0, y: 0 },\n overshootClamping: true,\n useNativeDriver: true,\n }).start();\n });\n } else {\n Animated.spring(pan, {\n toValue: { x: 0, y: 0 },\n overshootClamping: true,\n useNativeDriver: true,\n }).start();\n }\n },\n })\n ).current;\n\n return (\n <>\n {!hideDragIndicator ? (\n <>\n {/* To increase the draggable area */}\n \n \n ) : null}\n\n \n {!hideDragIndicator ? (\n <>\n {/* Hack. Fix later. Add -2 negative margin to remove the padding added by ActionSheetContent */}\n \n \n \n \n ) : null}\n\n {children}\n \n \n );\n }\n )\n);\nconst ActionsheetContent = (\n { children, ...props }: IActionsheetContentProps,\n ref?: any\n) => {\n // return null;\n const { handleClose } = React.useContext(ModalContext);\n const { hideDragIndicator } = React.useContext(ActionSheetContext);\n const pan = React.useRef(new Animated.ValueXY()).current;\n const sheetHeight = React.useRef(0);\n\n const handleCloseCallback = React.useCallback(handleClose, [\n ModalContext,\n handleClose,\n ]);\n\n // useEffect(() => {\n\n // }, [])\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n {\n const { height } = event.nativeEvent.layout;\n sheetHeight.current = height;\n }}\n pointerEvents=\"box-none\"\n >\n \n \n );\n};\n\nexport default memo(forwardRef(ActionsheetContent));\n","import { createIcon } from '../createIcon';\n\nexport const ChevronUpIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M20.2286 18L11.9973 9.62148L3.76862 17.9973L2 16.1971L12 6L22 16.1971L20.2286 18Z',\n});\n\nexport const ChevronDownIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M20.2286 6L11.9973 14.3785L3.76862 6.00268L2 7.80293L12 18L22 7.80293L20.2286 6Z',\n});\n\nexport const ChevronLeftIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M18 3.77141L9.62148 12.0027L17.9973 20.2314L16.1971 22L6 12L16.1971 2L18 3.77141Z',\n});\n\nexport const ChevronRightIcon = createIcon({\n viewBox: '0 0 24 24',\n d:\n 'M6 3.77141L14.3785 12.0027L6.00268 20.2314L7.80293 22L18 12L7.80293 2L6 3.77141Z',\n});\n","import React, { forwardRef } from 'react';\nimport { FlatList as RNFlatList } from 'react-native';\nimport {\n usePropsResolution,\n useStyledSystemPropsResolver,\n} from '../../../hooks';\nimport { makeStyledComponent } from '../../../utils/styled';\nimport type { IFlatListProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst StyledFlatList: any = makeStyledComponent(RNFlatList);\n\nconst FlatListComponent = (\n props: IFlatListProps,\n ref: any\n) => {\n const {\n _contentContainerStyle,\n contentContainerStyle,\n ...resolvedProps\n } = usePropsResolution('FlatList', props);\n const resolved_ContentContainerStyle = useStyledSystemPropsResolver(\n _contentContainerStyle || {}\n );\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n );\n};\n\nexport const FlatList = forwardRef(FlatListComponent) as (\n props: IFlatListProps,\n ref: any\n) => any;\n","import React, { forwardRef, memo } from 'react';\nimport type { ISelectProps } from './types';\nimport { Platform, Keyboard } from 'react-native';\nimport { Actionsheet } from '../../composites/Actionsheet';\nimport Box from '../Box';\nimport { Input } from '../Input';\nimport { useFocusRing } from '@react-native-aria/focus';\nimport { useControllableState } from '../../../hooks';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { useHover } from '@react-native-aria/interactions';\nimport { mergeRefs } from '../../../utils';\nimport { useFormControl } from '../../composites/FormControl';\nimport { ChevronDownIcon } from '../Icon/Icons';\nimport type { IButtonProps } from '../Button/types';\nimport { ScrollView } from '../../basic/ScrollView';\nimport { extractInObject, stylingProps } from '../../../theme/tools/utils';\nimport { FlatList } from '../../basic/FlatList';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport type { ISelectItemProps } from './types';\nimport { Pressable } from '../Pressable';\n\nexport const SelectContext = React.createContext({\n onValueChange: (() => {}) as any,\n selectedValue: null as any,\n _selectedItem: {} as IButtonProps,\n _item: {} as IButtonProps,\n});\n\nconst Select = (\n {\n isHovered: isHoveredProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n ...props\n }: ISelectProps,\n ref: any\n) => {\n const selectProps = useFormControl({\n isDisabled: props.isDisabled,\n nativeID: props.nativeID,\n });\n const flatListData: ISelectItemProps[] = [];\n\n const isDisabled = selectProps.disabled;\n const tempFix = '__NativebasePlaceholder__';\n const _ref = React.useRef(null);\n\n const [isOpen, setIsOpen] = React.useState(false);\n const [isFocused, setIsFocused] = React.useState(false);\n\n const { focusProps, isFocusVisible } = useFocusRing();\n const { hoverProps, isHovered } = useHover({ isDisabled }, _ref);\n\n const {\n onValueChange,\n selectedValue,\n children,\n dropdownIcon,\n dropdownCloseIcon,\n dropdownOpenIcon,\n placeholder,\n accessibilityLabel,\n defaultValue,\n _item,\n _selectedItem,\n onOpen,\n onClose,\n optimized,\n customDropdownIconProps,\n _actionSheetContent,\n _actionSheetBody,\n _webSelect,\n ...resolvedProps\n } = usePropsResolution(\n 'Select',\n props,\n {\n isDisabled,\n isHovered: isHoveredProp || isHovered,\n isFocused: isFocusedProp || isFocused,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n },\n undefined\n );\n\n const [value, setValue] = useControllableState({\n value: selectedValue,\n defaultValue,\n onChange: (newValue) => {\n onValueChange && onValueChange(newValue);\n setIsOpen(false);\n },\n });\n\n const itemsList: Array<{ label: string; value: string }> = React.Children.map(\n children ?? [],\n (child: any) => {\n return {\n label: child.props.label,\n value: child.props.value,\n };\n }\n );\n\n const selectedItemArray = itemsList.filter(\n (item: any) => item.value === value\n );\n\n const selectedItem =\n selectedItemArray && selectedItemArray.length ? selectedItemArray[0] : null;\n\n const contextValue = React.useMemo(() => {\n return {\n onValueChange: setValue,\n selectedValue: value,\n _selectedItem: _selectedItem ?? {},\n _item: _item ?? {},\n };\n }, [value, setValue, _selectedItem, _item]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n const rightIcon =\n isOpen && dropdownOpenIcon ? (\n dropdownOpenIcon\n ) : !isOpen && dropdownCloseIcon ? (\n dropdownCloseIcon\n ) : dropdownIcon ? (\n dropdownIcon\n ) : (\n \n );\n\n const handleClose = () => {\n setIsOpen(false);\n onClose && onClose();\n };\n\n if (optimized) {\n React.Children.map(children, (child: any) => {\n flatListData.push(child.props);\n });\n }\n\n const [layoutProps] = extractInObject(resolvedProps, [\n ...stylingProps.margin,\n ...stylingProps.flexbox,\n ...stylingProps.position,\n 'shadow',\n 'opacity',\n ]);\n\n const commonInput = (\n \n );\n\n return Platform.OS === 'web' ? (\n \n {/* */}\n {\n setValue(e.target.value);\n }}\n value={selectedItem === null ? tempFix : value}\n aria-label={placeholder}\n onFocus={() => {\n setIsFocused(true);\n onOpen && onOpen();\n }}\n onBlur={() => {\n setIsFocused(false);\n onClose && onClose();\n }}\n {..._webSelect}\n >\n \n {children}\n \n {/* */}\n {commonInput}\n \n ) : (\n <>\n {\n Keyboard.dismiss();\n setIsOpen(true);\n onOpen && onOpen();\n }}\n disabled={isDisabled}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n ref={mergeRefs([ref, _ref])}\n {...layoutProps}\n >\n {commonInput}\n \n \n \n {/* TODO: Replace ScrollVeiw with FlatList */}\n {optimized ? (\n index.toString()}\n renderItem={({ item }: any) => {\n const isSelected = selectedValue === item.value;\n return (\n {\n if (!isDisabled) {\n setValue(item.value);\n }\n }}\n accessibilityState={{ selected: isSelected }}\n {...item}\n {..._item}\n {...(isSelected && _selectedItem)}\n >\n {item.label}\n \n );\n }}\n />\n ) : (\n \n \n {children}\n \n \n )}\n \n \n \n );\n};\n\nexport default memo(forwardRef(Select));\n","import React, { forwardRef, memo } from 'react';\nimport type { ISelectItemProps } from './types';\nimport { Platform } from 'react-native';\nimport { Actionsheet } from '../../composites/Actionsheet';\nimport { SelectContext } from './Select';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const Item = (\n { isDisabled, label, value, ...props }: ISelectItemProps,\n ref?: any\n) => {\n const {\n onValueChange,\n selectedValue,\n _selectedItem,\n _item,\n } = React.useContext(SelectContext);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps({ ...props, isDisabled, label, value })) {\n return null;\n }\n if (Platform.OS !== 'web') {\n const isSelected = selectedValue === value;\n\n return (\n {\n if (!isDisabled) {\n onValueChange(value);\n }\n }}\n accessibilityState={{ selected: isSelected }}\n {..._item}\n {...(isSelected && _selectedItem)}\n {...props}\n >\n {label}\n \n );\n } else {\n return (\n \n );\n }\n};\n\nexport default memo(forwardRef(Item));\n","import React, { RefObject } from 'react';\n\nexport const PopoverContext = React.createContext({\n onClose: () => {},\n initialFocusRef: { current: null } as RefObject | undefined,\n finalFocusRef: { current: null } as RefObject | undefined,\n popoverContentId: undefined as string | undefined,\n headerId: undefined as string | undefined,\n bodyId: undefined as string | undefined,\n setHeaderMounted: (() => {}) as any,\n setBodyMounted: (() => {}) as any,\n headerMounted: false,\n bodyMounted: false,\n isOpen: false,\n});\n","import React, { forwardRef, memo } from 'react';\nimport { Popper } from '../Popper';\nimport type { IPopoverProps } from './types';\nimport { mergeRefs } from '../../../utils';\nimport { useControllableState } from '../../../hooks';\nimport { PopoverContext } from './PopoverContext';\nimport Box from '../../primitives/Box';\nimport Backdrop from '../Backdrop';\nimport { FocusScope } from '@react-native-aria/focus';\nimport { PresenceTransition } from '../Transitions';\nimport { StyleSheet } from 'react-native';\nimport { useId } from '@react-aria/utils';\nimport { Overlay } from '../../primitives/Overlay';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Popover = (\n {\n onOpen,\n trigger,\n onClose,\n isOpen: isOpenProp,\n children,\n defaultIsOpen,\n initialFocusRef,\n finalFocusRef,\n trapFocus = true,\n ...props\n }: IPopoverProps,\n ref: any\n) => {\n const triggerRef = React.useRef(null);\n const mergedRef = mergeRefs([triggerRef]);\n const [isOpen, setIsOpen] = useControllableState({\n value: isOpenProp,\n defaultValue: defaultIsOpen,\n onChange: (value) => {\n value ? onOpen && onOpen() : onClose && onClose();\n },\n });\n\n const [bodyMounted, setBodyMounted] = React.useState(false);\n const [headerMounted, setHeaderMounted] = React.useState(false);\n\n const popoverContentId = `${useId()}-content`;\n const headerId = `${popoverContentId}-header`;\n const bodyId = `${popoverContentId}-body`;\n\n const handleOpen = React.useCallback(() => {\n setIsOpen(true);\n }, [setIsOpen]);\n\n const updatedTrigger = () => {\n return trigger(\n {\n 'ref': mergedRef,\n 'onPress': handleOpen,\n 'aria-expanded': isOpen ? true : false,\n 'aria-controls': isOpen ? popoverContentId : undefined,\n 'aria-haspopup': true,\n },\n { open: isOpen }\n );\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {updatedTrigger()}\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nexport default memo(forwardRef(Popover));\n","import {\n useKeyboardDismissable,\n usePropsResolution,\n useToken,\n} from '../../../hooks';\nimport React from 'react';\nimport { Platform } from 'react-native';\nimport type { IPopoverContentProps } from './types';\nimport { Popper } from '../Popper';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const PopoverContent = React.forwardRef(\n (props: IPopoverContentProps, ref: any) => {\n const {\n onClose,\n initialFocusRef,\n finalFocusRef,\n popoverContentId,\n headerMounted,\n bodyMounted,\n bodyId,\n headerId,\n isOpen,\n } = React.useContext(PopoverContext);\n const resolvedProps = usePropsResolution('PopoverContent', props);\n\n const arrowDefaultColor =\n props.bgColor ??\n props.bg ??\n props.backgroundColor ??\n resolvedProps.backgroundColor;\n const color = useToken('colors', arrowDefaultColor);\n\n React.useEffect(() => {\n const finalFocusRefCurrentVal = finalFocusRef?.current;\n if (initialFocusRef && initialFocusRef.current) {\n initialFocusRef.current.focus();\n }\n\n return () => {\n if (finalFocusRefCurrentVal) {\n finalFocusRefCurrentVal.focus();\n }\n };\n }, [finalFocusRef, initialFocusRef]);\n\n useKeyboardDismissable({\n enabled: true,\n callback: onClose,\n });\n\n let arrowElement = null;\n const restChildren: any = [];\n React.Children.forEach(props.children, (child) => {\n if (child.type.displayName === 'PopperArrow') {\n arrowElement = React.cloneElement(child, {\n backgroundColor: child.props.color ?? color,\n });\n } else {\n restChildren.push(child);\n }\n });\n\n const accessibilityProps =\n Platform.OS === 'web'\n ? ({\n 'accessibilityRole': 'dialog',\n 'aria-labelledby': headerMounted ? headerId : undefined,\n 'aria-describedby': bodyMounted ? bodyId : undefined,\n } as any)\n : {};\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n return (\n \n {arrowElement}\n {restChildren}\n \n );\n }\n);\n\nPopoverContent.displayName = 'PopoverContent';\n","import { usePropsResolution } from '../../../hooks';\nimport React, { useContext, memo, forwardRef, useEffect } from 'react';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverBody = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverBody', props);\n const { setBodyMounted, bodyId } = useContext(PopoverContext);\n\n useEffect(() => {\n setBodyMounted(true);\n return () => {\n setBodyMounted(false);\n };\n }, [setBodyMounted]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverBody));\n","import React from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { Pressable } from '../../primitives/Pressable';\nimport { CloseIcon } from '../../primitives/Icon/Icons';\nimport { PopoverContext } from './PopoverContext';\nimport type { IButtonProps } from '../../primitives/Button';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\nimport {\n useHover,\n useFocus,\n useIsPressed,\n} from '../../primitives/Pressable/Pressable';\nimport { composeEventHandlers } from '../../../utils';\nimport { useFocusRing } from '@react-native-aria/focus';\n\nconst PopoverCloseButton = (props: IButtonProps, ref: any) => {\n const { onClose }: any = React.useContext(PopoverContext);\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n _icon,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n ...resolvedProps\n } = usePropsResolution('PopoverCloseButton', props, {\n isHovered,\n isPressed,\n isFocused,\n isFocusVisible,\n });\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default React.memo(React.forwardRef(PopoverCloseButton));\n","import React, { memo, forwardRef } from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverFooter = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverFooter', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverFooter));\n","import React, { memo, forwardRef, useEffect, useContext } from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { default as Box, IBoxProps } from '../../primitives/Box';\nimport { PopoverContext } from './PopoverContext';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverHeader = (props: IBoxProps, ref?: any) => {\n const resolvedProps = usePropsResolution('PopoverHeader', props);\n const { setHeaderMounted, headerId } = useContext(PopoverContext);\n\n useEffect(() => {\n setHeaderMounted(true);\n return () => {\n setHeaderMounted(false);\n };\n }, [setHeaderMounted]);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n};\n\nexport default memo(forwardRef(PopoverHeader));\n","import React from 'react';\nimport { usePropsResolution } from '../../../hooks';\nimport { Popper } from '../Popper';\nimport type { IBoxProps } from '../../primitives/Box';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst PopoverArrow = React.forwardRef((props: IBoxProps, ref: any) => {\n const resolvedProps = usePropsResolution('PopoverArrow', props);\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return ;\n});\n\nPopoverArrow.displayName = 'PopperArrow';\n\nexport default PopoverArrow;\n","import { useFocusManager } from '@react-aria/focus';\nimport { useId } from '@react-aria/utils';\nimport { AccessibilityRole, Platform } from 'react-native';\n\ntype IMenuTriggerProps = {\n handleOpen: () => void;\n isOpen: boolean;\n};\n\nexport const useMenuTrigger = ({ handleOpen, isOpen }: IMenuTriggerProps) => {\n const menuTriggerId = useId();\n return {\n 'onKeyDownCapture': (event: KeyboardEvent) => {\n if ([' ', 'Enter', 'ArrowUp', 'ArrowDown'].includes(event.key)) {\n event.preventDefault();\n handleOpen();\n }\n },\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen ? true : undefined,\n 'nativeID': menuTriggerId,\n };\n};\n\nexport const useMenu = () => {\n const focusManager = useFocusManager();\n const onKeyDown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n focusManager.focusNext({ wrap: true });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n focusManager.focusPrevious({ wrap: true });\n break;\n }\n }\n };\n\n return {\n onKeyDown,\n accessibilityRole: 'menu' as AccessibilityRole,\n };\n};\n\nexport const useMenuItem = ({\n textValue,\n ref,\n}: {\n textValue: string;\n ref: any;\n}) => {\n return {\n accessibilityRole: 'menuitem' as AccessibilityRole,\n dataSet: {\n nativebaseMenuItem: textValue,\n },\n onHoverIn: () => {\n if (ref.current && Platform.OS === 'web') ref.current.focus();\n },\n };\n};\n\nexport const useMenuOptionItem = ({\n isChecked,\n type,\n}: {\n isChecked: boolean;\n type: 'checkbox' | 'radio';\n}) => {\n return {\n accessibilityRole: ('menuitem' +\n (Platform.OS === 'web' ? type : '')) as AccessibilityRole,\n accessibilityState: {\n checked: isChecked,\n },\n accessibilityChecked: isChecked,\n };\n};\n\nconst ITEM_ATTR = 'data-nativebase-menu-item';\nconst getValue = (element: Element) => element.getAttribute(ITEM_ATTR) ?? '';\n\nexport const useMenuTypeahead = (props: any): any => {\n return {\n onKeyDown(event: KeyboardEvent) {\n if (props.onKeyDown) {\n props.onKeyDown(event);\n }\n\n if (\n event.key.length === 1 &&\n !(event.ctrlKey || event.altKey || event.metaKey)\n ) {\n const container = event.currentTarget as HTMLElement;\n const values = Array.from(\n container.querySelectorAll(`[${ITEM_ATTR}]`)\n ).map(getValue);\n\n const searchKey = event.key;\n\n const foundValue = values.find((value) =>\n value.toLowerCase().startsWith(searchKey)\n );\n const newItem = container.querySelector(\n `[${ITEM_ATTR}=\"${foundValue}\"]`\n );\n\n if (newItem) {\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => (newItem as HTMLElement).focus());\n }\n }\n },\n };\n};\n","import React from 'react';\nexport const MenuContext = React.createContext({\n closeOnSelect: true,\n onClose: () => {},\n});\n","import React, { memo, forwardRef } from 'react';\nimport type { IMenuProps } from './types';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { Popper } from '../Popper';\nimport { AccessibilityInfo, ScrollView } from 'react-native';\nimport { useControllableState } from '../../../hooks';\nimport { useMenuTrigger, useMenu, useMenuTypeahead } from './useMenu';\nimport Backdrop from '../Backdrop';\nimport { PresenceTransition } from '../Transitions';\nimport { FocusScope } from '@react-native-aria/focus';\nimport { MenuContext } from './MenuContext';\nimport { Overlay } from '../../primitives/Overlay';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Menu = (\n {\n trigger,\n closeOnSelect = true,\n children,\n onOpen,\n onClose,\n isOpen: isOpenProp,\n defaultIsOpen,\n placement = 'bottom left',\n ...props\n }: IMenuProps,\n ref?: any\n) => {\n const triggerRef = React.useRef(null);\n const [isOpen, setIsOpen] = useControllableState({\n value: isOpenProp,\n defaultValue: defaultIsOpen,\n onChange: (value) => {\n value ? onOpen && onOpen() : onClose && onClose();\n },\n });\n\n const {\n _overlay,\n _presenceTransition,\n _backdrop,\n ...resolvedProps\n } = usePropsResolution('Menu', props);\n const handleOpen = React.useCallback(() => {\n setIsOpen(true);\n }, [setIsOpen]);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n }, [setIsOpen]);\n\n const triggerProps = useMenuTrigger({\n handleOpen,\n isOpen,\n });\n\n const updatedTrigger = () => {\n return trigger(\n {\n ...triggerProps,\n ref: triggerRef,\n onPress: handleOpen,\n },\n { open: isOpen }\n );\n };\n\n React.useEffect(() => {\n if (isOpen) {\n AccessibilityInfo.announceForAccessibility('Popup window');\n }\n }, [isOpen]);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(resolvedProps)) {\n return null;\n }\n return (\n <>\n {updatedTrigger()}\n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n );\n};\n\nconst MenuContent = ({\n menuRef,\n children,\n ...props\n}: Omit & { menuRef: any }) => {\n const menuProps = useMenu();\n const typeaheadProps = useMenuTypeahead(menuProps);\n\n return (\n \n {children}\n \n );\n};\n\nexport default memo(forwardRef(Menu));\n","import React, { memo, forwardRef } from 'react';\nimport Text from '../../primitives/Text';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport Box from '../../primitives/Box';\nimport type { IMenuGroupProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst MenuGroup = (\n { title, children, ...props }: IMenuGroupProps,\n ref: any\n) => {\n const { _title, ...resolvedProps } = usePropsResolution('MenuGroup', props);\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps({ ...props, title })) {\n return null;\n }\n\n //TODO: Can be simplified\n return (\n <>\n \n {title}\n \n {children}\n \n );\n};\n\nexport default memo(forwardRef(MenuGroup));\n","import React, { forwardRef, memo } from 'react';\nimport Text from '../../primitives/Text';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { Pressable } from '../../primitives/Pressable';\nimport type { IMenuItemProps } from './types';\nimport { MenuContext } from './MenuContext';\nimport { useMenuItem } from './useMenu';\nimport { mergeRefs } from '../../../utils';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst MenuItem = (\n { children, isDisabled, onPress, textValue, ...props }: IMenuItemProps,\n ref: any\n) => {\n const { closeOnSelect, onClose } = React.useContext(MenuContext);\n const menuItemRef = React.useRef(null);\n const mergedRef = mergeRefs([menuItemRef, ref]);\n const { _text, ...resolvedProps } = usePropsResolution(\n 'MenuItem',\n props,\n {\n isDisabled,\n },\n {\n cascadePseudoProps: true,\n }\n );\n const [textContent, setTextContent] = React.useState('');\n React.useEffect(() => {\n const menuItem = menuItemRef.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? '').trim());\n }\n }, [children]);\n\n const menuItemProps = useMenuItem({\n textValue: textValue ?? textContent,\n ref: menuItemRef,\n });\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n {\n if (!isDisabled) {\n onPress && onPress(e);\n if (closeOnSelect) {\n onClose && onClose();\n }\n }\n }}\n >\n <>\n {React.Children.map(children, (child, index: any) => {\n if (typeof child === 'string' || typeof child === 'number') {\n return (\n \n {child}\n \n );\n } else {\n return child;\n }\n })}\n \n \n );\n};\n\nexport default memo(forwardRef(MenuItem));\n","import React, { forwardRef, memo } from 'react';\nimport MenuGroup from './MenuGroup';\nimport type { IMenuOptionGroupProps, IMenuOptionContextProps } from './types';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport const MenuOptionContext = React.createContext({\n values: [],\n onChange: (_val) => {},\n type: 'checkbox',\n});\n\nconst MenuOptionGroup = (\n { type, defaultValue, value, onChange, ...props }: IMenuOptionGroupProps,\n ref?: any\n) => {\n const internalDefaultValue = defaultValue\n ? Array.isArray(defaultValue)\n ? defaultValue\n : [defaultValue]\n : [];\n\n const [internalValues, setValues] = React.useState>(\n internalDefaultValue\n );\n const _onChange = (newValue: string | number) => {\n if (type === 'checkbox') {\n const newValues = [...internalValues];\n if (internalValues.includes(newValue)) {\n newValues.splice(newValues.indexOf(newValue), 1);\n setValues(newValues);\n } else {\n newValues.push(newValue);\n setValues(newValues);\n }\n onChange && onChange(newValues);\n } else if (type === 'radio') {\n setValues([newValue]);\n onChange && onChange(newValue);\n }\n };\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default memo(forwardRef(MenuOptionGroup));\n","import React, { forwardRef, memo, useContext } from 'react';\nimport { CheckIcon } from '../../primitives/Icon/Icons';\nimport Box from '../../primitives/Box';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport MenuItem from './MenuItem';\nimport type { IMenuItemOptionProps, IMenuOptionContextProps } from './types';\nimport { MenuOptionContext } from './MenuOptionGroup';\nimport { useMenuOptionItem } from './useMenu';\nimport { HStack } from '../../primitives/Stack';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst MenuItemOption = (\n { value, ...props }: IMenuItemOptionProps,\n ref: any\n) => {\n const { values, onChange, type }: IMenuOptionContextProps = useContext(\n MenuOptionContext\n );\n const isChecked = values.includes(value);\n const menuOptionProps = useMenuOptionItem({ isChecked, type });\n const {\n children,\n onPress,\n _icon,\n _stack,\n _text,\n ...resolvedProps\n } = usePropsResolution('MenuItem', props, { isChecked });\n\n const modifiedOnPress = (e: any) => {\n onChange(value);\n onPress && onPress(e);\n };\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n \n \n {children}\n \n \n );\n};\n\nexport default memo(forwardRef(MenuItemOption));\n","// 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 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","export enum FileSystemSessionType {\n /*\n * Using this mode means that the downloading/uploading session on the native side will work even if the application is moved to background.\n *\n * If the task completes while the application is in background, the Promise will be either resolved immediately or (if the application execution has already been stopped) once the app is moved to foreground again.\n */\n BACKGROUND = 0,\n /*\n * Using this mode means that downloading/uploading session on the native side will be terminated once the application becomes inactive (e.g. when it goes to background).\n * Bringing the application to foreground again would trigger Promise rejection.\n */\n FOREGROUND = 1,\n}\n\nexport enum FileSystemUploadType {\n BINARY_CONTENT = 0,\n MULTIPART = 1,\n}\n\nexport type DownloadOptions = {\n md5?: boolean;\n cache?: boolean;\n headers?: Record;\n /*\n * iOS only\n */\n sessionType?: FileSystemSessionType;\n};\n\nexport type FileSystemHttpResult = {\n headers: Record;\n status: number;\n mimeType: string | null;\n};\n\nexport type FileSystemDownloadResult = FileSystemHttpResult & {\n uri: string;\n md5?: string;\n};\n\n/**\n * @deprecated Use `FileSystemDownloadResult` instead.\n */\nexport type DownloadResult = FileSystemDownloadResult;\n\nexport type FileSystemUploadOptions = (\n | {\n uploadType?: FileSystemUploadType.BINARY_CONTENT;\n }\n | {\n uploadType: FileSystemUploadType.MULTIPART;\n fieldName?: string;\n mimeType?: string;\n parameters?: Record;\n }\n) & {\n headers?: Record;\n httpMethod?: FileSystemAcceptedUploadHttpMethod;\n sessionType?: FileSystemSessionType;\n};\n\nexport type FileSystemUploadResult = FileSystemHttpResult & {\n body: string;\n};\n\nexport type FileSystemNetworkTaskProgressCallback<\n T extends DownloadProgressData | UploadProgressData\n> = (data: T) => void;\n\n/**\n * @deprecated use `NetworkTaskProgressCallback` instead\n */\nexport type DownloadProgressCallback = FileSystemNetworkTaskProgressCallback;\n\nexport type DownloadProgressData = {\n totalBytesWritten: number;\n totalBytesExpectedToWrite: number;\n};\n\nexport type UploadProgressData = {\n totalByteSent: number;\n totalBytesExpectedToSend: number;\n};\n\nexport type DownloadPauseState = {\n url: string;\n fileUri: string;\n options: DownloadOptions;\n resumeData?: string;\n};\n\nexport type FileInfo =\n | {\n exists: true;\n uri: string;\n size: number;\n isDirectory: boolean;\n modificationTime: number;\n md5?: string;\n }\n | {\n exists: false;\n uri: string;\n size: undefined;\n isDirectory: false;\n modificationTime: undefined;\n md5: undefined;\n };\n\nexport enum EncodingType {\n UTF8 = 'utf8',\n Base64 = 'base64',\n}\n\nexport type FileSystemAcceptedUploadHttpMethod = 'POST' | 'PUT' | 'PATCH';\n\nexport type ReadingOptions = {\n encoding?: EncodingType | 'utf8' | 'base64';\n position?: number;\n length?: number;\n};\n\nexport type WritingOptions = {\n encoding?: EncodingType | 'utf8' | 'base64';\n};\n\nexport type ProgressEvent = {\n uuid: string;\n data: T;\n};\n\nexport type FileSystemRequestDirectoryPermissionsResult =\n | {\n granted: true;\n directoryUri: string;\n }\n | {\n granted: false;\n };\n\ntype PlatformMethod = (...args: any[]) => Promise;\n\nexport interface ExponentFileSystemModule {\n readonly name: 'ExponentFileSystem';\n readonly documentDirectory: string | null;\n readonly cacheDirectory: string | null;\n readonly bundledAssets: string | null;\n readonly bundleDirectory: string | null;\n readonly getInfoAsync?: PlatformMethod;\n readonly readAsStringAsync?: PlatformMethod;\n readonly writeAsStringAsync?: PlatformMethod;\n readonly deleteAsync?: PlatformMethod;\n readonly moveAsync?: PlatformMethod;\n readonly copyAsync?: PlatformMethod;\n readonly makeDirectoryAsync?: PlatformMethod;\n readonly readDirectoryAsync?: PlatformMethod;\n readonly downloadAsync?: PlatformMethod;\n readonly uploadAsync?: PlatformMethod;\n readonly downloadResumableStartAsync?: PlatformMethod;\n readonly downloadResumablePauseAsync?: PlatformMethod;\n readonly getContentUriAsync?: PlatformMethod;\n readonly getFreeDiskStorageAsync?: PlatformMethod;\n readonly getTotalDiskCapacityAsync?: PlatformMethod;\n readonly requestDirectoryPermissionsAsync?: PlatformMethod;\n readonly readSAFDirectoryAsync?: PlatformMethod;\n readonly makeSAFDirectoryAsync?: PlatformMethod;\n readonly createSAFFileAsync?: PlatformMethod;\n readonly networkTaskCancelAsync?: PlatformMethod;\n readonly uploadTaskStartAsync?: PlatformMethod;\n startObserving?: () => void;\n stopObserving?: () => void;\n addListener: (eventName: string) => void;\n removeListeners: (count: number) => void;\n}\n","import ExponentFileSystemShim from './ExponentFileSystemShim';\nexport default ExponentFileSystemShim;\n","import { ExponentFileSystemModule } from './FileSystem.types';\n\nconst platformModule: ExponentFileSystemModule = {\n get name(): 'ExponentFileSystem' {\n return 'ExponentFileSystem';\n },\n get documentDirectory(): string | null {\n return null;\n },\n get cacheDirectory(): string | null {\n return null;\n },\n get bundledAssets(): string | null {\n return null;\n },\n get bundleDirectory(): string | null {\n return null;\n },\n addListener(eventName: string): void {},\n removeListeners(count: number): void {},\n};\n\nexport default platformModule;\n","import { EventEmitter, Subscription, UnavailabilityError } from 'expo-modules-core';\nimport { Platform } from 'react-native';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport ExponentFileSystem from './ExponentFileSystem';\nimport {\n DownloadOptions,\n DownloadPauseState,\n DownloadProgressCallback,\n FileSystemNetworkTaskProgressCallback,\n DownloadProgressData,\n UploadProgressData,\n DownloadResult,\n EncodingType,\n FileInfo,\n FileSystemAcceptedUploadHttpMethod,\n FileSystemDownloadResult,\n FileSystemRequestDirectoryPermissionsResult,\n FileSystemSessionType,\n FileSystemUploadOptions,\n FileSystemUploadResult,\n FileSystemUploadType,\n ProgressEvent,\n ReadingOptions,\n WritingOptions,\n} from './FileSystem.types';\n\nif (!ExponentFileSystem) {\n console.warn(\n \"No native ExponentFileSystem module found, are you sure the expo-file-system's module is linked properly?\"\n );\n}\n// Prevent webpack from pruning this.\nconst _unused = new EventEmitter(ExponentFileSystem); // eslint-disable-line\n\nexport {\n DownloadOptions,\n DownloadPauseState,\n DownloadProgressCallback,\n DownloadProgressData,\n DownloadResult,\n EncodingType,\n FileInfo,\n FileSystemDownloadResult,\n FileSystemRequestDirectoryPermissionsResult,\n FileSystemAcceptedUploadHttpMethod,\n FileSystemSessionType,\n FileSystemUploadOptions,\n FileSystemUploadResult,\n FileSystemUploadType,\n FileSystemNetworkTaskProgressCallback,\n ReadingOptions,\n WritingOptions,\n};\n\nfunction normalizeEndingSlash(p: string | null): string | null {\n if (p != null) {\n return p.replace(/\\/*$/, '') + '/';\n }\n return null;\n}\n\nexport const documentDirectory = normalizeEndingSlash(ExponentFileSystem.documentDirectory);\nexport const cacheDirectory = normalizeEndingSlash(ExponentFileSystem.cacheDirectory);\n\nexport const { bundledAssets, bundleDirectory } = ExponentFileSystem;\n\nexport async function getInfoAsync(\n fileUri: string,\n options: { md5?: boolean; size?: boolean } = {}\n): Promise {\n if (!ExponentFileSystem.getInfoAsync) {\n throw new UnavailabilityError('expo-file-system', 'getInfoAsync');\n }\n return await ExponentFileSystem.getInfoAsync(fileUri, options);\n}\n\nexport async function readAsStringAsync(\n fileUri: string,\n options?: ReadingOptions\n): Promise {\n if (!ExponentFileSystem.readAsStringAsync) {\n throw new UnavailabilityError('expo-file-system', 'readAsStringAsync');\n }\n return await ExponentFileSystem.readAsStringAsync(fileUri, options || {});\n}\n\nexport async function getContentUriAsync(fileUri: string): Promise {\n if (Platform.OS === 'android') {\n if (!ExponentFileSystem.getContentUriAsync) {\n throw new UnavailabilityError('expo-file-system', 'getContentUriAsync');\n }\n return await ExponentFileSystem.getContentUriAsync(fileUri);\n } else {\n return new Promise(function (resolve, reject) {\n resolve(fileUri);\n });\n }\n}\n\nexport async function writeAsStringAsync(\n fileUri: string,\n contents: string,\n options: WritingOptions = {}\n): Promise {\n if (!ExponentFileSystem.writeAsStringAsync) {\n throw new UnavailabilityError('expo-file-system', 'writeAsStringAsync');\n }\n return await ExponentFileSystem.writeAsStringAsync(fileUri, contents, options);\n}\n\nexport async function deleteAsync(\n fileUri: string,\n options: { idempotent?: boolean } = {}\n): Promise {\n if (!ExponentFileSystem.deleteAsync) {\n throw new UnavailabilityError('expo-file-system', 'deleteAsync');\n }\n return await ExponentFileSystem.deleteAsync(fileUri, options);\n}\n\nexport async function deleteLegacyDocumentDirectoryAndroid(): Promise {\n if (Platform.OS !== 'android' || documentDirectory == null) {\n return;\n }\n const legacyDocumentDirectory = `${documentDirectory}ExperienceData/`;\n return await deleteAsync(legacyDocumentDirectory, { idempotent: true });\n}\n\nexport async function moveAsync(options: { from: string; to: string }): Promise {\n if (!ExponentFileSystem.moveAsync) {\n throw new UnavailabilityError('expo-file-system', 'moveAsync');\n }\n return await ExponentFileSystem.moveAsync(options);\n}\n\nexport async function copyAsync(options: { from: string; to: string }): Promise {\n if (!ExponentFileSystem.copyAsync) {\n throw new UnavailabilityError('expo-file-system', 'copyAsync');\n }\n return await ExponentFileSystem.copyAsync(options);\n}\n\nexport async function makeDirectoryAsync(\n fileUri: string,\n options: { intermediates?: boolean } = {}\n): Promise {\n if (!ExponentFileSystem.makeDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'makeDirectoryAsync');\n }\n return await ExponentFileSystem.makeDirectoryAsync(fileUri, options);\n}\n\nexport async function readDirectoryAsync(fileUri: string): Promise {\n if (!ExponentFileSystem.readDirectoryAsync) {\n throw new UnavailabilityError('expo-file-system', 'readDirectoryAsync');\n }\n return await ExponentFileSystem.readDirectoryAsync(fileUri, {});\n}\n\nexport async function getFreeDiskStorageAsync(): Promise {\n if (!ExponentFileSystem.getFreeDiskStorageAsync) {\n throw new UnavailabilityError('expo-file-system', 'getFreeDiskStorageAsync');\n }\n return await ExponentFileSystem.getFreeDiskStorageAsync();\n}\n\nexport async function getTotalDiskCapacityAsync(): Promise {\n if (!ExponentFileSystem.getTotalDiskCapacityAsync) {\n throw new UnavailabilityError('expo-file-system', 'getTotalDiskCapacityAsync');\n }\n return await ExponentFileSystem.getTotalDiskCapacityAsync();\n}\n\nexport async function downloadAsync(\n uri: string,\n fileUri: string,\n options: DownloadOptions = {}\n): Promise {\n if (!ExponentFileSystem.downloadAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadAsync');\n }\n\n return await ExponentFileSystem.downloadAsync(uri, fileUri, {\n sessionType: FileSystemSessionType.BACKGROUND,\n ...options,\n });\n}\n\nexport async function uploadAsync(\n url: string,\n fileUri: string,\n options: FileSystemUploadOptions = {}\n): Promise {\n if (!ExponentFileSystem.uploadAsync) {\n throw new UnavailabilityError('expo-file-system', 'uploadAsync');\n }\n\n return await ExponentFileSystem.uploadAsync(url, fileUri, {\n sessionType: FileSystemSessionType.BACKGROUND,\n uploadType: FileSystemUploadType.BINARY_CONTENT,\n ...options,\n httpMethod: (options.httpMethod || 'POST').toUpperCase(),\n });\n}\n\nexport function createDownloadResumable(\n uri: string,\n fileUri: string,\n options?: DownloadOptions,\n callback?: FileSystemNetworkTaskProgressCallback,\n resumeData?: string\n): DownloadResumable {\n return new DownloadResumable(uri, fileUri, options, callback, resumeData);\n}\n\nexport function createUploadTask(\n url: string,\n fileUri: string,\n options?: FileSystemUploadOptions,\n callback?: FileSystemNetworkTaskProgressCallback\n): UploadTask {\n return new UploadTask(url, fileUri, options, callback);\n}\n\nexport abstract class FileSystemCancellableNetworkTask<\n T extends DownloadProgressData | UploadProgressData\n> {\n private _uuid = uuidv4();\n protected taskWasCanceled = false;\n private emitter = new EventEmitter(ExponentFileSystem);\n private subscription?: Subscription | null;\n\n public async cancelAsync(): Promise {\n if (!ExponentFileSystem.networkTaskCancelAsync) {\n throw new UnavailabilityError('expo-file-system', 'networkTaskCancelAsync');\n }\n\n this.removeSubscription();\n this.taskWasCanceled = true;\n return await ExponentFileSystem.networkTaskCancelAsync(this.uuid);\n }\n\n protected isTaskCancelled(): boolean {\n if (this.taskWasCanceled) {\n console.warn('This task was already canceled.');\n return true;\n }\n\n return false;\n }\n\n protected get uuid(): string {\n return this._uuid;\n }\n\n protected abstract getEventName(): string;\n\n protected abstract getCallback(): FileSystemNetworkTaskProgressCallback | undefined;\n\n protected addSubscription() {\n if (this.subscription) {\n return;\n }\n\n this.subscription = this.emitter.addListener(this.getEventName(), (event: ProgressEvent) => {\n if (event.uuid === this.uuid) {\n const callback = this.getCallback();\n if (callback) {\n callback(event.data);\n }\n }\n });\n }\n\n protected removeSubscription() {\n if (!this.subscription) {\n return;\n }\n this.emitter.removeSubscription(this.subscription);\n this.subscription = null;\n }\n}\n\nexport class UploadTask extends FileSystemCancellableNetworkTask {\n private options: FileSystemUploadOptions;\n\n constructor(\n private url: string,\n private fileUri: string,\n options?: FileSystemUploadOptions,\n private callback?: FileSystemNetworkTaskProgressCallback\n ) {\n super();\n\n const httpMethod = (options?.httpMethod?.toUpperCase() ||\n 'POST') as FileSystemAcceptedUploadHttpMethod;\n\n this.options = {\n sessionType: FileSystemSessionType.BACKGROUND,\n uploadType: FileSystemUploadType.BINARY_CONTENT,\n ...options,\n httpMethod,\n };\n }\n\n protected getEventName(): string {\n return 'expo-file-system.uploadProgress';\n }\n protected getCallback(): FileSystemNetworkTaskProgressCallback | undefined {\n return this.callback;\n }\n\n public async uploadAsync(): Promise {\n if (!ExponentFileSystem.uploadTaskStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'uploadTaskStartAsync');\n }\n\n if (this.isTaskCancelled()) {\n return;\n }\n\n this.addSubscription();\n const result = await ExponentFileSystem.uploadTaskStartAsync(\n this.url,\n this.fileUri,\n this.uuid,\n this.options\n );\n this.removeSubscription();\n\n return result;\n }\n}\n\nexport class DownloadResumable extends FileSystemCancellableNetworkTask {\n constructor(\n private url: string,\n private _fileUri: string,\n private options: DownloadOptions = {},\n private callback?: FileSystemNetworkTaskProgressCallback,\n private resumeData?: string\n ) {\n super();\n }\n\n public get fileUri(): string {\n return this._fileUri;\n }\n\n protected getEventName(): string {\n return 'expo-file-system.downloadProgress';\n }\n\n protected getCallback(): FileSystemNetworkTaskProgressCallback | undefined {\n return this.callback;\n }\n\n async downloadAsync(): Promise {\n if (!ExponentFileSystem.downloadResumableStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumableStartAsync');\n }\n\n if (this.isTaskCancelled()) {\n return;\n }\n\n this.addSubscription();\n return await ExponentFileSystem.downloadResumableStartAsync(\n this.url,\n this._fileUri,\n this.uuid,\n this.options,\n this.resumeData\n );\n }\n\n async pauseAsync(): Promise {\n if (!ExponentFileSystem.downloadResumablePauseAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumablePauseAsync');\n }\n\n if (this.isTaskCancelled()) {\n return {\n fileUri: this._fileUri,\n options: this.options,\n url: this.url,\n };\n }\n\n const pauseResult = await ExponentFileSystem.downloadResumablePauseAsync(this.uuid);\n this.removeSubscription();\n if (pauseResult) {\n this.resumeData = pauseResult.resumeData;\n return this.savable();\n } else {\n throw new Error('Unable to generate a savable pause state');\n }\n }\n\n async resumeAsync(): Promise {\n if (!ExponentFileSystem.downloadResumableStartAsync) {\n throw new UnavailabilityError('expo-file-system', 'downloadResumableStartAsync');\n }\n\n if (this.isTaskCancelled()) {\n return;\n }\n\n this.addSubscription();\n return await ExponentFileSystem.downloadResumableStartAsync(\n this.url,\n this.fileUri,\n this.uuid,\n this.options,\n this.resumeData\n );\n }\n\n savable(): DownloadPauseState {\n return {\n url: this.url,\n fileUri: this.fileUri,\n options: this.options,\n resumeData: this.resumeData,\n };\n }\n}\n\nconst baseReadAsStringAsync = readAsStringAsync;\nconst baseWriteAsStringAsync = writeAsStringAsync;\nconst baseDeleteAsync = deleteAsync;\nconst baseMoveAsync = moveAsync;\nconst baseCopyAsync = copyAsync;\n/**\n * Android only\n */\nexport namespace StorageAccessFramework {\n export function getUriForDirectoryInRoot(folderName: string) {\n return `content://com.android.externalstorage.documents/tree/primary:${folderName}/document/primary:${folderName}`;\n }\n\n export async function requestDirectoryPermissionsAsync(\n initialFileUrl: string | null = null\n ): Promise {\n if (!ExponentFileSystem.requestDirectoryPermissionsAsync) {\n throw new UnavailabilityError(\n 'expo-file-system',\n 'StorageAccessFramework.requestDirectoryPermissionsAsync'\n );\n }\n\n return await ExponentFileSystem.requestDirectoryPermissionsAsync(initialFileUrl);\n }\n\n export async function readDirectoryAsync(dirUri: string): Promise {\n if (!ExponentFileSystem.readSAFDirectoryAsync) {\n throw new UnavailabilityError(\n 'expo-file-system',\n 'StorageAccessFramework.readDirectoryAsync'\n );\n }\n return await ExponentFileSystem.readSAFDirectoryAsync(dirUri, {});\n }\n\n export async function makeDirectoryAsync(parentUri: string, dirName: string): Promise {\n if (!ExponentFileSystem.makeSAFDirectoryAsync) {\n throw new UnavailabilityError(\n 'expo-file-system',\n 'StorageAccessFramework.makeDirectoryAsync'\n );\n }\n return await ExponentFileSystem.makeSAFDirectoryAsync(parentUri, dirName);\n }\n\n export async function createFileAsync(\n parentUri: string,\n fileName: string,\n mimeType: string\n ): Promise {\n if (!ExponentFileSystem.createSAFFileAsync) {\n throw new UnavailabilityError('expo-file-system', 'StorageAccessFramework.createFileAsync');\n }\n return await ExponentFileSystem.createSAFFileAsync(parentUri, fileName, mimeType);\n }\n\n export const writeAsStringAsync = baseWriteAsStringAsync;\n export const readAsStringAsync = baseReadAsStringAsync;\n export const deleteAsync = baseDeleteAsync;\n export const moveAsync = baseMoveAsync;\n export const copyAsync = baseCopyAsync;\n}\n","import React, { memo, forwardRef } from 'react';\nimport Spinner from '../Spinner';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { default as Box, IBoxProps } from '../Box';\nimport HStack from '../Stack/HStack';\nimport { Pressable } from '../Pressable';\nimport type { IButtonProps } from './types';\nimport { composeEventHandlers } from '../../../utils';\nimport {\n useHover,\n useFocus,\n useIsPressed,\n} from '../../primitives/Pressable/Pressable';\nimport { useFocusRing } from '@react-native-aria/focus';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nconst Button = (\n {\n //@ts-ignore\n children,\n startIcon,\n rightIcon,\n leftIcon,\n endIcon,\n spinner,\n isDisabled,\n isLoading,\n isHovered: isHoveredProp,\n isPressed: isPressedProp,\n isFocused: isFocusedProp,\n isFocusVisible: isFocusVisibleProp,\n spinnerPlacement = 'start',\n ...props\n }: IButtonProps & IBoxProps,\n ref: any\n) => {\n const { hoverProps, isHovered } = useHover();\n const { pressableProps, isPressed } = useIsPressed();\n const { focusProps, isFocused } = useFocus();\n const { isFocusVisible, focusProps: focusRingProps }: any = useFocusRing();\n\n const {\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n onFocus,\n onBlur,\n _text,\n _stack,\n _spinner,\n isLoadingText,\n _icon,\n ...resolvedProps\n } = usePropsResolution('Button', props, {\n isDisabled,\n isHovered: isHoveredProp || isHovered,\n isFocused: isFocusedProp || isFocused,\n isPressed: isPressedProp || isPressed,\n isLoading,\n isFocusVisible: isFocusVisibleProp || isFocusVisible,\n });\n\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n\n if (leftIcon) {\n startIcon = leftIcon;\n }\n if (rightIcon) {\n endIcon = rightIcon;\n }\n if (endIcon && React.isValidElement(endIcon)) {\n endIcon = React.Children.map(\n endIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-end-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n if (startIcon && React.isValidElement(startIcon)) {\n startIcon = React.Children.map(\n startIcon,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-start-icon-${index}`,\n ..._icon,\n ...child.props,\n });\n }\n );\n }\n\n const spinnerElement = spinner ? (\n spinner\n ) : (\n \n );\n\n const boxChildren = (child: any) => {\n return child ? {child} : null;\n };\n\n return (\n \n \n {startIcon && !isLoading ? startIcon : null}\n {isLoading && spinnerPlacement === 'start' ? spinnerElement : null}\n {isLoading\n ? isLoadingText\n ? boxChildren(isLoadingText)\n : null\n : boxChildren(children)}\n\n {endIcon && !isLoading ? endIcon : null}\n {isLoading && spinnerPlacement === 'end' ? spinnerElement : null}\n \n \n );\n};\n\nexport default memo(forwardRef(Button));\n","import React, { memo, forwardRef } from 'react';\nimport type { IButtonGroupProps } from './types';\nimport { usePropsResolution } from '../../../hooks/useThemeProps';\nimport { Stack } from '../Stack';\nimport { useHasResponsiveProps } from '../../../hooks/useHasResponsiveProps';\n\nexport default memo(\n forwardRef(\n (\n { children, divider, variant, ...props }: IButtonGroupProps,\n ref?: any\n ) => {\n const {\n space,\n direction,\n\n size,\n colorScheme,\n isDisabled,\n isAttached,\n ...newProps\n } = usePropsResolution('ButtonGroup', props);\n\n const { borderRadius } = usePropsResolution('Button', props);\n let computedChildren: JSX.Element | JSX.Element[];\n\n if (Array.isArray(children)) {\n computedChildren = React.Children.map(\n children,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-group-child-${index}`,\n variant,\n size,\n colorScheme,\n isDisabled,\n\n // when buttons are attached, remove rounded corners of all buttons except extreme buttons\n ...(isAttached ? { borderRadius: 0 } : {}),\n ...(isAttached && index === 0\n ? direction === 'column'\n ? { borderTopRadius: borderRadius }\n : { borderLeftRadius: borderRadius }\n : {}),\n ...(isAttached && index === children?.length - 1\n ? direction === 'column'\n ? { borderBottomRadius: borderRadius }\n : { borderRightRadius: borderRadius }\n : {}),\n\n //when buttons are attached, remove double border from them, just keep borderRight in case for direction row and borderBottom in case of direction column for every component\n ...(isAttached && index !== 0\n ? direction === 'column'\n ? { borderTopWidth: 0 }\n : { borderLeftWidth: 0 }\n : {}),\n ...child.props,\n });\n }\n );\n } else {\n computedChildren = React.Children.map(\n children,\n (child: JSX.Element, index: number) => {\n return React.cloneElement(child, {\n key: `button-group-child-${index}`,\n variant,\n size,\n colorScheme,\n isDisabled,\n ...child.props,\n });\n }\n );\n }\n //TODO: refactor for responsive prop\n if (useHasResponsiveProps(props)) {\n return null;\n }\n return (\n \n {computedChildren}\n \n );\n }\n )\n);\n","import React, { useMemo } from 'react';\nimport { Platform } from 'react-native';\nimport { HybridContext } from './Context';\nimport { useModeManager } from './../color-mode/hooks';\nimport type { IColorModeProviderProps } from './../color-mode';\nimport { keyboardDismissHandlerManager } from '../../hooks';\n\nconst HybridProvider = ({\n children,\n options: {\n initialColorMode = 'light',\n accessibleColors: isTextColorAccessible = false,\n useSystemColorMode,\n },\n colorModeManager,\n}: IColorModeProviderProps) => {\n // Color-mode content\n const { colorMode, setColorMode } = useModeManager(\n initialColorMode,\n useSystemColorMode,\n colorModeManager\n );\n\n const toggleColorMode = React.useCallback(() => {\n setColorMode(colorMode === 'light' ? 'dark' : 'light');\n }, [colorMode, setColorMode]);\n\n // Accessible color hook\n const [accessibleColors, setAccessibleColors] = React.useState(\n isTextColorAccessible\n );\n\n const contextValue = useMemo(() => {\n return {\n colorMode: {\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n },\n };\n }, [\n colorMode,\n toggleColorMode,\n setColorMode,\n accessibleColors,\n setAccessibleColors,\n ]);\n\n React.useEffect(() => {\n let escapeKeyListener: any = null;\n\n if (Platform.OS === 'web') {\n escapeKeyListener = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n if (keyboardDismissHandlerManager.length() > 0) {\n const lastHandler: any = keyboardDismissHandlerManager.pop();\n lastHandler();\n }\n }\n };\n document.addEventListener('keydown', escapeKeyListener);\n }\n\n return () => {\n if (Platform.OS === 'web') {\n document.removeEventListener('keydown', escapeKeyListener);\n }\n };\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport default HybridProvider;\n","import React from 'react';\nimport {\n SafeAreaProvider,\n Metrics,\n initialWindowMetrics as defaultInitialWindowMetrics,\n} from 'react-native-safe-area-context';\nimport { SSRProvider } from '@react-native-aria/utils';\nimport { theme as defaultTheme, ITheme } from './../theme';\nimport type { IColorModeProviderProps } from './color-mode';\nimport HybridProvider from './hybrid-overlay/HybridProvider';\nimport { OverlayProvider } from '@react-native-aria/overlays';\nimport { ToastProvider, ToastRef } from '../components/composites/Toast';\nimport {\n defaultConfig,\n INativebaseConfig,\n NativeBaseConfigProvider,\n} from './NativeBaseContext';\nimport { useToast } from '../components/composites/Toast';\nimport { Platform, useWindowDimensions } from 'react-native';\nimport {\n getClosestBreakpoint,\n platformSpecificSpaceUnits,\n} from '../theme/tools/utils';\nimport { ResponsiveQueryProvider } from '../utils/useResponsiveQuery';\n\n// For SSR to work, we need to pass initial insets as 0 values on web.\n\n// https://github.com/th3rdwave/react-native-safe-area-context/issues/132\nconst defaultInitialWindowMetricsBasedOnPlatform: Metrics | null = Platform.select(\n {\n web: {\n frame: { x: 0, y: 0, width: 0, height: 0 },\n insets: { top: 0, left: 0, right: 0, bottom: 0 },\n },\n default: defaultInitialWindowMetrics,\n }\n);\n\nexport interface NativeBaseProviderProps {\n theme?: ITheme;\n colorModeManager?: IColorModeProviderProps['colorModeManager'];\n children?: React.ReactNode;\n initialWindowMetrics?: any;\n config?: INativebaseConfig;\n isSSR?: boolean;\n disableContrastText?: boolean;\n // Refer https://github.com/th3rdwave/react-native-safe-area-context#testing\n}\n\nconst NativeBaseProvider = (props: NativeBaseProviderProps) => {\n const {\n colorModeManager,\n config = defaultConfig,\n children,\n theme: propsTheme = defaultTheme,\n initialWindowMetrics,\n isSSR,\n disableContrastText,\n } = props;\n const theme = config.theme ?? propsTheme;\n\n const newTheme = React.useMemo(() => {\n if (config.enableRem) {\n return platformSpecificSpaceUnits(theme);\n }\n return theme;\n }, [config.enableRem, theme]);\n\n const windowWidth = useWindowDimensions()?.width;\n\n const currentBreakpoint = React.useMemo(\n () => getClosestBreakpoint(newTheme.breakpoints, windowWidth),\n [windowWidth, newTheme.breakpoints]\n );\n\n return (\n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n};\n\nconst InitializeToastRef = () => {\n const toast = useToast();\n ToastRef.current = toast;\n return null;\n};\n\nexport { NativeBaseProvider };\n","import type { EdgeInsets, Metrics } from './SafeArea.types';\n\nexport const initialWindowMetrics: Metrics | null = null;\n\n/**\n * @deprecated\n */\nexport const initialWindowSafeAreaInsets: EdgeInsets | null = null;\n","import { BlurTint } from './BlurView.types';\n\nexport default function getBackgroundColor(intensity: number, tint: BlurTint): string {\n const opacity = intensity / 100;\n switch (tint) {\n case 'dark':\n // From Apple iOS 14 Sketch Kit - https://developer.apple.com/design/resources/\n return `rgba(25,25,25,${opacity * 0.78})`;\n case 'light':\n // From Apple iOS 14 Sketch Kit - https://developer.apple.com/design/resources/\n return `rgba(249,249,249,${opacity * 0.78})`;\n case 'default':\n // From xcode composition\n return `rgba(255,255,255,${opacity * 0.3})`;\n }\n throw new Error(`Unsupported tint provided: ${tint}`);\n}\n","import * as React from 'react';\nimport { View } from 'react-native';\n\nimport { BlurViewProps } from './BlurView.types';\nimport getBackgroundColor from './getBackgroundColor';\n\nexport default class BlurView extends React.Component {\n render() {\n const { tint = 'default', intensity = 50, style, ...props } = this.props;\n const blurStyle = getBlurStyle({ tint, intensity: Math.min(intensity, 100) });\n return ;\n }\n}\n\nfunction isBlurSupported(): boolean {\n // https://developer.mozilla.org/en-US/docs/Web/API/CSS/supports\n // https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility\n return (\n typeof CSS !== 'undefined' &&\n (CSS.supports('-webkit-backdrop-filter', 'blur(1px)') ||\n CSS.supports('backdrop-filter', 'blur(1px)'))\n );\n}\n\nfunction getBlurStyle({ intensity, tint }): Record {\n const style: Record = {\n backgroundColor: getBackgroundColor(intensity, tint),\n };\n\n if (isBlurSupported()) {\n style.backdropFilter = `saturate(180%) blur(${intensity * 0.2}px)`;\n }\n\n return style;\n}\n"],"sourceRoot":""}